Welcome to the PR triage page! This page is perfect if you intend to look for pull request which seem to have stalled.
Feedback on designing this page or further information to include is very welcome.
Quick links: PR statistics | Not yet landed PRs | Review status | Stale unassigned PRs | Stale assigned PRs | Likely-spurious CI failures | Tech debt PRs | PRs blocked on a zulip discussion | PRs with just a merge conflict | Stale new contributor PRs | PRs not into master | PRs with an 'approved' review | All open PRs | Other lists of 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 14712 | astrainfinita | perf: change instance priority and order about `OfNat` | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra delegated | 49/20 | Mathlib/Algebra/Group/Nat.lean,Mathlib/Algebra/Group/ZeroOne.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Data/BitVec.lean,Mathlib/Data/Nat/Cast/Defs.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/UInt.lean,Mathlib/NumberTheory/ArithmeticFunction.lean | 9 | 24 | ['MichaelStollBayreuth', 'astrainfinita', 'eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-bot', 'mathlib-bors'] | nobody | 1 year ago | unknown | unknown |
| 19275 | eric-wieser | fix: if nolint files change, do a full rebuild | Otherwise CI will succeed when removing entries from the file, but fail later when someone changes something unrelated. --- [](https://gitpod.io/from-referrer/) | merge-conflict delegated | 8/0 | lakefile.lean | 1 | 20 | ['YaelDillies', 'adomani', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-bors'] | nobody | 10 months ago | unknown | unknown |
| 25473 | adomani | feat(CI): check that Mathlib files have lean or md extension | Twice recently there have been files with an "intended" `.lean` extension in `Mathlib/`: * #24942, ending in `;lean`; * #25457, ending in `.Lean`. `mk_all` does not add these files to `Mathlib.lean`, since they do not end in `.lean` and this later causes problems. This CI step checks that all files in `Mathlib/` end with `.lean` or `.md`. See #25474 for a test where the new step [correctly fails](https://github.com/leanprover-community/mathlib4/actions/runs/15464097783/job/43532018379?pr=25474). --- [](https://gitpod.io/from-referrer/) | CI delegated | 10/0 | .github/workflows/lint_and_suggest_pr.yml | 1 | 10 | ['adomani', 'bryangingechen', 'github-actions', 'grunweg', 'mathlib-bors'] | nobody | 8 months ago | unknown | unknown |
| 13483 | adomani | feat: automatically replace deprecations | This PR introduces `lake exe update_deprecations` that uses the cache to automatically replace deprecated declarations with the corresponding un-deprecated one. The script handles namespacing, replacing a possibly non-fully-qualified, deprecated name with the fully-qualified non-deprecated name. It is also possible to use ```bash lake exe update_deprecations --mods One.Two.Three,Dd.Ee.Ff ``` to limit the scope of the replacements to the modules `One.Two.Three` and `Dd.Ee.Ff`. This is intended to be a first step in automating updates: combining this with a linter that emits appropriate warnings, the functionality of `lake exe update_deprecations` can be extended to perform more complicated updates. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author delegated t-meta | 306/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/UpdateDeprecations.lean,MathlibTest/UpdateDeprecations.lean,lakefile.lean,scripts/README.md,scripts/update_deprecations.lean | 7 | 16 | ['YaelDillies', 'adomani', 'github-actions', 'j-loreaux', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib-bors', 'sgouezel'] | joneugster | 8 months ago | unknown | unknown |
| 17627 | hrmacbeth | feat: universal properties of vector bundle constructions | Characterizations for the smoothness of maps into the total spaces of (1) the direct sum of two vector bundles; (2) the pullback of a vector bundle. This gap in the library was exposed by #17358. --- - [x] depends on: #22804 [](https://gitpod.io/from-referrer/) | merge-conflict t-differential-geometry delegated | 311/9 | Mathlib/Data/Bundle.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean,Mathlib/Topology/FiberBundle/Constructions.lean | 4 | 24 | ['PatrickMassot', 'github-actions', 'grunweg', 'hrmacbeth', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'sgouezel'] | grunweg | 7 months ago | unknown | unknown |
| 26911 | JovanGerb | chore: fix naming of `mono` and `monotone` | The naming convention says: "We use `_mono` for `a ≤ b → f a ≤ f b` and `_anti` for `a ≤ b → f b ≤ f a`, so we also use `_monotone` for `Monotone f`, `_antitone` for `Antitone f`, `_strictMono` for `StrictMono f`, `_strictAnti` for `StrictAnti f`, etc..." This PR swaps `mono`/`anti` and `monotone`/`antitone` where required so that `monotone` refers to `Monotone`, while `mono` refers to a lemma that might be tagged with `@[gcongr]` This PR does not address - `mul_left_monotone` and `mul_right_monotone` are exactly the wrong way around - `monotone_right`/`mono_right` vs `right_monotone`/`right_mono` - `monotone_arcsin` vs `arcsin_monotone` edit: TODO: `ideal_mono` and friends --- [](https://gitpod.io/from-referrer/) | merge-conflict delegated | 238/171 | Archive/Imo/Imo1962Q1.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Group/Basic.lean,Mathlib/Algebra/Order/Group/Finset.lean,Mathlib/Algebra/Order/Group/PosPart.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Convex/Deriv.lean,Mathlib/Analysis/Normed/Order/UpperLower.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Combinatorics/SetFamily/Kleitman.lean,Mathlib/Combinatorics/SimpleGraph/Girth.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean,Mathlib/Computability/Ackermann.lean,Mathlib/Data/ENNReal/Inv.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/Nat/Choose/Factorization.lean,Mathlib/Data/Real/Pi/Bounds.lean,Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean,Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean,Mathlib/MeasureTheory/OuterMeasure/Operations.lean,Mathlib/NumberTheory/Bertrand.lean,Mathlib/NumberTheory/FermatPsp.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/Order/Concept.lean,Mathlib/Order/Filter/AtTopBot/Defs.lean,Mathlib/Order/Fin/Basic.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Heyting/Boundary.lean,Mathlib/Order/Heyting/Regular.lean,Mathlib/Order/Hom/Set.lean,Mathlib/Order/Interval/Set/Fin.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/UpperLower/Closure.lean,Mathlib/Probability/StrongLaw.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/Ideal.lean,Mathlib/RingTheory/FractionalIdeal/Basic.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean,Mathlib/Topology/MetricSpace/Antilipschitz.lean,Mathlib/Topology/MetricSpace/Holder.lean | 59 | 8 | ['JovanGerb', 'bryangingechen', 'github-actions', 'leanprover-community-bot-assistant', 'linesthatinterlace', 'mathlib-bors'] | bryangingechen | 7 months ago | 235 days ago | 2 days |
| 29855 | eric-wieser | chore(Data/Finset/Sort): lemmas about `0 : Fin _` and `Fin.last _` | We already had these for `⟨0, ⋯⟩` and `⟨k - 1, ⋯⟩`. Moves: - `Finset.orderEmbOfFin_zero` -> `Finset.orderEmbOfFin_mk_zero` - `Finset.orderEmbOfFin_last` -> `Finset.orderEmbOfFin_mk_last` --- [](https://gitpod.io/from-referrer/) | t-data t-order delegated easy | 17/7 | Mathlib/Combinatorics/Enumerative/Composition.lean,Mathlib/Data/Finset/Sort.lean | 2 | 4 | ['eric-wieser', 'github-actions', 'mathlib-bors', 'ocfnash'] | nobody | 4 months ago | 159 days ago | 3 days |
| 27180 | ADedecker | feat: quotient of a monoid with zero by a multiplicative congruence | --- My motivation is getting a more conceptual construction of [ValuativeRel.ValueGroupWithZero](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Valuation/ValuativeRel.html#ValuativeRel.ValueGroupWithZero), but I think this is of independent interest. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra delegated | 141/26 | Mathlib.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/GroupWithZero.lean | 5 | 32 | ['ADedecker', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mathlib4-merge-conflict-bot', 'ocfnash'] | ocfnash | 4 months ago | 202 days ago | 27 days |
| 25765 | JovanGerb | feat(gcongr): lemma for rewriting inside divisibility | TODO: add test to show that we can rewrite using `a ≡ b [ZMOD n]` inside `n ∣ 2 * a + 1`. edit: it's not yet entirely clear if this is the right thing to do. edit: This lemma should be written using iff (or =), so that we can use it specifically when rewriting with a symmetric relation. Supporting equality in `gcongr` is still work in progress. --- [](https://gitpod.io/from-referrer/) | delegated t-data | 5/0 | Mathlib/Data/Int/ModEq.lean | 1 | 3 | ['fpvandoorn', 'github-actions', 'mathlib-bors'] | nobody | 3 months ago | 263 days ago | 1 day |
| 25500 | eric-wieser | feat: delaborators for metadata | Being able to see these is very important when debugging tactic failures. Probably these could be upstreamed, but I don't think that's a reason not to merge them here first. --- [](https://gitpod.io/from-referrer/) | large-import merge-conflict awaiting-author delegated t-meta | 75/3 | Mathlib/Util/Delaborators.lean,Mathlib/Util/PPOptions.lean,MathlibTest/delaborators.lean | 3 | 19 | ['JovanGerb', 'Rob23oba', 'eric-wieser', 'github-actions', 'kmill', 'mathlib-bors', 'mathlib4-merge-conflict-bot', 'plp127'] | nobody | 2 months ago | 187 days ago | 42 days |
| 33702 | JovanGerb | doc(Algebra/Quotient): update `HasQuotient.Quotient` doc-string | `HasQuotient.quotient'` has been deprecated (in #33037), so it should not be mentioned in the doc-string of `HasQuotent.Quotient`. --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 1/6 | Mathlib/Algebra/Quotient.lean | 1 | 4 | ['JovanGerb', 'github-actions', 'grunweg', 'mathlib-bors'] | nobody | 1 month ago | 55 days ago | 15 minutes |
| 32401 | ADedecker | feat: monotonicity of D^n(U) in n and in U as CLMs | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis delegated | 170/3 | Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean | 2 | 19 | ['ADedecker', 'faenuccio', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 62 days ago | 16 days |
| 31092 | FlAmmmmING | feat(Algebra/Group/ForwardDiff.lean): Add theorem `sum_shift_eq_fwdDiff_iter`. | --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor delegated | 17/1 | Mathlib/Algebra/Group/ForwardDiff.lean | 1 | 20 | ['BeibeiX0', 'FlAmmmmING', 'Ruben-VandeVelde', 'dagurtomas', 'github-actions', 'jcommelin', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | dagurtomas | 1 month ago | 40 days ago | 54 days |
| 33052 | JovanGerb | feat: replace `rw??` tactic with `#infoview_search` command | This PR introduces the `#infoview_search` command. It gives an improved way of interacting with the library search from `rw??`, and hence this PR also deprecates `rw??` (`rw??` still works, but it displays a warning message suggesting to use `#infoview_search` instead). The difference is that `#infoview_search` is a command, so you type it once, and then you can use rewrite search in any tactic state in any place. This is more convenient than having to write out `rw??` every time. I have many improvements planned for `#infoview_search`, but this PR simply gives it the same capabilities that `rw??` currently has. One of those improvements is to also do `apply` search, and `apply at` search. That is why the name doesn't contain `rw` anymore. To prepare for more code developments around `#infoview_search`, I've moved the relevant files into a new folder `Mathlib.Tactic.InfoviewSearch`. Note that one annoyance with writing `#infoview_search` is that there is a linter warning. Should I remove the `#` from the command, or are we happy with this? ``` `#`-commands, such as '#infoview_search', are not allowed in 'Mathlib' Note: This linter can be disabled with `set_option linter.hashCommand false` ``` --- [](https://gitpod.io/from-referrer/) | large-import delegated t-meta file-removed merge-conflict | 100/59 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/InfoviewSearch/InteractiveUnfold.lean,Mathlib/Tactic/InfoviewSearch/LibraryRewrite.lean,MathlibTest/LibraryRewrite.lean | 6 | 6 | ['JovanGerb', 'fpvandoorn', 'github-actions', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | adamtopaz | 1 month ago | 53 days ago | 21 days |
| 34895 | eric-wieser | chore: backquote tactic names in error messages | This matches the messages produced by `Lean.Meta.throwTacticEx`. --- [](https://gitpod.io/from-referrer/) | t-meta delegated | 15/15 | Mathlib/Tactic/Abel.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/Ring/RingNF.lean,Mathlib/Util/AtLocation.lean,MathlibTest/abel.lean | 6 | 2 | ['github-actions', 'grunweg', 'mathlib-bors'] | nobody | 25 days ago | unknown | unknown |
| 27702 | FLDutchmann | feat(NumberTheory/SelbergSieve): define Lambda-squared sieves and prove important properties | This PR continues the work from #22052. Original PR: https://github.com/leanprover-community/mathlib4/pull/22052 - [x] depends on: #27820 | t-number-theory delegated merge-conflict | 186/7 | Mathlib/NumberTheory/SelbergSieve.lean | 1 | 44 | ['FLDutchmann', 'MichaelStollBayreuth', 'bryangingechen', 'github-actions', 'jcommelin', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | MichaelStollBayreuth | 20 days ago | 82 days ago | 15 days |
| 31607 | grunweg | chore: rename `continuous{,On,At,Within}_const` to `ContinuousFoo.const` | Zulip discussion: [#mathlib4 > Naming convention @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.20convention/near/447491526) --- - [x] depends on: #34441 - [x] depends on: #34688 [](https://gitpod.io/from-referrer/) | delegated awaiting-CI merge-conflict | 357/369 | Archive/Hairer.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/UnitPartition.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean,Mathlib/Analysis/Calculus/DSlope.lean,Mathlib/Analysis/Calculus/Deriv/MeanValue.lean,Mathlib/Analysis/Calculus/DiffContOnCl.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/MeanValue.lean,Mathlib/Analysis/Calculus/Rademacher.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Complex/AbelLimit.lean,Mathlib/Analysis/Complex/AbsMax.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/Analysis/Complex/HalfPlane.lean,Mathlib/Analysis/Complex/LocallyUniformLimit.lean,Mathlib/Analysis/Complex/PhragmenLindelof.lean,Mathlib/Analysis/Complex/RemovableSingularity.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean,Mathlib/Analysis/Convex/Cone/InnerDual.lean,Mathlib/Analysis/Convex/Exposed.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/Analysis/Convex/PartitionOfUnity.lean,Mathlib/Analysis/Convex/PathConnected.lean,Mathlib/Analysis/Convex/Side.lean,Mathlib/Analysis/Convex/StdSimplex.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/InnerProductSpace/LinearPMap.lean,Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean,Mathlib/Analysis/InnerProductSpace/OfNorm.lean,Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean,Mathlib/Analysis/Normed/Affine/AddTorsor.lean,Mathlib/Analysis/Normed/Group/Continuity.lean,Mathlib/Analysis/Normed/Group/Lemmas.lean,Mathlib/Analysis/Normed/Module/Ball/Homeomorph.lean,Mathlib/Analysis/Normed/Module/Connected.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Operator/Completeness.lean,Mathlib/Analysis/ODE/Gronwall.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Isometric.lean,Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/PoissonSummation.lean,Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Analysis/SpecialFunctions/MulExpNegMulSq.lean,Mathlib/Analysis/SpecialFunctions/PolarCoord.lean,Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean,Mathlib/Dynamics/OmegaLimit.lean,Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean,Mathlib/Geometry/Manifold/Bordism.lean,Mathlib/Geometry/Manifold/Complex.lean,Mathlib/Geometry/Manifold/Instances/Icc.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Geometry/Manifold/SmoothApprox.lean,Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Integral/CircleIntegral.lean,Mathlib/MeasureTheory/Integral/CircleTransform.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean,Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean,Mathlib/MeasureTheory/Measure/Stieltjes.lean,Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean,Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean,Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean,Mathlib/NumberTheory/LSeries/Deriv.lean,Mathlib/NumberTheory/LSeries/Dirichlet.lean,Mathlib/NumberTheory/LSeries/DirichletContinuation.lean,Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/ModularForms/Bounds.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean,Mathlib/NumberTheory/Padics/PadicIntegers.lean | 181 | 10 | ['github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 34025 | lua-vr | feat(Integral.Bochner.Set): add `tendsto_setIntegral_of_monotone₀` | Adds the lemma `tendsto_setIntegral_of_monotone₀`, a version of `tendsto_setIntegral_of_monotone` requiring only `AEMeasurableSet` in the hypotheses. The previous version is redefined as a specialization. Also renames `integral_union_ae` to `setIntegral_union₀` for consistency with the rest of the library (it matches the existing `setIntegral_union`). --- [](https://gitpod.io/from-referrer/) Re-opened from #33206 and now taking respect for Windows users (thanks @ADedecker :). | t-measure-probability delegated | 27/13 | Mathlib/MeasureTheory/Integral/Bochner/Set.lean | 1 | 5 | ['github-actions', 'mathlib-bors', 'ocfnash'] | kex-y | 14 days ago | 14 days ago | 32 days |
| 24965 | erdOne | refactor: Make `IsLocalHom` take unbundled map | Under the current definition, `IsLocalHom f` and `IsLocalHom f.toMonoidHom` are not defeq, which causes quite some annoyances. We also have a consensus to not use `*HomClass` in definitions. As a result, we change `IsLocalHom` to take an unbundled function instead of a funlike. --- [](https://gitpod.io/from-referrer/) | t-algebra delegated merge-conflict | 18/9 | Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean,Mathlib/Geometry/RingedSpace/OpenImmersion.lean,Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean | 5 | 15 | ['adomani', 'alreadydone', 'erdOne', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp'] | mattrobball | 14 days ago | 105 days ago | 14 days |
| 34249 | xyzw12345 | feat(GroupTheory/GroupAction/Hom): connect existing definitions `MulDistribMulActionHom` and `DistribMulActionHom` using `to_additive` | In this PR, we defined `MulDistribMulActionHom` corresponding to `DistribMulActionHom`, which will be used in the multiplicative version of non-Abelian group cohomology. --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 174/69 | Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean | 2 | 7 | ['github-actions', 'mathlib-bors', 'ocfnash'] | ocfnash | 11 days ago | 11 days ago | 29 days |
| 22366 | kim-em | feat: `check_equalities` tactic for diagnosing defeq problems | The `check_equalities` tactic, which checks the typing of equalities in the goal, reporting discrepancies between the implicit type argument of the equality, and the inferred types of the left and right hand sides, at "instances and reducible" transparency. Reports from this tactic do not necessarily indicate a problem, although typically `simp` should reduce rather than increase the reported discrepancies. `check_equalities` may be useful in diagnosing uses of `erw`. | delegated t-meta | 123/4 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/CheckCompositions.lean,Mathlib/Tactic/CheckEqualities.lean,Mathlib/Tactic/Common.lean,MathlibTest/check_equalities.lean | 7 | 19 | ['adomani', 'b-mehta', 'eric-wieser', 'github-actions', 'grunweg', 'kim-em', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | nobody | 9 days ago | unknown | unknown |
| 33691 | kim-em | feat(scripts): add find-ci-errors.sh to diagnose widespread CI failures | This PR adds a script that searches through recent failed CI workflow runs to find open PRs whose current CI contains a specific error string. Useful for diagnosing widespread CI issues affecting multiple PRs (e.g., infrastructure problems, toolchain bugs). **Usage:** ```bash # Find all PRs currently failing with a specific error ./scripts/find-ci-errors.sh "Error parsing args: cannot parse arguments" # Find PRs and automatically add please-merge-master label to trigger rebuilds ./scripts/find-ci-errors.sh --please-merge-master "cannot parse arguments" ``` The `--please-merge-master` flag skips PRs with merge conflicts, and the label is automatically removed by CI once the build completes. 🤖 Prepared with Claude Code | CI delegated merge-conflict | 196/0 | scripts/README.md,scripts/find-ci-errors.sh | 2 | 6 | ['bryangingechen', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 7 days ago | 56 days ago | 1 hour |
| 34734 | FLDutchmann | refactor(Tactic): change `ring` to allow for coefficients in a variable type | Add a parameter to the `ring` normal form that allows for the coefficients to be represented by a custom `BaseType`. `ring` (roughly) sets `BaseType` to be `Rat` and implements addition/multiplication/etc. using `norm_num`. The changes should not be noticeable to users. Care was taken to change as little of the implementation details as possible. This refactor is made in preparation of the `algebra` tactic proposed in #31508. In particular `algebra` will (roughly) set `BaseType` to `Ring.ExSum`. This will allow `algebra` to share much of its internals with `ring`. --- - [x] depends on: #34837 [](https://gitpod.io/from-referrer/) | t-meta delegated merge-conflict | 1106/658 | Mathlib/Tactic/Ring/Basic.lean,Mathlib/Tactic/Ring/Common.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Tactic/Ring/RingNF.lean,MathlibTest/ring.lean,scripts/noshake.json | 6 | 60 | ['FLDutchmann', 'Vierkantor', 'eric-wieser', 'github-actions', 'leanprover-radar', 'mathlib-bors', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | Vierkantor | 7 days ago | 22 days ago | 3 days |
| 33479 | zcyemi | feat(Geometry/Euclidean/Sphere/Power): Add theorem about cospherical points on two intersecting lines | --- Add `cospherical_of_mul_dist_eq_mul_dist_of_angle_eq_pi`. ~~This theorem is the converse of `EuclideanGeometry.mul_dist_eq_mul_dist_of_cospherical_of_angle_eq_pi`. However, the ambient type is required to be two-dimensional, i.e. `Fact (finrank ℝ V = 2)`. I don‘t think (not entirely sure) that lifting the ambient space from dimension 2 to arbitrary dimension is reasonable for this theorem, since the proof is entirely carried out in a two-dimensional plane. Therefore, I place this theorem in `Euclidean/Angle/Sphere` rather than `Euclidean/Sphere/Power`.~~ Deps: - [ ] depends on: #33365 | large-import t-euclidean-geometry delegated | 109/4 | Mathlib/Geometry/Euclidean/Sphere/Basic.lean,Mathlib/Geometry/Euclidean/Sphere/Power.lean | 2 | 18 | ['github-actions', 'jsm28', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'ocfnash', 'zcyemi'] | JovanGerb | 5 days ago | 5 days ago | 8 days |
| 35436 | daniel-carranza | feat(CategoryTheory/Monoidal/Closed): Prove the isomorphism of internal hom objects C(x \otimes y, z) and C(y, C(x, z)) | Prove the currying-uncurrying isomorphism `C(x \otimes y, z) \iso C(y, C(x, z))` between internal hom objects of a closed monoidal category `C`. --- This result is connected to the infinity-cosmos project, and is used to prove that a closed monoidal category enriched in itself admits all cotensors. ~Line 81 currently contains a one-line proof in tactics mode `exact rfl`. When trying to use `rfl` outside of tactics mode, an error is thrown~ (Fixed, thank you @robin-carlier!). Any help with this (or any other aspect of the formalization) is greatly appreciated! [](https://gitpod.io/from-referrer/) | new-contributor t-category-theory infinity-cosmos delegated | 89/0 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Closed/InternalCurrying.lean | 2 | 13 | ['dagurtomas', 'daniel-carranza', 'github-actions', 'joelriou', 'mathlib-bors', 'riccardobrasca', 'robin-carlier'] | adamtopaz | 5 days ago | 5 days ago | 7 days |
| 34932 | erdOne | feat(AlgebraicGeometry): formally etale morphisms | --- [](https://gitpod.io/from-referrer/) | t-algebraic-geometry merge-conflict delegated | 163/12 | Mathlib.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Morphisms/FormallyEtale.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/RingTheory/RingHom/Etale.lean | 5 | 17 | ['chrisflav', 'erdOne', 'github-actions', 'joneugster', 'mathlib-bors', 'mathlib-merge-conflicts', 'ocfnash'] | nobody | 5 days ago | 7 days ago | 11 days |
| 30758 | Timeroot | chore: tag abs_inv and abs_div with grind= | --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 4/3 | Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Ring/Abs.lean | 2 | 5 | ['Timeroot', 'Vierkantor', 'github-actions', 'mathlib-bors'] | kim-em | 4 days ago | 89 days ago | 43 days |
| 35446 | kbuzzard | perf: try lowering prio for A(0) instances, A a graded object | If Lean is looking for `Mul X` where `X` is coincidentally of the form `A 0` then the first thing it tries is `GradedMonoid.GradeZero.mul` which, if wrong, can take a long time to fail. In this PR I steer typeclass inference away from "A(0)-instances" by lowering their priority. Benchmarking is 100% green indicating that this decision is not hurting us. --- [](https://gitpod.io/from-referrer/) See [#mathlib4 > Typeclass Synthesis Regression @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Typeclass.20Synthesis.20Regression/near/564417997) I initiated a new discussion about this PR here [#mathlib4 > priority hacks @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/priority.20hacks/near/574353616) | t-algebra delegated | 14/13 | Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/GradedMonoid.lean | 2 | 11 | ['Vierkantor', 'eric-wieser', 'github-actions', 'kbuzzard', 'leanprover-radar', 'mathlib-bors'] | jcommelin | 4 days ago | 6 days ago | 7 days |
| 25737 | robin-carlier | feat(AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms): Normal forms for `P_δ`s | We prove that admissible lists indeed provide a normal form for morphisms of satisfying `P_δ`. To this end, we introduce `standardδ`, a construction that takes a list and turn it into a composition of `δ i`s in `SimplexCategoryGenRel`. We then prove that, thanks to the first simplicial identity, composition on the left corresponds to simplicial insertion in the list. This gives existence of a normal form for every morphism satisfying `P_δ`. For unicity, we introduce an auxiliary function `simplicialEvalδ : (List ℕ) → ℕ → ℕ` and show that for admissible lists, it lifts to `ℕ` the `orderHom` attached to `toSimplexCategory.map standardδ`, and that we can recover elements of the list only by looking at values of this function. Part of a series of PR formalising that `SimplexCategoryGenRel` is equivalent to `SimplexCategory`. --- - [x] depends on: #25736 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #21746.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/21746* | t-algebraic-topology delegated t-category-theory | 181/2 | Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean | 1 | 6 | ['github-actions', 'joelriou', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | 134 days ago | 6 hours |
| 29909 | Vierkantor | feat(CI): add build output to CI workflows | This PR uses the Zulip build report script (originally developed for the nightly-regression-report workflow) to add a summary of build output to other Zulip posts about workflow results. This allows us to more easily see the origin of a failure. This requires redoing the script a little to make it a bit more flexible, and the output is slightly reformatted to become consistent across the various workflows (4 of them that post to Zulip). We don't do so for the nightly-testing failures, since those run in a different workflow, and it would be a lot of work to access the command output from another workflow. --- [](https://gitpod.io/from-referrer/) | CI delegated merge-conflict | 55/35 | .github/workflows/nightly-docgen.yml,.github/workflows/nightly-regression-report.yml,scripts/zulip_build_report.sh | 3 | 11 | ['Vierkantor', 'adomani', 'github-actions', 'joneugster', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | joneugster | 1 day ago | 4 days ago | 48 days |
| 34491 | urkud | feat(ContinuousMultilinearMap): generalize some definitions | ... from normes spaces to topological vector spaces --- - [ ] depends on: #35430 [](https://gitpod.io/from-referrer/) | t-analysis delegated | 182/112 | Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean | 5 | 24 | ['PatrickMassot', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'urkud'] | mariainesdff | 1 day ago | 1 day ago | 19 days |
| 35433 | morrison-daniel | feat(LinearAlgebra/ExteriorAlgebra/Basic): adds multiplication lemmas for `ExteriorAlgebra` | This adds lemmas for dealing with multiplication of elements in the `ExteriorAlgebra`: * `ιMulti_eq_zero_of_not_inj` : a product containing duplicates is zero * `ιMulti_mul_ιMulti` : `ιMulti R m a * ιMulti R n b = ιMulti R (m+n) (Fin.append a b)` * `ιMulti_family_mul_of_not_disjoint` : if two sets of elements are not disjoint their product is zero * `ιMulti_perm` : the permutation corresponding to adjoining two sets of elements and sorting the result * `ιMulti_family_mul_of_disjoint` : the product of two elements of the form `ιMulti_family` is of the form `ιMulti_family` up to sign --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 89/0 | Mathlib/Data/Finset/Basic.lean,Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean,Mathlib/Order/Hom/PowersetCard.lean | 3 | 10 | ['github-actions', 'mathlib-bors', 'morrison-daniel', 'ocfnash'] | ocfnash | 1 day ago | 1 day ago | 2 days |
There are currently 425 PRs awaiting review. Among these,
On the other hand, 53 PRs are unassigned and have not seen a status change in a week, and 57 PRs are assigned, without recent review activity.
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Approval(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 29030 | b-mehta | feat(Combinatorics): prove the Rado selection lemma | Prove the Rado selection lemma, a generic result useful to prove a variety of compactness results in combinatorics. This generalises Konig's infinity lemma, and the de Bruijn-Erdos theorem, and allows the former to be conveniently stated in the language of sets rather than categories. We leave these generalisations of results in mathlib to later PRs. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 132/0 | Mathlib.lean,Mathlib/Combinatorics/Compactness.lean | 2 | 1 | ['github-actions'] | nobody | none | 22 days ago | unknown | unknown |
| 35398 | vlad902 | feat(SimpleGraph): `bypass` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 17/0 | Mathlib/Combinatorics/SimpleGraph/Paths.lean | 1 | 1 | ['github-actions'] | nobody | none | 15 days ago | 15 days ago | 15 days |
| 35017 | robo7179 | feat(Combinatorics/SimpleGraph/Acyclic): add every nontrivial tree has atleast two leaves | Added two theorems to prove that every non trivial tree has atleast two leaves (one in Finite the other in Acyclic). --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 94/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean | 2 | 24 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'robo7179'] | nobody | none | 15 days ago | 15 days ago | 21 days |
| 35327 | SnirBroshi | feat(SimpleGraph/Acyclic): the union of two trees that share exactly one vertex is a tree | --- A surprisingly painful proof for something that seems trivial when using a proof by drawing on the board. To avoid any doubts: no AI was involved whatsoever. [](https://gitpod.io/from-referrer/) | t-combinatorics | 95/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 2 | 3 | ['SnirBroshi', 'github-actions', 'vlad902'] | nobody | none | 15 days ago | 17 days ago | 17 days |
| 34578 | dennj | feat: define Boolean circuits over abstract gate families | This PR introduces a foundation for Boolean circuits parameterized by abstract gate families. ## Main definitions - `GateEval`: typeclass for gate families with Boolean semantics - `GateHom`: arity-preserving maps between gate families - `Circuit`: inductive type representing circuit syntax trees - `AC0Gate`, `ACC0Gate`, `TC0Gate`: standard complexity-theoretic gate bases ## Design notes The key design choice is to keep **syntax** (gate labels `G : Nat → Type`) separate from **semantics** (`GateEval.eval`), allowing users to define custom gate families (e.g., MAJ, XOR, arbitrary threshold gates) without modifying core definitions. ### Tree vs DAG representation We evaluated two approaches for circuit representation: 1. **Tree-based** (this PR): Circuits as inductive syntax trees 2. **DAG-based**: Circuits as lists of gates with index-based references We chose tree-based circuits because: - **Compositionality**: Easy to build circuits via `gate g (fun i => subcircuit i)` - **Type safety**: Arity-indexed gates (`G : Nat → Type`) catch errors at compile time - **Manipulation**: Natural support for `mapGate`, `subst`, `mapInputs` - **Mathlib philosophy**: Aligns with structural/compositional reasoning patterns For use cases requiring explicit sharing (complexity analysis, evaluation efficiency), a separate `DAG` type can be added later with proven equivalence via `Circuit.toDAG`. The current representation serves as a minimal foundation for size/depth measures, circuit families, and complexity classes (AC0, ACC0, TC0). --- [](https://gitpod.io/from-referrer/) | new-contributor t-computability | 919/0 | Mathlib.lean,Mathlib/Computability/Circuit/Basic.lean,Mathlib/Computability/Formula/Basic.lean,Mathlib/Computability/Gate.lean | 4 | 18 | ['LLaurance', 'YuvalFilmus', 'dennj', 'github-actions'] | nobody | none | 15 days ago | 15 days ago | 22 days |
| 35418 | vlad902 | feat(SimpleGraph): `IsAcyclic` iff not 2-edge-reachable | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 46/5 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean | 3 | 3 | ['SnirBroshi', 'github-actions', 'vlad902'] | nobody | none | 14 days ago | 14 days ago | 15 days |
| 35400 | vlad902 | feat(SimpleGraph): `IsEdgeReachable` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 18/0 | Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean | 1 | 7 | ['SnirBroshi', 'github-actions', 'vlad902'] | nobody | none | 14 days ago | 14 days ago | 15 days |
| 35360 | vlad902 | chore: rename `cycleGraph_EulerianCircuit` to `cycleGraph.cycle` | Per [this](https://github.com/leanprover-community/mathlib4/pull/34797#discussion_r2807963752) review feedback, this definition is inappropriately named with an underscore and should be renamed. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 21/17 | Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean | 2 | 2 | ['github-actions', 'vlad902'] | nobody | none | 13 days ago | 16 days ago | 16 days |
| 35615 | SnirBroshi | feat(Combinatorics/SimpleGraph/Maps): lemmas about support | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 41/0 | Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean | 2 | 1 | ['github-actions'] | nobody | none | 10 days ago | 10 days ago | 10 days |
| 35616 | SnirBroshi | feat(Combinatorics/SimpleGraph/Copy): `IsContained` and `IsIndContained` are preorders | --- This makes `calc` work and provides `Std.Refl` and `IsTrans` instances. `grw` still doesn't work and mixing the two predicates in `calc` (to prove `IsContained`) also doesn't work. [](https://gitpod.io/from-referrer/) | t-combinatorics | 20/0 | Mathlib/Combinatorics/SimpleGraph/Copy.lean | 1 | 1 | ['github-actions'] | nobody | none | 10 days ago | 10 days ago | 10 days |
| 35613 | SnirBroshi | feat(Combinatorics/SimpleGraph/Clique): use `IsContained` instead of an explicit embedding from top | This makes theorems require only a proof that a `Copy` exists rather than provide an explicit `Embedding`. Also tag monotonicity lemmas with `@[gcongr]`. --- This isn't a generalization per-se since one could use choice plus `Copy.topEmbedding` to upgrade the `IsContained` to an embedding, but `IsContained` makes more sense in theorems. [](https://gitpod.io/from-referrer/) | t-combinatorics | 37/36 | Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean | 3 | 1 | ['github-actions'] | nobody | none | 10 days ago | 10 days ago | 10 days |
| 35619 | SnirBroshi | feat(Combinatorics/SimpleGraph/Clique): intersection and union of cliques | Plus a couple of lemmas. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 29/0 | Mathlib/Combinatorics/SimpleGraph/Clique.lean | 1 | 1 | ['github-actions'] | nobody | none | 10 days ago | 10 days ago | 10 days |
| 35622 | SnirBroshi | feat(Logic/Function/Basic): `onFun` and `swap` preserve relation properties | --- [](https://gitpod.io/from-referrer/) | t-logic | 105/1 | Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Function/Defs.lean,Mathlib/Order/Defs/Unbundled.lean | 3 | 4 | ['SnirBroshi', 'github-actions', 'vihdzp'] | nobody | 1 | 9 days ago | 9 days ago | 10 days |
| 34937 | tannerduve | feat(Computability): semilattice instance on Turing degrees | This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory. The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows ``` turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g ``` and prove it is a least upper bound: * `left_le_join`, `right_le_join` * `join_le` * monotonicity and congruence lemmas (`join_mono`, `join_congr`) We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le` ``` instance : SemilatticeSup TuringDegree ``` **New additions to `RecursiveIn.lean`:** - `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`. - `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`. - `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable - `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set. Small addition to `Partrec` we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond` ## TODO Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library by essentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec` ## Note: AI Usage [Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files | t-computability new-contributor large-import | 644/63 | Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean | 3 | 14 | ['eric-wieser', 'github-actions', 'plp127', 'tannerduve', 'vihdzp'] | nobody | none | 9 days ago | 9 days ago | 23 days |
| 35295 | Rida-Hamadani | feat(SimpleGraph): `dropLast` of a cycle is a path | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 18/1 | Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 2 | 6 | ['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'vlad902'] | nobody | 1 | 9 days ago | 9 days ago | 10 days |
| 35011 | whocares-abt | feat(Combinatorics/SimpleGraph/Copy): add degree of copy less than original | add two theorems relating degree of a graph and it's copy | t-combinatorics new-contributor | 17/0 | Mathlib/Combinatorics/SimpleGraph/Copy.lean | 1 | 12 | ['SnirBroshi', 'github-actions', 'themathqueen', 'vihdzp'] | nobody | none | 8 days ago | 8 days ago | 22 days |
| 35682 | chenson2018 | chore(Computability/Partrec): remove `linter.flexible` exceptions | This removes all `set_option linter.flexible false` from this module. Some proofs simply required moving around the usage of `simp`. For others I used `grind`, which is permitted to follow flexible tactics. In all cases I prioritized leaving the structure of the proof either mostly as-is or slightly improving readability. --- [](https://gitpod.io/from-referrer/) | t-computability maintainer-merge | 23/41 | Mathlib/Computability/Partrec.lean | 1 | 6 | ['chenson2018', 'github-actions', 'grunweg'] | nobody | none | 8 days ago | 8 days ago | 8 days |
| 35642 | SnirBroshi | feat(SimpleGraph/Walks/Operations): `p.dropLast.length` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 12/1 | Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 1 | 1 | ['github-actions', 'vlad902'] | nobody | 1 | 7 days ago | 9 days ago | 9 days |
| 35631 | SnirBroshi | feat(SimpleGraph/Walks/Operations): `p.dropLast.support` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 9/0 | Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 1 | 2 | ['github-actions', 'vlad902'] | nobody | 1 | 7 days ago | 7 days ago | 9 days |
| 35664 | Rida-Hamadani | feat(SimpleGraph): the adjacency matrix of empty and complete graphs | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 11/0 | Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean | 1 | 2 | ['IvanRenison', 'github-actions'] | nobody | none | 7 days ago | 7 days ago | 9 days |
| 35292 | Rida-Hamadani | feat(SimpleGraph): taking twice from a walk equals taking the minimum | this is an analogue to `List.take_take`. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 5/0 | Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 1 | 2 | ['SnirBroshi', 'github-actions'] | nobody | 1 | 7 days ago | 17 days ago | 17 days |
| 35696 | GrigorenkoPV | fix(Data/Rel): change what `image_eq_cod_of_dom_subset` states | It used to be identical to its neighbor, `preimage_eq_dom_of_cod_subset`. Both lemmas seem to have been introduced in #25587. --- I think this is technically a breaking change? Not sure what has to be done here. [](https://gitpod.io/from-referrer/) | t-data new-contributor | 1/1 | Mathlib/Data/Rel.lean | 1 | 2 | ['github-actions', 'vihdzp'] | nobody | 1 | 7 days ago | unknown | unknown |
| 35740 | LLaurance | chore(SimpleGraph/Basic): clean up and shorten | Clean up and shorten some proofs --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 43/50 | Mathlib/Combinatorics/SimpleGraph/Basic.lean | 1 | 1 | ['github-actions'] | nobody | none | 6 days ago | 6 days ago | 6 days |
| 33780 | ooovi | feat(Geometry/Convex/Cone): lineality space of pointed cones | Define the lineality space `PointedCone.lineal` as the submodule `C ⊓ -C`. Prove that it is the largest submodule of the cone, which is sometimes used as an alternative definition. Co-authored-by: Martin Winter --- dependency of #33664 - [x] depends on #33761 [](https://gitpod.io/from-referrer/) | t-convex-geometry | 42/1 | Mathlib/Geometry/Convex/Cone/Pointed.lean | 1 | 19 | ['artie2000', 'eric-wieser', 'github-actions', 'martinwintermath', 'mathlib4-merge-conflict-bot', 'ooovi', 'vihdzp'] | nobody | none | 5 days ago | 5 days ago | 17 days |
| 35821 | SnirBroshi | feat(Order/ConditionallyCompleteLattice): `sInf s ≤ sSup t` for `(s ∩ t).Nonempty` | --- [](https://gitpod.io/from-referrer/) | t-order | 27/1 | Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean | 3 | 1 | ['github-actions'] | nobody | none | 5 days ago | 5 days ago | 5 days |
| 35713 | Parcly-Taxel | feat: Bird–Wadler duality theorems | Forms of these three theorems already exist in mathlib and the Lean standard library, but they are scattered about. Bring them together in one file, deprecating the _ad hoc_ names for the first and second theorems. | t-data | 167/82 | Mathlib.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/BirdWadler.lean,docs/references.bib | 4 | 1 | ['github-actions'] | nobody | none | 4 days ago | 4 days ago | 7 days |
| 35656 | euprunin | chore(ModelTheory): golf proofs | This PR removes unused `have`/`haveI`/`let`/`letI` calls. The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `FirstOrder.Field.realize_genericMonicPolyHasRoot`: unchanged 🎉 * `FirstOrder.Language.exists_cg_is_age_of`: unchanged 🎉 * `FirstOrder.Language.Theory.models_formula_iff_onTheory_models_equivSentence`: unchanged 🎉 * `FirstOrder.Language.Sentence.realize_cardGe`: unchanged 🎉 * `FirstOrder.Language.Ultraproduct.boundedFormula_realize_cast`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | t-logic | 3/16 | Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/Satisfiability.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Ultraproducts.lean | 5 | 6 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | nobody | 1 | 4 days ago | 8 days ago | 9 days |
| 35677 | euprunin | chore(SetTheory): golf proofs | This PR removes unused `have`/`haveI`/`let`/`letI` calls + some small similar cleanups. The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Cardinal.mul_eq_self`: unchanged 🎉 * `Cardinal.succ_natCast`: unchanged 🎉 * `Ordinal.exists_fundamental_sequence`: unchanged 🎉 * `Cardinal.mk_subtype_le_of_countable_eventually_mem`: unchanged 🎉 * `Nat.card_image_of_injOn`: unchanged 🎉 * `mul_le_of_limit_aux`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | t-set-theory | 2/11 | Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/CountableCover.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/ZFC/PSet.lean | 7 | 4 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | nobody | 1 | 4 days ago | 8 days ago | 8 days |
| 35552 | vihdzp | chore(SetTheory/Ordinal/Basic): remove `backward.privateInPublic` | --- [](https://gitpod.io/from-referrer/) | t-set-theory tech debt | 7/27 | Mathlib/SetTheory/Ordinal/Basic.lean | 1 | 1 | ['github-actions'] | nobody | none | 4 days ago | 4 days ago | 12 days |
| 35853 | vihdzp | chore(SetTheory/Ordinal): deprecate more theorems on `succ` | --- - [x] depends on: #35844 [](https://gitpod.io/from-referrer/) | t-set-theory | 39/37 | Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Ordinal.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/SetTheory/Ordinal/Topology.lean | 9 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | none | 4 days ago | 4 days ago | 4 days |
| 35084 | edegeltje | feat(Combinatorics/SimpleGraph): The Cayley graph for structures with `Mul`/`Add` | This pr: - adds the definition `SimpleGraph.mulCayley`, where `x` is adjacent to a distinct `y` when there is `g` such that `x * g = y` or `x = y * g`, - proves various lemmas about the above, - adds/proves the additive versions of all of the above some related zulip conversation: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Cayley.20and.20circulant.20graph/with/572839048 --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 106/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cayley.lean | 2 | 27 | ['SnirBroshi', 'edegeltje', 'github-actions', 'vihdzp', 'vlad902'] | nobody | none | 4 days ago | 4 days ago | 21 days |
| 35865 | vihdzp | chore: review `Cardinal.ord` API | This PR does the following: - Mark `Cardinal.ord` as no expose. - Prove the defining property `gciOrdCard` earlier. - Deprecate the unused `ord.orderEmbedding` (it simply restates that the function is strictly monotonic). - Rename `ord_nat` → `ord_natCast`. --- [](https://gitpod.io/from-referrer/) | t-set-theory | 45/39 | Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean | 4 | 1 | ['github-actions'] | nobody | none | 4 days ago | 4 days ago | 4 days |
| 35415 | joneugster | feat(Cache): enable partial cache in downstream projects | Migrated to fork from: #21238. Add features to `cache` and cleanup code: * enable partial cache retrieval in downstream projects: `lake exe cache get MyProject.Basic` downloads only the relevant cache to build `MyProject/Basic.lean` --- - [x] depends on: #21834 ### Notes: - replaces: #21195 - should address: #8767 - should address: #20568 ### Completed: - [x] depends on: #21632 - [x] ~~depends on: #21663~~ - [x] depends on: #21666 - [x] depends on: #21701 - [x] depends on: #21703 - [x] depends on: #21704 - [x] depends on: #21705 - [x] depends on: #21707 - [x] depends on: #21711 - [x] depends on: #21750 - [x] depends on: #21815 - [x] depends on: #21816 - [x] depends on: #21817 - [x] depends on: #21818 - [x] depends on: #21822 - [x] depends on: #21830 - #21848 [](https://gitpod.io/from-referrer/) | CI t-meta | 34/15 | Cache/Hashing.lean,Cache/IO.lean,Cache/Main.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | none | 4 days ago | 4 days ago | 4 days |
| 35608 | BoltonBailey | chore(Computability): move TM files to a single folder | This PR takes files relevant to Turing machines and moves them to a single folder for better organization. In the process, we do some renaming of these files * We remove the "TM" from the front of these files, as it's now redundant. * TuringMachine.lean --> TuringMachine/StackMachine.lean * (really the key difference between the TM2 model presented in this file, and the TM1 model from the previous, is the introduction of stacks instead of tapes) I also remove `EvalsTo` and friends from TuringMachine.Computable, as these in #33291 were moved out of the TM namespace. --- [](https://gitpod.io/from-referrer/) | t-computability file-removed | 21/58 | Mathlib.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TuringMachine/Computable.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Computability/TuringMachine/PostTuringMachine.lean,Mathlib/Computability/TuringMachine/StackMachine.lean,Mathlib/Computability/TuringMachine/Tape.lean,Mathlib/Computability/TuringMachine/ToPartrec.lean | 8 | 3 | ['BoltonBailey', 'github-actions', 'mathlib-merge-conflicts'] | nobody | none | 4 days ago | 4 days ago | 10 days |
| 35830 | AntoineChambert-Loir | feat(Data/Nat/Choose/Plurinomial): plurinomial coefficients | Define the multinomial coefficients, a variant of `Nat.multinomial`. - `Multiset.plurinomial`. Given a multiset `m` of natural numbers, `m.plurinomial` is the multinomial coefficient defined by (m.sum) ! / ∏ i ∈ m, m i !. As an example, `Multiset.plurinomial {1, 2, 2} = 30`. This is the exponent of $x y^2 z^2$ in $(x+y+z)^5$. This should not be confused with the existing `Multiset.multinomial` which gives a different answer, for example, `Multiset.multinomial {1, 2, 2} = 3`. We chose the name “plurinomial” by changing the Greek root “multi” to its Latine version “pluri”. - `Multiset.plurinomial_cons` proves that `(x ::ₘ m).plurinomial = Nat.choose (x + m.sum) x * m.plurinomial` - `Multiset.plurinomial_add` proves that `(m + m').plurinomial = Nat.choose (m + m').sum m.sum * m.plurinomial * m'.plurinomial` co-authored with @mariainesdff --- [](https://gitpod.io/from-referrer/) | t-data | 179/20 | Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Data/List/ToFinsupp.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean | 4 | 9 | ['AntoineChambert-Loir', 'github-actions', 'vihdzp'] | nobody | none | 4 days ago | 4 days ago | 4 days |
| 35857 | AlexeyMilovanov | feat(Logic.Equiv.BijectiveBase2): add bijective base-2 numeration | This PR introduces a formalization of the bijective base-2 numeration system. Unlike standard binary representation, bijective base-2 avoids the "leading zeros" problem, providing a strict mathematical bijection between natural numbers (`ℕ`) and lists of booleans (`List Bool`). **Main additions:** * `Equiv.BijectiveBase2.toBits`: Encodes `ℕ` to `List Bool`. * `Equiv.BijectiveBase2.ofBits`: Decodes `List Bool` to `ℕ`. * `equivBijectiveBase2`: The formal `ℕ ≃ List Bool` equivalence. *(Note: This replaces my previously closed PR to avoid the terminology clash between "Dyadic" and dyadic rationals. The namespace and definitions have been updated accordingly).* *(Note: Used AI to assist with standardizing proof structures).* | t-logic new-contributor | 95/0 | Mathlib.lean,Mathlib/Logic/Equiv/ListNatBijective.lean | 2 | 4 | ['AlexeyMilovanov', 'SnirBroshi', 'github-actions'] | nobody | none | 4 days ago | 4 days ago | 4 days |
| 35776 | IvanRenison | feat(Combinatorics): define `HasAdj` for capturing the common structure of different kinds of (simple) graphs | We add a vertex set considering that we want to refactor `SimpleGraph` to also use one --- This pr replaces #4127 Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445 [](https://gitpod.io/from-referrer/) | t-combinatorics | 101/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/HasAdj.lean,Mathlib/Combinatorics/HasAdj/Basic.lean,Mathlib/Combinatorics/SimpleGraph/HasAdj.lean | 4 | 1 | ['github-actions'] | nobody | none | 4 days ago | 4 days ago | 4 days |
| 35822 | SnirBroshi | feat(Order/ConditionallyCompleteLattice): `sSup (f '' s) ≤ f (sSup s)` | --- #35260 will add `iSup` versions. Future work: `Antitone`, `MonotoneOn`, `AntitoneOn` [](https://gitpod.io/from-referrer/) | t-order | 39/1 | Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean | 2 | 5 | ['SnirBroshi', 'github-actions', 'vihdzp'] | nobody | none | 4 days ago | 5 days ago | 5 days |
| 35628 | SnirBroshi | feat(Combinatorics/SimpleGraph/Maps): characterize `neighborSet` and `edgeSet` across an embedding | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 40/0 | Mathlib/Combinatorics/SimpleGraph/Maps.lean | 1 | 1 | ['github-actions'] | nobody | none | 4 days ago | 4 days ago | 10 days |
| 35878 | Parcly-Taxel | chore: use `induction` for `Quotient.induction` invocations | Found through the regex `(refine|apply|exact).*Quotient.induction`. Includes the multiple-argument variants. | tech debt | 93/102 | Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Basic.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/Combinatorics/Tiling/Tile.lean,Mathlib/Computability/Tape.lean,Mathlib/Data/Multiset/Functor.lean,Mathlib/Data/Multiset/Sym.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/LinearAlgebra/Alternating/DomCoprod.lean,Mathlib/LinearAlgebra/Quotient/Pi.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/Order/Category/PartOrd.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/Topology/Algebra/InfiniteSum/Module.lean | 28 | 1 | ['github-actions'] | nobody | none | 4 days ago | 3 days ago | 3 days |
| 35841 | astrainfinita | chore(Order/Defs/LinearOrder): avoid `grind` in very fundamental lemmas | --- [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2334013.20chore.3A.20golf.20with.20grind.20to.20reduce.20explicit.20lemma.20refer/near/570429476) [](https://gitpod.io/from-referrer/) | t-order | 40/19 | Mathlib/Order/Defs/LinearOrder.lean | 1 | 2 | ['github-actions', 'grunweg'] | nobody | none | 4 days ago | unknown | unknown |
| 35880 | astrainfinita | feat(Order/Defs/LinearOrder): `min_ind` | --- [](https://gitpod.io/from-referrer/) | t-order | 5/0 | Mathlib/Order/Defs/LinearOrder.lean | 1 | 1 | ['github-actions'] | nobody | none | 3 days ago | 3 days ago | 3 days |
| 35716 | IvanRenison | feat(Combinatorics/SimpleGraph/Connectivity): add lemmas about reachable, degree and neighbor set | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 28/6 | Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean | 1 | 10 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] | nobody | 1 | 3 days ago | 3 days ago | 7 days |
| 35829 | IvanRenison | refactor(Data/Last): move `Mathlib.Tactic.BicategoryLike.pairs` to `List.consecutivePairs` | Moves: - Mathlib.Tactic.BicategoryLike.pairs -> List.consecutivePairs --- [](https://gitpod.io/from-referrer/) | t-data | 12/6 | Mathlib/Data/List/Defs.lean,Mathlib/Tactic/Widget/StringDiagram.lean | 2 | 5 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'robin-carlier'] | nobody | none | 3 days ago | 4 days ago | 5 days |
| 35774 | astrainfinita | chore: use `IsLUB` `IsGLB` in `ConditionallyCompleteLattice` | --- [](https://gitpod.io/from-referrer/) | t-order | 142/197 | Mathlib/Algebra/Tropical/Lattice.lean,Mathlib/Data/Int/ConditionallyCompleteOrder.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Copy.lean | 9 | 8 | ['astrainfinita', 'github-actions', 'vihdzp'] | nobody | 1 | 3 days ago | 3 days ago | 6 days |
| 35769 | SnirBroshi | feat(Order/WellFounded): the cardinality of a set is an upper-bound for the amount of elements before the set's mex | The "mex" of a set is its minimum excluded value, see https://en.wikipedia.org/wiki/Mex_(mathematics) --- Extracted from #35669 [](https://gitpod.io/from-referrer/) | t-order | 19/0 | Mathlib/Order/WellFounded.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Ordinal/Basic.lean | 3 | 1 | ['github-actions'] | nobody | none | 3 days ago | 3 days ago | 6 days |
| 35893 | b-mehta | feat(Data/Nat/Choose/Lucas): add choose_mul_mul and choose_pow_mul_pow_mul modular congruence lemmas | --- [](https://gitpod.io/from-referrer/) | t-data | 32/1 | Mathlib/Data/Nat/Choose/Lucas.lean | 1 | 1 | ['github-actions'] | nobody | none | 3 days ago | 3 days ago | 3 days |
| 35892 | vlad902 | feat(Data): lemmas for `List.bagInter` | Basic API lemmas for `List.bagInter` and correct a few misnamed lemmas.
Co-authored-by: Aristotle (Harmonic) |
t-data | 60/5 | Mathlib/Data/List/Lattice.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/Multiset/UnionInter.lean | 3 | 1 | ['github-actions'] | nobody | none | 3 days ago | 3 days ago | 3 days |
| 35763 | kim-em | chore(scripts): make rm_set_option cache opt-in via --resume | This PR changes `scripts/rm_set_option.py` so the progress cache is only used when explicitly requested via `--resume`, rather than being on by default (with `--no-resume` to disable). The previous default was unsafe: the cache only checks that the target module's own SHA256 is unchanged, so edits to upstream modules between runs would be silently ignored, causing the script to skip modules that should be reprocessed. 🤖 Prepared with Claude Code | 4/4 | scripts/README.md,scripts/rm_set_option.py | 2 | 1 | ['github-actions'] | nobody | none | 3 days ago | 6 days ago | 6 days | |
| 35858 | vihdzp | doc(SetTheory/Ordinal/Arithmetic): improve documentation | This PR does the following: - Use better variable names in the docs (instead of just variants of the letter `o`). - Remove mentions of things defined in other files, or specify that they are defined on other files. --- [](https://gitpod.io/from-referrer/) | documentation t-set-theory | 14/21 | Mathlib/SetTheory/Ordinal/Arithmetic.lean | 1 | 3 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | none | 3 days ago | 3 days ago | 4 days |
| 35905 | Jun2M | feat(Combinatorics/Graph): Add definitions for small graphs (noEdge, bouquet, banana) | This pull request adds new constructors and supporting lemmas for special types of graphs in the `Mathlib/Combinatorics/Graph/Basic.lean` file. It introduces: * `Graph.noEdge V`: The graph with vertex set V and empty edge set. * `Graph.bouquet v E`: The graph with vertex set {v} and edge set E, where all edges are loops at v. * `Graph.banana u v E`: The graph with vertex set {u, v} and edge set E, where all edges connect u and v. along with various properties and characterizations for these graphs. Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com) --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 126/0 | Mathlib/Combinatorics/Graph/Basic.lean | 1 | 1 | ['github-actions'] | nobody | none | 3 days ago | 3 days ago | 3 days |
| 35907 | JJYYY-JJY | fix(Topology/Defs/Basic): preserve noncanonical topology instances in delaboration | Preserve noncanonical topology instances in delaboration. Restore local instances before checking whether topology arguments can be omitted during delaboration, and print `IsOpen[t]`, `IsClosed[t]`, `closure[t]`, and `Continuous[t₁, t₂]` when the topology instances are not canonical in the current local-instance context. Previously, pretty-printing could silently drop noncanonical topology arguments, so declarations such as `LinearMap.mem_span_iff_continuous_of_finite` were rendered as if they used the default topology. Closes #33238 | t-topology new-contributor | 111/0 | Mathlib/Topology/Defs/Basic.lean,MathlibTest/TopologyNonstandardNotation.lean | 2 | 4 | ['copilot-pull-request-reviewer', 'github-actions'] | nobody | none | 3 days ago | 3 days ago | 3 days |
| 35908 | vihdzp | chore(FieldTheory/AbelRuffini): simpler definition of `solvableByRad` | We redefine `solvableByRad F E` as the smallest intermediate field closed under n-th roots. This makes the predicate `IsSolvableByRad` redundant, and so we deprecate it. We also private/remove various auxiliary results, and change the statement of the Abel-Ruffini theorem to be about an element of the field, rather than the subtype. --- [](https://gitpod.io/from-referrer/) | t-algebra | 134/164 | Archive/Wiedijk100Theorems/AbelRuffini.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/FieldTheory/AbelRuffini.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean | 4 | 5 | ['github-actions', 'plp127', 'vihdzp'] | nobody | none | 3 days ago | 2 days ago | 3 days |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Approval(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 33963 | gasparattila | feat(Topology/UniformSpace/Closeds): completeness of `(Nonempty)Compacts` | This PR generalizes the completeness result of `NonemptyCompacts` from metric spaces to uniform spaces. --- - [x] depends on: #34036 [](https://gitpod.io/from-referrer/) | t-topology | 71/8 | Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | PatrickMassot | none | 1 month ago | 34 days ago | 45 days |
| 34268 | gasparattila | feat(Topology/Sets): continuity of operations on `(Nonempty)Compacts` | --- [](https://gitpod.io/from-referrer/) | t-topology | 144/17 | Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 3 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | PatrickMassot | none | 1 month ago | 34 days ago | 40 days |
| 34270 | gasparattila | feat(Topology/UniformSpace/Closeds): `(Nonempty)Compacts.toCloseds` is a closed embedding | --- [](https://gitpod.io/from-referrer/) | t-topology | 36/35 | Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | PatrickMassot | none | 1 month ago | 34 days ago | 40 days |
| 34123 | staroperator | feat(Data/Set/Finite): finite distributivity for complete distributive lattices | --- [](https://gitpod.io/from-referrer/) | t-order | 52/0 | Mathlib/Data/Set/Finite/Lattice.lean | 1 | 11 | ['github-actions', 'plp127', 'staroperator'] | bryangingechen | none | 1 month ago | 43 days ago | 43 days |
| 34092 | staroperator | feat(SetTheory/ZFC): properties of `ZFSet.omega` | --- [](https://gitpod.io/from-referrer/) | t-set-theory | 77/10 | Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/PSet.lean | 3 | 25 | ['Komyyy', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator', 'vihdzp'] | alreadydone | 1 | 1 month ago | 33 days ago | 44 days |
| 33817 | FlAmmmmING | fix(Combinatorics/Enumerative/Schroder.lean): Fix the definition and theorem of smallSchroder. | In the previous definition, the small Schröder numbers were defined as ```LaTeX s_0 = 1, s_1 = 1, s_2 = 1, s_3 = 3... ``` , which does not match the sequence listed in OEIS A006318. Moreover, this definition makes it difficult to correctly write the generating function for the small Schröder numbers. This PR fixes this issue. --- [](https://gitpod.io/from-referrer/) | new-contributor t-combinatorics large-import | 61/39 | Mathlib/Combinatorics/Enumerative/Schroder.lean | 1 | 19 | ['FlAmmmmING', 'github-actions', 'vihdzp'] | awainverse | none | 1 month ago | 41 days ago | 52 days |
| 34227 | stepan2698-cpu | feat: If sum of densities is at least one, the sumset covers the naturals | Proves an outstanding TODO item from Mathlib.Combinatorics.Schnirelmann : shows that if the sum of two densities is at least one, the sumset covers the positive naturals. --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 51/1 | Mathlib/Combinatorics/Schnirelmann.lean | 1 | 3 | ['github-actions', 'grunweg', 'kbuzzard'] | awainverse | none | 1 month ago | 41 days ago | 41 days |
| 34028 | floor-licker | feat(SimpleGraph): add max-flow/min-cut weak duality | This PR introduces a basic s–t flow setup for undirected SimpleGraphs and proves the standard weak-duality inequality: for any feasible flow f and any s–t cut S, value f ≤ cutCapacity S. This is a small, self-contained lemma I extracted while working on larger graph-theoretic formalizations, in particular, results that will ultimately rely on a full max-flow/min-cut theorem. The full MFMC equality/existence statement is not included here. This is the weak-duality direction (∀ f S, value f ≤ cutCapacity S). | t-combinatorics new-contributor | 169/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/MaxFlowMinCut.lean | 2 | 13 | ['SnirBroshi', 'floor-licker', 'github-actions'] | kmill | none | 1 month ago | 36 days ago | 45 days |
| 33520 | NoneMore | feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input | There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure. The other direction depends on #33458. --- [](https://gitpod.io/from-referrer/) | t-logic new-contributor | 55/0 | Mathlib/ModelTheory/ElementarySubstructures.lean | 1 | 3 | ['Citronhat', 'NoneMore', 'github-actions'] | awainverse | none | 1 month ago | 34 days ago | 59 days |
| 33928 | jsm28 | feat(Combinatorics/Tiling/TileSet): indexed families of tiles | Define the type `TileSet` for indexed families of tiles (in a discrete context), and some associated definitions (including `symmetryGroup`) and API lemmas. `TileSet` can be used for tilings of the whole space; for tilings of part of the space; for patches of tiles (extracted from a tiling by considering tiles meeting some set of points, or considered on their own without extracting from a tiling); for multiple tilings (covering the space more than once). In particular, the fact that people study multiple tilings provides a clear justification for using indexed families rather than sets of tiles, and basic definitions and API lemmas generally work for all these different uses of `TileSet` (sometimes with weak constraints such as tiles being finite, nonempty and only having finitely many tiles meeting any point of the space). Definitions for saying e.g. "this `TileSet` is a tiling of the whole space" are to be included in subsequent files in subsequent PRs. From AperiodicMonotilesLean. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 460/0 | Mathlib.lean,Mathlib/Combinatorics/Tiling/TileSet.lean | 2 | 22 | ['b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] | kmill | none | 1 month ago | 30 days ago | 49 days |
| 34171 | SnirBroshi | feat(Combinatorics/SimpleGraph/Hasse): Define the Eulerian path of a path graph | --- Such statements are left for a future PR, since they add imports so we probably want to split them into a separate file: ```lean theorem IsEulerian.ofPathGraph : ofPathGraph n |>.IsEulerian := by sorry theorem IsHamiltonian.ofPathGraph : ofPathGraph n |>.IsHamiltonian := by sorry theorem exists_path_iff_isContained_pathGraph : (∃ (u v : V) (w : G.Path u v), w.val.support.length = n) ↔ pathGraph n ⊑ G := by sorry ``` (the last statement also requires #33121, this PR gives the right-to-left implication and that PR gives the left-to-right) [](https://gitpod.io/from-referrer/) | t-combinatorics | 37/1 | Mathlib/Combinatorics/SimpleGraph/Hasse.lean | 1 | 9 | ['SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] | kmill | none | 1 month ago | 41 days ago | 42 days |
| 34375 | jvanwinden | feat(MeasureTheory/Function/AEEqOfLIntegral): introduce lemmas for rewriting a.e. inequalities | Introduce the following lemmas: - ae_le_const_iff_forall_gt_imp_ae_lt, - ae_const_le_iff_forall_lt_imp_ae_gt, - ae_le_const_iff_forall_gt_imp_ae_le, - ae_const_le_iff_forall_lt_imp_ae_ge, which can be used get an epsilon of room in a.e. inequalities, with the epsilon being outside the a.e. quantifier. The 'le/ge' variants require a dense ordering. --- [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 24/0 | Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean | 1 | 4 | ['github-actions', 'jvanwinden', 'urkud'] | kex-y | none | 1 month ago | 38 days ago | 38 days |
| 32570 | ksenono | feat(Combinatorics/SimpleGraph): bipartite subgraphs and vertex-disjoint graphs for Konig's theorem | --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 22/0 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 2 | 19 | ['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono', 'vlad902'] | kmill | 1 | 1 month ago | 28 days ago | 80 days |
| 32555 | ksenono | feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem | --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 127/0 | Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean | 2 | 24 | ['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono'] | awainverse | none | 1 month ago | 28 days ago | 80 days |
| 34636 | CoolRmal | feat(MeasureTheory/Analysis): the Fourier coefficients of a function can be computed by integrating over a box | The main result proved in this PR is `integral_preimage`, which is the analogue of the one-dimensional result: [UnitAddCircle.integral_preimage](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.html#UnitAddCircle.integral_preimage). This theorem allows us to compute an integral over UnitAddTorus as an integral over a box in the Euclidean space. As an application, I prove that the Fourier coefficients of a function can be computed by integrating over a box. The main motivation for this PR is the higher dimensional Poisson summation formula, which is needed in the [Sphere Packing project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean). --- [](https://gitpod.io/from-referrer/) | t-measure-probability | 80/0 | Mathlib/Analysis/Fourier/AddCircleMulti.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean | 2 | 1 | ['github-actions'] | RemyDegenne | none | 1 month ago | 31 days ago | 31 days |
| 34191 | IlPreteRosso | feat(Topology/Algebra/InfiniteSum): Discrete Convolution API 1st PR | Defines the very basics of the discrete convolution API. In analogy with [MeasureTheory.Convolution](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Convolution.html#MeasureTheory.convolution). Main definitions include - `mulFiber`, `convolution`, `ConvolutionExists`, `ConvolutionExists.add_distrib`, `ConvolutionExistsAt.smul_convolution`, `mulFiber_swapEquiv`, `convolution_comm` RM: - The main docstring is *as is* - Next step is triple sum intrastrcutre + `assoc` theorems for convolution (long) Continues the work from #33411 and #33410 (splitting into shorter PRs, carries over the modifications from previous reviews) | t-topology new-contributor | 277/0 | Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/DiscreteConvolution.lean | 2 | 18 | ['IlPreteRosso', 'github-actions', 'j-loreaux'] | PatrickMassot | none | 27 days ago | 27 days ago | 36 days |
| 34427 | CoolRmal | feat(MeasureTheory): Strong measurability is preserved under division in a group with zero | I proved that if `f,g` are two strongly measurable functions taking values in a group with zero, then `f/g` is still strongly measurable. As mentioned over here [#Is there code for X? > StronglyMeaurable.div₀](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/StronglyMeaurable.2Ediv.E2.82.80/with/569988425), I probably should also change the name of [MeasureTheory.StronglyMeasurable.div](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.html#MeasureTheory.StronglyMeasurable.div) into `StronglyMeasurable.div'` according to the docstring of [ContinuousDiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/Defs.html#ContinuousDiv). If I do this, then @to_additive will generate a theorem named `StronglyMeasurable.sub'`, which is a bit weird, so I am unsure whether I should change these names. --- [](https://gitpod.io/from-referrer/) | t-measure-probability | 37/8 | Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/Probability/Process/Adapted.lean | 3 | 3 | ['CoolRmal', 'EtienneC30', 'github-actions'] | kex-y | none | 26 days ago | 26 days ago | 35 days |
| 34709 | dennj | feat(Analysis/ODE): add discrete Grönwall inequality | ## Summary Add discrete Grönwall inequality to `Mathlib/Analysis/ODE/DiscreteGronwall.lean` Provides bounds for recurrence inequalities of the form `u(n+1) ≤ c(n) * u(n) + b(n)` ### Main results - `discrete_gronwall_prod_general`: Product form working over any linearly ordered commutative ring - `prod_one_add_Ico_mono`: Auxiliary lemma for product comparisons over subintervals - `discrete_gronwall`: Classical exponential bound `u(n) ≤ (u(n₀) + ∑ b(k)) * exp(∑ c(i))` (ℝ-specific) - `discrete_gronwall_Ico`: Uniform bound over a finite interval (ℝ-specific) ## Related work Complements the continuous Grönwall inequality in `Mathlib.Analysis.ODE.Gronwall` ## References * Grönwall, T. H. (1919). "Note on the derivatives with respect to a parameter of the solutions of a system of differential equations". *Annals of Mathematics*, 20(4), 292–296. | t-analysis new-contributor | 174/0 | Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean | 2 | 1 | ['github-actions'] | ADedecker | none | 26 days ago | 30 days ago | 30 days |
| 34729 | vihdzp | chore: `no_expose` various `Ordinal` definitions | These all have convoluted definitions that are better characterized by their API, or (in the case of `Ordinal.ToType`) are defined through choice and have no useful definitional equalities. --- [](https://gitpod.io/from-referrer/) | t-set-theory | 13/11 | Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean | 2 | 3 | ['github-actions', 'leanprover-radar', 'vihdzp'] | b-mehta | none | 26 days ago | 29 days ago | 29 days |
| 34182 | IlPreteRosso | feat(Data/Finsupp/Single, Data/Finsupp/Indicator): Add set_indicator_singleton, indicator_singleton; golfed single_eq_set_indicator, single_eq_indicator | [Mathlib.Data.Finsupp.Single](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Single.html#Finsupp.single) - Add `set_indicator_singleton`, golfed `single_eq_set_indicator` [Mathlib.Data.Finsupp.Indicator](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Indicator.html#Finsupp.indicator_apply) - Add `indicator_singleton`, golfed `single_eq_indicator` Continues the work from #34095 | large-import t-data new-contributor | 17/17 | Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean | 2 | 29 | ['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] | eric-wieser and urkud | none | 25 days ago | 41 days ago | 42 days |
| 34151 | gasparattila | feat(Topology/Sets): product of `Closeds` | --- [](https://gitpod.io/from-referrer/) | t-topology | 30/0 | Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sets/Closeds.lean,Mathlib/Topology/Sets/Compacts.lean | 3 | 1 | ['github-actions'] | PatrickMassot | none | 25 days ago | 25 days ago | 43 days |
| 34099 | mcdoll | feat(Analysis/Distribution): Fourier multiplier | We define Fourier multiplier with temperate growth functions acting on Schwartz functions as well as tempered distributions. We prove that the directional derivative and the Laplacian can be represented as Fourier multiplier. --- - [x] depends on: #34100 - [x] depends on: #34285 - [x] depends on: #34294 [](https://gitpod.io/from-referrer/) | t-analysis | 217/0 | Mathlib.lean,Mathlib/Analysis/Distribution/FourierMultiplier.lean | 2 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | ADedecker | none | 25 days ago | 28 days ago | 29 days |
| 34788 | justus-springer | feat(Algebra/Polynomial/AlgebraMap): add Polynomial.aeval_eq_aeval_map | This lemma is a special case of `Polynomial.map_aeval_eq_aeval_map` when `U = T` and `ψ` the identity. --- [](https://gitpod.io/from-referrer/) | t-algebra | 6/0 | Mathlib/Algebra/Polynomial/AlgebraMap.lean | 1 | 2 | ['github-actions'] | eric-wieser | none | 25 days ago | 28 days ago | 28 days |
| 34093 | YellPika | feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas | --- - [x] depends on: #33941 [](https://gitpod.io/from-referrer/) | t-order new-contributor | 297/0 | Mathlib.lean,Mathlib/Data/Option/Order.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean | 4 | 5 | ['YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | pechersky | none | 23 days ago | 27 days ago | 27 days |
| 34266 | gasparattila | feat(Topology/Sets): basis of `(Nonempty)Compacts` | --- [](https://gitpod.io/from-referrer/) | t-topology | 147/0 | Mathlib/Topology/Bases.lean,Mathlib/Topology/Sets/VietorisTopology.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | PatrickMassot | none | 23 days ago | 34 days ago | 40 days |
| 34026 | SnkXyx | feat(Algebra/MvPolynomial): add mainVariable | Add `mainVariable` of `MvPolynomial`, the largest variable index appearing in the polynomial. Main Theorems: * `mainVariable_eq_bot_iff_eq_C` * `mainVariable_sum_le` * `mainVariable_prod_le` * `degreeOf_eq_zero_of_mainVariable_lt` The PR is upstreamized from [github.com/WuProver/lean_characteristic_set](https://github.com/WuProver/lean_characteristic_set) --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 147/0 | Mathlib.lean,Mathlib/Algebra/MvPolynomial/MainVariable.lean | 2 | 1 | ['github-actions'] | mattrobball | none | 22 days ago | 47 days ago | 47 days |
| 34756 | Hagb | feat(Algebra/Order/Monoid/Unbundled/WithTop): `AddEquiv` between `WithBot` | It is like `Equiv.withBotCongr` but preserving also addition (`AddEquiv`). --- It is like [`Equiv.withBotCongr`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Equiv.withBotCongr#doc) but preserving also addition ([`AddEquiv`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=AddEquiv#doc)). [](https://gitpod.io/from-referrer/) | t-algebra | 39/0 | Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean | 1 | 3 | ['Hagb', 'github-actions', 'plp127'] | mattrobball | none | 22 days ago | 26 days ago | 28 days |
| 34808 | YaelDillies | feat(Combinatorics/SimpleGraph): isolated vertices | RFC for now. Do you think this is a reasonable definition to have? What should its API be? From ProofBench --- [](https://gitpod.io/from-referrer/) | RFC t-combinatorics | 3/0 | Mathlib/Combinatorics/SimpleGraph/Basic.lean | 1 | 1 | ['github-actions'] | kmill | none | 22 days ago | 28 days ago | 28 days |
| 26985 | agjftucker | feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfProdDomain | This PR continues the work from #16743. Original PR: https://github.com/leanprover-community/mathlib4/pull/16743 --- - [x] depends on: #28352 [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 269/157 | Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean | 4 | 27 | ['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] | hrmacbeth | 1 | 21 days ago | 21 days ago | 84 days |
| 32744 | NoneMore | feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas | This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas. The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable. There are also some tool lemmas derived by the preimage lemma. --- [](https://gitpod.io/from-referrer/) | new-contributor t-logic | 147/0 | Mathlib/ModelTheory/Definability.lean | 1 | 59 | ['NoneMore', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] | awainverse | 1 | 21 days ago | 53 days ago | 74 days |
| 33631 | xgenereux | feat(ValuationSubring): simp lemmas for idealOfLE/ofPrime in relation to top/bot | simp lemmas for `idealOfLE`/`ofPrime` in the trivial cases of `⊥`, `⊤` . This is my second try at this PR (after I bailed on #33618), sorry about this! --- - [ ] depends on: #33612 - [ ] depends on: #33609 [](https://gitpod.io/from-referrer/) | t-algebra | 19/0 | Mathlib/RingTheory/Valuation/ValuationSubring.lean | 1 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | alreadydone | none | 21 days ago | 24 days ago | 24 days |
| 34481 | DAE123456 | feat: Ore's Theorem | Ore Theorem : Let G be a graph of order n ≥ 3 that satisfies the Ore property. Then G has a Hamilton cycle. | t-combinatorics new-contributor | 3372/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Ore.lean | 2 | 25 | ['DAE123456', 'LLaurance', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'kim-em', 'tb65536', 'vlad902'] | b-mehta | none | 21 days ago | 29 days ago | 33 days |
| 34722 | GrigorenkoPV | feat(Data/Finset/RangeDistance): add | --- Rebase of https://github.com/leanprover-community/mathlib4/pull/26347 [](https://gitpod.io/from-referrer/) | new-contributor t-data | 34/0 | Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean | 3 | 4 | ['GrigorenkoPV', 'github-actions', 'joneugster', 'plp127'] | TwoFX | none | 21 days ago | 29 days ago | 29 days |
| 34809 | YaelDillies | feat: induced subgraphs of complete multipartite graphs are complete multipartite | From ProofBench --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 4/2 | Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean | 1 | 1 | ['github-actions'] | b-mehta | none | 21 days ago | 28 days ago | 28 days |
| 35122 | Marygold-Dusk | feat: define C^n submersions | This PR defines submersions between C^n manifolds. In the infinite-dimensional setting, submersions are defined via local normal forms rather than surjectivity of the mfderiv. A map f is a submersion at x if, in suitable charts around x and f x, it has the form (u, v) ↦ u after identifying the model space with a product.
We prove a few basic properties:
- being a submersion is a local property,
- products of submersions are submersions,
- the set of submersed points is open
Future PRs will prove that submersions are C^n and deduce equivalence with the standard definition in finite dimensions. From the path towards the regular value theorem.
This file was developed under the supervision of Michael Rothgang.
Co-authored-by: Michael Rothgang |
t-differential-geometry new-contributor | 596/0 | Mathlib.lean,Mathlib/Geometry/Manifold/Submersion.lean | 2 | 2 | ['github-actions'] | grunweg | none | 20 days ago | 20 days ago | 20 days |
| 34990 | bwangpj | feat: `ContinuousSMul (∀ i, N i) (∀ i, γ i)` | FLT --- [](https://gitpod.io/from-referrer/) | t-topology | 7/0 | Mathlib/Topology/Algebra/MulAction.lean | 1 | 4 | ['bwangpj', 'github-actions', 'themathqueen'] | PatrickMassot | none | 20 days ago | 23 days ago | 23 days |
| 34994 | bwangpj | feat: Countable.of_module_finite | --- [](https://gitpod.io/from-referrer/) | t-algebra large-import FLT | 7/0 | Mathlib/LinearAlgebra/Countable.lean | 1 | 3 | ['bwangpj', 'eric-wieser', 'github-actions'] | eric-wieser | none | 20 days ago | 20 days ago | 23 days |
| 34969 | kim-em | feat(RingTheory/HopfAlgebra): prove antipode is antihomomorphism | This PR proves that the antipode of a Hopf algebra is an antihomomorphism: `antipode (a * b) = antipode b * antipode a`. The proof uses the convolution algebra structure on `(A ⊗ A) →ₗ[R] A` and shows that `S ∘ μ` and `μ ∘ (S ⊗ S) ∘ comm` are both convolution inverses of `μ`, hence they must be equal by uniqueness of inverses. This resolves a TODO listed in the file header. 🤖 Prepared with Claude Code | t-ring-theory | 88/2 | Mathlib/RingTheory/HopfAlgebra/Basic.lean | 1 | 1 | ['github-actions'] | erdOne | none | 19 days ago | 23 days ago | 23 days |
| 32807 | WilliamCoram | feat: Define the Gauss norm for MvPowerSeries | We adjust the current definition for Gauss norm on power series to work for multivariate power series. If this seems acceptable I can refactor the single variable case. --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor | 124/0 | Mathlib.lean,Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean | 2 | 25 | ['WilliamCoram', 'erdOne', 'fbarroero', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | alreadydone | none | 18 days ago | 18 days ago | 31 days |
| 31560 | AntoineChambert-Loir | feat(Topology/Sion): the minimax theorem of von Neumann - Sion | Prove `Sion.exists_isSaddlePointOn` : Let X and Y be convex subsets of topological vector spaces E and F, X being moreover compact, and let f : X × Y → ℝ be a function such that - for all x, f(x, ⬝) is upper semicontinuous and quasiconcave - for all y, f(⬝, y) is lower semicontinuous and quasiconvex Then inf_x sup_y f(x,y) = sup_y inf_x f(x,y). The classical case of the theorem assumes that f is continuous, f(x, ⬝) is concave, f(⬝, y) is convex. As a particular case, one get the von Neumann theorem where f is bilinear and E, F are finite dimensional. We follow the proof of Komiya (1988). ## Remark on implementation * The essential part of the proof holds for a function `f : X → Y → β`, where `β` is a complete dense linear order. * We have written part of it for just a dense linear order, * On the other hand, if the theorem holds for such `β`, it must hold for any linear order, for the reason that any linear order embeds into a complete dense linear order. However, this result does not seem to be known to Mathlib. * When `β` is `ℝ`, one can use `Real.toEReal` and one gets a proof for `ℝ`. ## TODO Give particular important cases (eg, bilinear maps in finite dimension). Co-authored with @ADedecker --- - [x] depends on: #31548 - [x] depends on: #31547 - [x] depends on: #31558 [](https://gitpod.io/from-referrer/) | t-topology | 733/0 | Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Topology/Semicontinuity/Basic.lean,Mathlib/Topology/Sion.lean,docs/references.bib | 5 | 10 | ['AntoineChambert-Loir', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'thorimur'] | dwrensha and kmill | none | 18 days ago | 18 days ago | 79 days |
| 33944 | artie2000 | feat(Algebra/Ring): formally real rings | * Define formally real rings
* Prove basic inductive facts about them
Co-authored-by: Violeta Hernández Palacios |
t-algebra | 160/0 | Mathlib.lean,Mathlib/Algebra/Ring/IsFormallyReal.lean | 2 | 24 | ['artie2000', 'github-actions', 'vihdzp'] | mariainesdff | 1 | 18 days ago | 18 days ago | 29 days |
| 34069 | artie2000 | feat(Algebra/Order/Algebra): algebra is ordered iff inclusion map is monotone | * Prove that an extension of ordered semirings forms an ordered algebra iff the inclusion map is injective * Reorganise section variables for clarity The typeclass `PartialOrder α` in `IsOrderedModule.of_algebraMap_mono` can be generalised to `Preorder α`. This has no mathematical application and all the other lemmas are proved over a partially ordered type, so this generalisation was not made. --- [](https://gitpod.io/from-referrer/) | t-algebra t-order | 18/7 | Mathlib/Algebra/Order/Algebra.lean | 1 | 1 | ['github-actions'] | pechersky | none | 18 days ago | 18 days ago | 44 days |
| 34702 | pfaffelh | feat(Data/FinsetPowerset): The set `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k` | Show that `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k`. The proof builds on `powersetCard k s` (the subsets of `s : Finset _` with cardinality `k`), and an equivalence to the above set. --- [](https://gitpod.io/from-referrer/) | large-import t-data | 52/1 | Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Fintype/Pi.lean,Mathlib/Logic/Equiv/Fintype.lean | 3 | 25 | ['DavidLedvinka', 'b-mehta', 'eric-wieser', 'github-actions', 'joneugster', 'pfaffelh'] | pechersky | none | 18 days ago | 24 days ago | 29 days |
| 34820 | staroperator | feat(Order/Ideal): more results on order ideals | Some iffs, closure of finite supremum, and that every proper ideal is contained in a maximal ideal. --- [](https://gitpod.io/from-referrer/) | t-order large-import | 79/5 | Mathlib/Order/Ideal.lean | 1 | 5 | ['bryangingechen', 'github-actions', 'leanprover-radar', 'staroperator'] | pechersky | none | 18 days ago | 21 days ago | 27 days |
| 30900 | vihdzp | feat: run-length encoding | --- - [x] depends on: #30898 Moved from #17105. [](https://gitpod.io/from-referrer/) | t-data | 167/0 | Mathlib.lean,Mathlib/Data/List/RunLength.lean,Mathlib/Data/List/SplitBy.lean | 3 | 5 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127'] | TwoFX | none | 17 days ago | 21 days ago | 21 days |
| 34442 | JohnnyTeutonic | feat(Algebra/Lie/Classical): add basis for sl(n) relative to chosen diagonal index | Adds a standard basis for sl n R parametrized by a chosen diagonal index i₀: Off-diagonal matrix units E_ij for i ≠ j Diagonal differences E_ii - E_{i₀i₀} for i ≠ i₀ The entry at i₀ is determined by trace-zero. Implements the approach suggested by @ocfnash in [#33818 (comment)](https://github.com/leanprover-community/mathlib4/pull/33818#issuecomment-3784786673). See also [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/lie.20algebra/near/516170116). Closes the request from #33818. Note: Developed with the assistance of Claude - the LinearEquiv machinery was beyond my current Lean expertise. --- [](https://gitpod.io/from-referrer/) | t-algebra | 507/0 | Mathlib/Algebra/Lie/Classical.lean | 1 | 9 | ['JohnnyTeutonic', 'eric-wieser', 'github-actions'] | riccardobrasca | none | 16 days ago | 19 days ago | 20 days |
| 35152 | j-loreaux | feat: add missing API for `lp E p` | The API for `lp` is significantly underdeveloped. This PR attempts to rectify some of the shortcomings. In particular, we provide: + some missing tools for `Memℓp`, notably `memℓp_norm_iff` and `Memℓp.mono`. + some improved docstrings and more uniform notation for the non-dependent case; note that we also *remove* the notation `ℓ^∞(ι)` for `lp (fun _ : ι ↦ ℝ) ∞` on the basis that there are other choices besides `ℝ` which would make at least as much sense here, including `ℂ`. + bundled version of maps (evaluation, inclusion as a linear map, summation in `ℓ¹`) as well as cleaning-up a few other odds and ends. --- [](https://gitpod.io/from-referrer/) | t-analysis | 189/26 | Mathlib/Analysis/InnerProductSpace/l2Space.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Topology/MetricSpace/Kuratowski.lean | 3 | 1 | ['github-actions'] | sgouezel | none | 16 days ago | 19 days ago | 19 days |
| 35414 | joneugster | feat(Cache): Allow arguments of the form `Mathlib.Data.+` which correspond to a folder but not a file | This PR continues the work from #21838. Original PR: https://github.com/leanprover-community/mathlib4/pull/21838 | CI t-meta | 74/31 | Cache/IO.lean,Cache/Main.lean | 2 | 2 | ['github-actions', 'joneugster'] | eric-wieser | none | 15 days ago | unknown | unknown |
| 35413 | joneugster | fix(Util/CountHeartbeats): move elaboration in #count_heartbeats inside a namespace | This PR continues the work from #21182. Original PR: https://github.com/leanprover-community/mathlib4/pull/21182 | t-meta | 73/6 | Mathlib/Util/CountHeartbeats.lean,MathlibTest/CountHeartbeats.lean | 2 | 3 | ['github-actions', 'joneugster', 'mathlib-bors'] | adomani | none | 15 days ago | unknown | unknown |
| 34909 | SnirBroshi | feat(Data/Sym/Sym2): `fromRel` equivalence with `Sigma` over a `Quotient` | Add a non-dependent recursor on members of a `fromRel` set, and the following `Equiv`s: - The `fromRel` set of a symmetric relation `r` is equivalent to summing that set restricted to fibers of `f`. - For a relation homomorphism `r →r r'` where `r` is symmetric, the `fromRel` set of `r` is equivalent to summing that set restricted to equivalence classes of `r'` using a `Subtype`. --- I find this recursor pretty useful when dealing with `fromRel`, the idea came from a suggestion by @kmill [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Eq.2Erec.20with.20a.20constant.20does.20nothing.3A.20h.20.E2.96.B8.20c.20.3D.20c/near/565176948) for another `Sym2` conundrum. [](https://gitpod.io/from-referrer/) | t-data | 43/0 | Mathlib/Data/Sym/Sym2.lean | 1 | 7 | ['SnirBroshi', 'eric-wieser', 'github-actions'] | pechersky | none | 15 days ago | 25 days ago | 25 days |
| 33275 | YuvalFilmus | feat(Trigonometric/Chebyshev/Extremal): Chebyshev polynomials maximize iterated derivatives | We prove that Chebyshev polynomials maximized iterated derivatives at points x≥1. --- - [x] depends on: #33259 - [x] depends on: #33274 [](https://gitpod.io/from-referrer/) | t-analysis | 74/1 | Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Extremal.lean | 1 | 6 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | dupuisf | none | 15 days ago | 39 days ago | 39 days |
| 33850 | YuvalFilmus | feat(Chebyshev/ChebyshevGauss): Chebyshev–Gauss formula | We prove the Chebyshev–Gauss quadrature formula, which reduces an integral with respect to the Chebyshev weight function to a finite sum. --- - [ ] depends on: #33676 [](https://gitpod.io/from-referrer/) | t-analysis | 167/0 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/ChebyshevGauss.lean | 2 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | ADedecker | none | 15 days ago | 34 days ago | 34 days |
| 34601 | themathqueen | feat(Combinatorics/SimpleGraph/AdjMatrix): adjacency matrix API | --- [](https://gitpod.io/from-referrer/) | t-combinatorics large-import | 117/19 | Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean | 1 | 21 | ['b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] | kmill | 1 | 15 days ago | 15 days ago | 32 days |
| 33736 | fbarroero | feat(RingTheory/Polynomial/GaussNorm): The `gaussNorm` is an absolute value if `v` is a nonarchimedean absolute value | We prove ``` Polynomial.gaussNorm_isAbsoluteValue {c : ℝ} {R : Type*} [Ring R] {v : AbsoluteValue R ℝ} (hna : IsNonarchimedean v) (hc : 0 < c) : IsAbsoluteValue (gaussNorm v c) ``` --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 189/7 | Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean,Mathlib/RingTheory/Polynomial/GaussNorm.lean | 3 | 11 | ['copilot-pull-request-reviewer', 'erdOne', 'fbarroero', 'github-actions'] | ADedecker | none | 14 days ago | 14 days ago | 50 days |
| 31425 | robertmaxton42 | feat(Topology): implement delaborators for non-standard topology notation | Add delaborators for unary and binary notation related to non-standard topologies in the TopologicalSpace namespace. --- [](https://gitpod.io/from-referrer/) | t-topology | 250/4 | Mathlib.lean,Mathlib/Topology/Defs/Basic.lean,Mathlib/Util/DelabNonCanonical.lean,MathlibTest/Delab/TopologicalSpace.lean | 4 | 45 | ['eric-wieser', 'github-actions', 'jcommelin', 'kckennylau', 'robertmaxton42'] | eric-wieser | none | 14 days ago | 45 days ago | 99 days |
| 34851 | dennj | feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations | This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization: - `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i` - `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x` - `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i` These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). | t-data new-contributor | 22/0 | Mathlib/Data/Matrix/Mul.lean | 1 | 5 | ['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] | pechersky | none | 14 days ago | 18 days ago | 27 days |
| 28546 | Sfgangloff | feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… | This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`. Summary of additions: - **Full shift and shift action** - `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type). - Right shift `shift g x` with convention `(shift g x) h = x (h * g)`. - **Cylinders and topology** - `cylinder U x : Set (G → A)` for finite `U : Finset G`. - Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed. - Equality with dependent products: `cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API. - **Patterns, occurrences, and subshifts** - `Pattern A G` with finite `support : Finset G` and `data : support → A`. - `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law. - `forbids F` and `Subshift A G` (closed, shift-invariant subsets). - `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness. - **Language on finite shapes and counting** - `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`. - **Entropy along a shape sequence** - `limsupAtTop` (as an `sInf` of eventual upper bounds). - `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)` for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`). - **Specializations** - `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`. - `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`. Mathematical remarks: - The API is **shape-parametric**: entropy is defined along user-provided finite shapes. - On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss). This PR does not assume amenability; the family of shapes is an explicit input. Motivation: Provide a clean, reusable base for symbolic dynamics on groups in mathlib. Future work: - Add a Følner predicate and prove shape-independence / limit existence on amenable groups. - Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors). - Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch). | t-dynamics new-contributor | 746/0 | Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean | 3 | 180 | ['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | none | 14 days ago | 14 days ago | 109 days |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 28803 | 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 | 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 | 6 months ago | 190 days ago | 4 hours |
| 34155 | zcyemi | feat(Geometry/Euclidean/Triangle): add altitudeFoot lies strictly between endpoints for an obtuse angle | --- add `sbtw_orthogonalProjection_of_angle_ge_pi_div_two` | t-euclidean-geometry awaiting-author | 93/0 | Mathlib/Geometry/Euclidean/Triangle.lean | 1 | 4 | ['github-actions', 'jsm28'] | nobody | 1 month ago | 37 days ago | 5 days |
| 34788 | justus-springer | feat(Algebra/Polynomial/AlgebraMap): add Polynomial.aeval_eq_aeval_map | This lemma is a special case of `Polynomial.map_aeval_eq_aeval_map` when `U = T` and `ψ` the identity. --- [](https://gitpod.io/from-referrer/) | t-algebra | 6/0 | Mathlib/Algebra/Polynomial/AlgebraMap.lean | 1 | 2 | ['github-actions'] | eric-wieser | 25 days ago | 28 days ago | 28 days |
| 29030 | b-mehta | feat(Combinatorics): prove the Rado selection lemma | Prove the Rado selection lemma, a generic result useful to prove a variety of compactness results in combinatorics. This generalises Konig's infinity lemma, and the de Bruijn-Erdos theorem, and allows the former to be conveniently stated in the language of sets rather than categories. We leave these generalisations of results in mathlib to later PRs. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 132/0 | Mathlib.lean,Mathlib/Combinatorics/Compactness.lean | 2 | 1 | ['github-actions'] | nobody | 22 days ago | unknown | unknown |
| 34973 | chrisflav | chore: replace `Punit` by `PUnit` | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 34/16 | Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/CategoryTheory/Action/Basic.lean,Mathlib/CategoryTheory/Extensive.lean,Mathlib/CategoryTheory/Limits/Sifted.lean,Mathlib/CategoryTheory/Limits/Types/Coproducts.lean,Mathlib/CategoryTheory/Limits/Types/Products.lean,Mathlib/Order/InitialSeg.lean,Mathlib/RingTheory/FreeCommRing.lean,Mathlib/Topology/UniformSpace/Equiv.lean | 9 | 4 | ['chrisflav', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier'] | joelriou | 16 days ago | 16 days ago | 7 days |
| 33664 | ooovi | feat(Geometry/Convex/Cone/Pointed): face lattice of pointed cones | - Create a subdirectory in `Cone` for pointed cones and move existing files there. - Define `PointedCone.IsFaceOf`, for a pointed cone being a face of another pointed cone. - Prove some basic properties, that faces are extreme sets of their cone, and how they behave under intersection, map and product operations. - Define `Face` by bundling the `IsFaceOf` structure, and show the complete lattice structure on it. - Prove that taking the product of two faces is an order isomorphism. Co-authored-by: Martin Winter --- - [ ] depends on: #33780 for the definition of the lineal space [](https://gitpod.io/from-referrer/) | file-removed awaiting-author t-convex-geometry merge-conflict blocked-by-other-PR | 541/10 | Mathlib.lean,Mathlib/Analysis/Convex/Cone/Basic.lean,Mathlib/Analysis/Convex/Cone/Closure.lean,Mathlib/Analysis/Convex/Cone/Dual.lean,Mathlib/Geometry/Convex/Cone/Pointed/Basic.lean,Mathlib/Geometry/Convex/Cone/Pointed/Dual.lean,Mathlib/Geometry/Convex/Cone/Pointed/Face/Basic.lean,Mathlib/Geometry/Convex/Cone/Pointed/Face/Lattice.lean,Mathlib/Geometry/Convex/Cone/Pointed/TensorProduct.lean | 9 | 87 | ['YaelDillies', 'eric-wieser', 'github-actions', 'martinwintermath', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ooovi'] | nobody | 14 days ago | 56 days ago | 1 hour |
| 34245 | staroperator | feat(Data/Set): add `Set.Uncountable` | There are `Set` specialized shortcuts `Set.Finite`, `Set.Infinite` and `Set.Countable`, but lacking `Set.Uncountable`. I find this useful in #34246. --- [](https://gitpod.io/from-referrer/) | t-data awaiting-zulip | 82/4 | Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Data/Set/Countable.lean,Mathlib/SetTheory/Cardinal/Basic.lean | 3 | 16 | ['github-actions', 'joneugster', 'staroperator', 'vihdzp'] | joneugster | 13 days ago | 28 days ago | 12 days |
| 34728 | j-loreaux | feat: continuous linear equivalence between continuous `ℝ`- and `𝕜`-linear functionals, when equipped with the weak⋆-topology | This realizes the map `StrongDual.extendRCLikeₗ`, after pre- and post-composing so that it is an equivalence between the weak duals, as a *continuous* linear equivalence. --- - [ ] depends on: #34543 The placement in `Analysis/Normed/Module/WeakDual` seems suboptimal because this has nothing to do with the norm. This is because `WeakDual.toStrongDual` is already in this file, which should probably be moved to `Topology/Algebra/Module/WeakDual`. However, even if that moves, the declarations added in this PR cannot easily go with it because they involve `RCLike`. Potentially, they could move to `Analysis/RCLike/Extend` if that file gained the `Topology/Algebra/Module/WeakDual` import. --- [](https://gitpod.io/from-referrer/) | t-analysis merge-conflict | 184/114 | Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/Normed/Module/RCLike/Extend.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/RCLike/Extend.lean | 5 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 days ago | 29 days ago | 8 minutes |
| 35041 | b-mehta | feat(Combinatorics): prove the Rado selection lemma | This PR should supercede #29030 --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 132/0 | Mathlib.lean,Mathlib/Combinatorics/Compactness.lean | 2 | 3 | ['b-mehta', 'github-actions'] | kmill | 5 days ago | 22 days ago | 22 days |
| 35802 | xroblot | feat(RamificationInertia): splitting in the decomposition field | --- - [ ] depends on: #35798 - [ ] depends on: #35405 - [x] depends on: #35371 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR merge-conflict t-number-theory | 533/0 | Mathlib.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean | 10 | 3 | ['github-actions', 'joneugster', 'mathlib-dependent-issues'] | nobody | 4 days ago | unknown | unknown |
| 34875 | banrovegrie | feat(LinearAlgebra/Matrix): add Sherman-Morrison formula | Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap. - Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}` - Add `Matrix.inv_sub_vecMulVec`: subtraction variant - Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses ## Test plan - [x] `lake build` passes - [x] Lines within 100 char limit - [x] All declarations have docstrings | t-algebra new-contributor | 135/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean | 2 | 11 | ['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] | kim-em | 2 days ago | 24 days ago | 26 days |
| 32987 | kim-em | feat: pipeline downloads and decompression in `cache get` | This PR modifies `lake exe cache get` to decompress files as they download, rather than waiting for all downloads to complete first. Previously the cache system had two sequential phases: download all files using `curl --parallel`, then decompress all files using a single `leantar` call. Now a background task spawns sequential batched `leantar` calls to decompress files as downloads complete, pipelining network I/O and disk I/O. 🤖 Prepared with Claude Code - [x] depends on: #34667 | t-meta maintainer-merge | 190/35 | Cache/IO.lean,Cache/Requests.lean | 2 | 65 | ['Vierkantor', 'eric-wieser', 'github-actions', 'joneugster', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | joneugster | 1 day ago | 2 days ago | 60 days |
| 35947 | euprunin | chore: replace `aesop` with `grind` where the latter is significantly faster | This experiment investigates the impact of replacing particularly heavy `aesop` calls with `grind`, specifically how this change affects the instruction count as measured by the benchmarking infrastructure. Trace profiling results (differences <30 ms considered measurement noise): * `Submonoid.mem_closure_image_one_lt_iff`: 125 ms before, 61 ms after 🎉 * `SimpleGraph.Connected.connected_delete_edge_of_not_isBridge`: 230 ms before, 51 ms after 🎉 * `SimpleGraph.Subgraph.IsMatching.exists_of_disjoint_sets_of_equiv`: 899 ms before, 666 ms after 🎉 * `SimpleGraph.IsCycles.existsUnique_ne_adj`: 855 ms before, 599 ms after 🎉 * `SimpleGraph.Walk.IsPath.isCycles_spanningCoe_toSubgraph_sup_edge`: 962 ms before, 619 ms after 🎉 * `SimpleGraph.IsAlternating.sup_edge`: 2854 ms before, 1615 ms after 🎉 * `SimpleGraph.Subgraph.IsPerfectMatching.symmDiff_of_isAlternating`: 3103 ms before, 1734 ms after 🎉 * `SimpleGraph.edgeSet_replaceVertex_of_not_adj`: 1525 ms before, 933 ms after 🎉 * `SimpleGraph.edgeSet_replaceVertex_of_adj`: 2194 ms before, 1605 ms after 🎉 * `SimpleGraph.tutte_exists_isPerfectMatching_of_near_matchings`: 3161 ms before, 1652 ms after 🎉 * `RootPairing.Base.sub_notMem_range_root`: 1025 ms before, 978 ms after 🎉 * `RootPairing.EmbeddedG2.mem_allRoots`: 3832 ms before, 3255 ms after 🎉 * `RootSystem.GeckConstruction.Lemmas.0.RootPairing.chainBotCoeff_mul_chainTopCoeff.aux_2`: 3572 ms before, 2631 ms after 🎉 * `isCompact_generateFrom`: 1987 ms before, 763 ms after 🎉 * `IsCompactOpenCovered.of_isCompact_of_forall_exists_isCompactOpenCovered`: 2279 ms before, 2009 ms after 🎉 * `UniformContinuousOn.comp_tendstoUniformly_eventually`: 416 ms before, 151 ms after 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 27/27 | Mathlib/Algebra/Group/Irreducible/Indecomposable.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/LinearAlgebra/RootSystem/Base.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Sets/CompactOpenCovered.lean,Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean | 11 | 4 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | nobody | 1 day ago | 2 days ago | 2 days | |
| 35890 | grunweg | chore: delete deprecated module Topology/PartialHomeomorph | This module was deprecated on October 3, and is blocking refactoring of the manifold library. --- This PR should only be merged on March 3rd: please delegate instead of merging! [](https://gitpod.io/from-referrer/) | t-topology easy | 0/11 | Mathlib.lean,Mathlib/Topology/PartialHomeomorph.lean | 2 | 5 | ['fpvandoorn', 'github-actions', 'mathlib-bors'] | nobody | 1 day ago | 1 day ago | 3 days |
| 25737 | robin-carlier | feat(AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms): Normal forms for `P_δ`s | We prove that admissible lists indeed provide a normal form for morphisms of satisfying `P_δ`. To this end, we introduce `standardδ`, a construction that takes a list and turn it into a composition of `δ i`s in `SimplexCategoryGenRel`. We then prove that, thanks to the first simplicial identity, composition on the left corresponds to simplicial insertion in the list. This gives existence of a normal form for every morphism satisfying `P_δ`. For unicity, we introduce an auxiliary function `simplicialEvalδ : (List ℕ) → ℕ → ℕ` and show that for admissible lists, it lifts to `ℕ` the `orderHom` attached to `toSimplexCategory.map standardδ`, and that we can recover elements of the list only by looking at values of this function. Part of a series of PR formalising that `SimplexCategoryGenRel` is equivalent to `SimplexCategory`. --- - [x] depends on: #25736 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #21746.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/21746* | t-algebraic-topology delegated t-category-theory | 181/2 | Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean | 1 | 6 | ['github-actions', 'joelriou', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | 134 days ago | 6 hours |
| 35576 | Tehlikeli107 | ⚡ [performance] Pre-compile regexes in lake-build-wrapper.py | - Pre-compile `file_info_re` and `progress_re` in `BuildOutputProcessor.__init__` to avoid repeated compilation overhead. - Replace `re.sub(r'\.', '/', target)` with `target.replace('.', '/')` for better performance when converting module names to file paths. These changes result in a measured ~40% performance improvement in the core processing logic of the wrapper script. --- [](https://gitpod.io/from-referrer/) | file-removed awaiting-author CI new-contributor merge-conflict | 8/707 | scripts/bench/README.md,scripts/bench/build/README.md,scripts/bench/build/fake-root/bin/lean,scripts/bench/build/fake-root/bin/lean.py,scripts/bench/build/lakeprof_report_template.html,scripts/bench/build/lakeprof_report_upload.py,scripts/bench/build/run,scripts/bench/combine.py,scripts/bench/lint/README.md,scripts/bench/lint/run,scripts/bench/measure.py,scripts/bench/open-mathlib/README.md,scripts/bench/open-mathlib/run,scripts/bench/repeatedly.py,scripts/bench/run,scripts/bench/size/README.md,scripts/bench/size/run,scripts/bench/size/run.py,scripts/lake-build-wrapper.py | 19 | 7 | ['bryangingechen', 'felixpernegger', 'github-actions', 'grunweg', 'mathlib-merge-conflicts'] | nobody | 20 hours ago | 11 days ago | 2 hours |
| 35847 | euprunin | chore: golf proofs | This PR removes unused `have`/`haveI`/`let`/`letI` calls. The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `GenContFract.compExactValue_correctness_of_stream_eq_some`: unchanged 🎉 * `Finset.disjoint_range_addLeftEmbedding`: unchanged 🎉 * `CategoryTheory.ComposableArrows.IsComplex.epi_cokerToKer'`: unchanged 🎉 * `CategoryTheory.ComposableArrows.IsComplex.mono_cokerToKer'`: unchanged 🎉 * `ComplexShape.QFactorsThroughHomotopy_of_exists_prev`: unchanged 🎉 * `AlgebraicGeometry.IsAffineOpen.primeIdealOf_genericPoint`: unchanged 🎉 * `AlgebraicGeometry.functionField_isFractionRing_of_isAffineOpen`: unchanged 🎉 * `AlgebraicGeometry.smooth_of_grpObj_of_isAlgClosed`: 266 ms before, 232 ms after 🎉 * `AlgebraicGeometry.Scheme.ker_morphismRestrict_ideal`: 570 ms before, 538 ms after 🎉 * `AlgebraicGeometry.Scheme.IdealSheafData.isLocalization_away`: unchanged 🎉 * `AlgebraicGeometry.affineAnd_isLocal`: unchanged 🎉 * `AlgebraicGeometry.IsZariskiLocalAtTarget.of_iSup_eq_top`: unchanged 🎉 * `AlgebraicGeometry.HasAffineProperty.iff_of_isAffine`: unchanged 🎉 * `AlgebraicGeometry.isDominant_of_of_appTop_injective`: unchanged 🎉 * `AlgebraicGeometry.IsPreimmersion.SpecMap_iff`: unchanged 🎉 * `AlgebraicGeometry.quasiCompact_affineProperty_iff_quasiSeparatedSpace`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | ready-to-merge | 0/23 | Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/Homology/ExactSequenceFour.lean,Mathlib/Algebra/Homology/Localization.lean,Mathlib/AlgebraicGeometry/FunctionField.lean,Mathlib/AlgebraicGeometry/Group/Smooth.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean,Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean | 12 | 10 | ['JovanGerb', 'euprunin', 'github-actions', 'leanprover-radar', 'mathlib-bors', 'riccardobrasca', 'vihdzp'] | JovanGerb | 14 hours ago | 4 days ago | 4 days |
| 33842 | joelriou | feat(Algebra/Homology): spectral sequences | This PR introduces spectral sequences. It contains two mostly independent developments: 1. The construction of the spectral object attached to objects in a triangulated category `C` equipped with a t-structure; 2. The definition of a category of spectral sequences and the construction of the spectral sequence attached to a spectral object indexed by the extended integers (the integers with +/- infinity) in an abelian category. After these additions, we have two ways to construct a spectral object in triangulated categories (the spectral object attached to a filtered complex, and the spectral object attached to a t-structure 1.). After applying a homological functor to these spectral objects, we obtain a spectral object in an abelian category, and the construction 2. allows to define spectral sequences. In this PR, we do not study the stabilization and convergence of spectral sequences, which require more developments. The mathematical material is discussed in https://hal.science/hal-04546712v5 (§5.4.1 and §5.4.4). --- Dependency graph: https://jriou.org/tmp/spectral-sequences.pdf 1. The construction of the spectral object attached to objects in a triangulated category `C` equipped with a t-structure; - [ ] depends on: #35370 - [ ] depends on: #35369 - [ ] depends on: #35368 - [ ] depends on: #35367 - [ ] depends on: #35364 - [ ] depends on: #35363 - [ ] depends on: #35362 2. The definition of a category of spectral sequences and the construction of the spectral sequence attached to a spectral object indexed by the extended integers (the integers with +/- infinity) in an abelian category. - [ ] depends on: #36032 - [ ] depends on: #36030 - [ ] depends on: #36029 - [ ] depends on: #35378 - [x] depends on: #35361 - [x] depends on: #35359 - [x] depends on: #35356 - [ ] depends on: #35375 - [ ] depends on: #35374 - [x] depends on: #35355 - [ ] depends on: #35372 - [x] depends on: #35357 3. Prerequisites: - [x] depends on: #34372 - [x] depends on: #34368 - [x] depends on: #34366 - [x] depends on: #34359 - [x] depends on: #33875 - [x] depends on: #33876 - [x] depends on: #34373 - [x] depends on: #34358 - [x] depends on: #33874 - [x] depends on: #33877 - [x] depends on: #33879 - [x] depends on: #33880 - [x] depends on: #33881 - [x] depends on: #33437 - [x] depends on: #33883 - [x] depends on: #33886 - [x] depends on: #33887 - [x] depends on: #33888 - [x] depends on: #33890 - [x] depends on: #35373 [](https://gitpod.io/from-referrer/) | WIP t-category-theory large-import blocked-by-other-PR merge-conflict | 5349/52 | Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Basic.lean,Mathlib/Algebra/Homology/SpectralObject/Cycles.lean,Mathlib/Algebra/Homology/SpectralObject/Differentials.lean,Mathlib/Algebra/Homology/SpectralObject/EpiMono.lean,Mathlib/Algebra/Homology/SpectralObject/FirstPage.lean,Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean,Mathlib/Algebra/Homology/SpectralObject/Homology.lean,Mathlib/Algebra/Homology/SpectralObject/Page.lean,Mathlib/Algebra/Homology/SpectralObject/SpectralSequence.lean,Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean,Mathlib/CategoryTheory/Triangulated/TStructure/ETrunc.lean,Mathlib/CategoryTheory/Triangulated/TStructure/Induced.lean,Mathlib/CategoryTheory/Triangulated/TStructure/SpectralObject.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLEGT.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean | 16 | 9 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 11 hours ago | unknown | unknown |
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 13791 | digama0 | refactor: Primrec and Partrec | General cleanup of the `Primrec` and `Partrec` files, to better adjust to lean 4 things. The main user-visible change is that `Primrec₂` is no longer a `def` but an `abbrev`, because it was causing inference issues in lean 4. I also removed all the nonterminal `simp`s in `PartrecCode.lean`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability tech debt | 585/778 | Mathlib/Computability/Ackermann.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/Primrec.lean | 5 | 2 | ['github-actions', 'grunweg'] | nobody | 1 year ago | unknown | unknown |
| 15448 | urkud | chore(*): deprecate `Option.elim'` | Use `Option.elim` instead. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author tech debt | 54/50 | Mathlib/Algebra/BigOperators/Option.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/Calculus/LagrangeMultipliers.lean,Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/TMToPartrec.lean,Mathlib/Data/Option/Defs.lean,Mathlib/LinearAlgebra/Basis.lean,Mathlib/Logic/Embedding/Set.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/NumberTheory/Dioph.lean,Mathlib/Topology/Compactness/Paracompact.lean,Mathlib/Topology/LocallyFinite.lean | 17 | 12 | ['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'grunweg', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 33138 | gasparattila | chore(MeasureTheory/Measure/Stieltjes): remove `backward.privateInPublic` | In #32482, some definitions in this file were rewritten using private declarations. However, this made `StieltjesFunction.length` unusable, since its API uses private declarations even in statements. This PR fixes this by problem by specializing `length_eq` to `NoMinOrder` and adding a new lemma for the `OrderBot` case. The other lemmas involving the private declarations are made private, except for `length_subadditive_Icc_Ioo`, which is reverted to the previous statement. --- [](https://gitpod.io/from-referrer/) | t-measure-probability tech debt awaiting-author | 35/30 | Mathlib/MeasureTheory/Measure/Stieltjes.lean | 1 | 6 | ['github-actions', 'grunweg', 'sgouezel', 'vihdzp'] | sgouezel | 2 months ago | 68 days ago | 5 days |
| 12879 | grunweg | feat: port ge_or_gt linter from mathlib3 | Code works and is essentially green: next step is to split up into separate PRs. Feedback welcome on whether: - all the test changes are good, or I should simply allow it in more cases - if calc blocks need to be explicitly exempt --- - [ ] depends on: #12933 - [ ] depends on: #12934 - [ ] depends on: #12931 [](https://gitpod.io/from-referrer/) | merge-conflict t-linter tech debt blocked-by-other-PR | 736/319 | Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1962Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo2001Q2.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2011Q5.lean,Archive/Imo/Imo2019Q4.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Archive/Wiedijk100Theorems/BirthdayProblem.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Star/CHSH.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Int/Lemmas.lean,Mathlib/Data/Nat/Dist.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Parity.lean,Mathlib/Data/Nat/Upto.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/UInt.lean,Mathlib/GroupTheory/Coxeter/Length.lean,Mathlib/MeasureTheory/Constructions/Polish.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Covering/Vitali.lean,Mathlib/MeasureTheory/Covering/VitaliFamily.lean,Mathlib/MeasureTheory/Integral/Layercake.lean,Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/NumberTheory/Padics/PadicNorm.lean,Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Rayleigh.lean,Mathlib/Order/Filter/AtTopBot.lean,Mathlib/Probability/Process/Stopping.lean,Mathlib/RingTheory/Adjoin/Basic.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CancelDenoms/Core.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/IntervalCases.lean,Mathlib/Tactic/Linarith/Datatypes.lean,Mathlib/Tactic/Linarith/Lemmas.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linter/GeOrGt.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/NormNum/GCD.lean,Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Topology/Category/Profinite/Nobeling.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean,Mathlib/Topology/MetricSpace/CauSeqFilter.lean,Mathlib/Topology/MetricSpace/Cauchy.lean,Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sequences.lean,scripts/lint-style.py,test/Explode.lean,test/GCongr/inequalities.lean,test/GeOrGt.lean,test/LibrarySearch/IsCompact.lean,test/LibrarySearch/basic.lean,test/Recall.lean,test/Rify.lean,test/Use.lean,test/cancel_denoms.lean,test/congr.lean,test/delabLinearIndependent.lean,test/delaborators.lean,test/interval_cases.lean,test/linarith.lean | 109 | 4 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| 24100 | eric-wieser | feat: restore some explicit binders from Lean 3 | Part of #24099 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author tech debt t-topology t-algebra | 39/42 | Mathlib/Data/FinEnum.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean,Mathlib/Topology/MetricSpace/IsometricSMul.lean,Mathlib/Topology/Metrizable/CompletelyMetrizable.lean,Mathlib/Topology/Metrizable/Uniformity.lean,Mathlib/Topology/Order.lean,Mathlib/Topology/Order/LowerUpperTopology.lean,Mathlib/Topology/UniformSpace/UniformEmbedding.lean | 10 | 3 | ['github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 1 month ago | unknown | unknown |
| 35552 | vihdzp | chore(SetTheory/Ordinal/Basic): remove `backward.privateInPublic` | --- [](https://gitpod.io/from-referrer/) | t-set-theory tech debt | 7/27 | Mathlib/SetTheory/Ordinal/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 4 days ago | 4 days ago | 12 days |
| 35878 | Parcly-Taxel | chore: use `induction` for `Quotient.induction` invocations | Found through the regex `(refine|apply|exact).*Quotient.induction`. Includes the multiple-argument variants. | tech debt | 93/102 | Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Basic.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/Combinatorics/Tiling/Tile.lean,Mathlib/Computability/Tape.lean,Mathlib/Data/Multiset/Functor.lean,Mathlib/Data/Multiset/Sym.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/LinearAlgebra/Alternating/DomCoprod.lean,Mathlib/LinearAlgebra/Quotient/Pi.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/Order/Category/PartOrd.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/Topology/Algebra/InfiniteSum/Module.lean | 28 | 1 | ['github-actions'] | nobody | 4 days ago | 3 days ago | 3 days |
| 35884 | Parcly-Taxel | chore: fix induction and recursor names | * `Finset.induction_on_{min,max}`, `Finset.induction_on_{min,max}_value` * `FreeAbelianGroup.induction_on`, `FreeAbelianGroup.induction_on'` Applications of these induction principles are also fixed. | tech debt | 109/112 | Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Data/Finset/Max.lean,Mathlib/GroupTheory/FreeAbelianGroup.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean | 5 | 6 | ['Parcly-Taxel', 'chenson2018', 'github-actions'] | nobody | 2 days ago | 2 days ago | 3 days |
| 35851 | vihdzp | chore(SetTheory/Ordinal/Arithmetic): remove `backward.privateInPublic` | --- [](https://gitpod.io/from-referrer/) | t-set-theory tech debt | 12/17 | Mathlib/SetTheory/Ordinal/Arithmetic.lean | 1 | 5 | ['github-actions', 'plp127', 'vihdzp'] | nobody | 1 day ago | 1 day ago | 4 days |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17623 | 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. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-zulip t-order | 146/44 | Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean | 2 | 11 | ['YaelDillies', 'astrainfinita', 'github-actions', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 8370 | 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) --- [](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 | 10 months ago | unknown | unknown |
| 15654 | 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 [](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 | 9 months ago | unknown | unknown |
| 17458 | 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. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-zulip | 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 | 7 months ago | unknown | unknown |
| 25218 | kckennylau | feat(AlgebraicGeometry): Tate normal form of elliptic curves | --- [](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 | 7 months ago | unknown | unknown |
| 28803 | 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 | 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 | 6 months ago | 190 days ago | 4 hours |
| 28925 | 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! [](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 | 4 months ago | unknown | unknown |
| 30150 | 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` [](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 | 3 months ago | 150 days ago | 8 hours |
| 15651 | 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 --- [](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 | 3 months ago | unknown | unknown |
| 15649 | 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] [](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 | 3 months ago | unknown | unknown |
| 20648 | 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 [](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 | 3 months ago | unknown | unknown |
| 11800 | 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. --- [](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 | 3 months ago | unknown | unknown |
| 30668 | 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 | 2 months ago | unknown | unknown |
| 33368 | urkud | feat: define `Complex.UnitDisc.shift` | Also review the existing API UPD: I'm going to define a `PSL(2, Real)` action instead. --- [](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 | 1 month ago | 56 days ago | 5 days |
| 32828 | Hagb | feat(Algebra/Order/Group/Defs): add `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid'` | It is similar to `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid`, while with different hypotheses. The conclusion `IsOrderedCancelMonoid α` on `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid` still holds when the hypothesis `CommGroup α` is weakened to `CancelCommMonoid α` while `PartialOrder α` is strengthened to `LinearOrder α`. --- [`IsOrderedAddMonoid.toIsOrderedCancelAddMonoid`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsOrderedAddMonoid.toIsOrderedCancelAddMonoid#doc) and `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid'`: https://github.com/leanprover-community/mathlib4/blob/97f78b1a4311fed1844b94f1c069219a48a098e1/Mathlib/Algebra/Order/Group/Defs.lean#L52-L62 [](https://gitpod.io/from-referrer/) | awaiting-zulip t-algebra | 4/0 | Mathlib/Algebra/Order/Group/Defs.lean | 1 | 8 | ['Garmelon', 'Vierkantor', 'artie2000', 'github-actions', 'leanprover-radar'] | eric-wieser | 1 month ago | 40 days ago | 40 days |
| 34396 | dupuisf | feat: notation for `Ring.inverse` | This PR adds the global notation `x⁻¹ʳ` for `Ring.inverse x`, and a few extra API lemmas about it. --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-zulip | 58/19 | Mathlib/Algebra/GroupWithZero/Units/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 33031 | chiyunhsu | feat(Combinatorics/Enumerative/Partition): add combinatorial proof of Euler's partition theorem | The new file EulerComb.lean contains the combinatorial proof of Euler's partition theorem. The analytic proof of the theorem and its generalization of Glaisher's Theorem has already been formalized in [Glaisher.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Combinatorics/Enumerative/Partition/Glaisher.lean). The generalization of the combinatorial proof from this file to Glaisher's Theorem is within reach. --- Zulip discussion: [#mathlib4 > Glaisher’s Bijection on integer partitions](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Glaisher.E2.80.99s.20Bijection.20on.20integer.20partitions/with/570808111) [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor awaiting-zulip | 531/0 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Partition/EulerComb.lean | 2 | 5 | ['chiyunhsu', 'github-actions', 'tb65536', 'vihdzp'] | b-mehta | 1 month ago | 33 days ago | 42 days |
| 34656 | vihdzp | refactor: review `exists_irreducible_of_degree_pos` theorems | This PR does the following: - Rename `exists_irreducible_of_degree_pos` to `exists_irreducible_dvd_of_degree_pos`. The previous name reads as if this were proving that an irreducible polynomial of any positive degree exists. - Deprecate variants which differ only in the spelling of `0 < f.degree`. We already have quite a lot of API for converting between `natDegree` and `degree`, and we should just use that instead. --- [](https://gitpod.io/from-referrer/) | t-ring-theory t-algebra awaiting-zulip | 9/4 | Mathlib/RingTheory/Polynomial/UniqueFactorization.lean | 1 | 4 | ['github-actions', 'tb65536', 'vihdzp'] | nobody | 1 month ago | 30 days ago | 13 hours |
| 32608 | 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 [](https://gitpod.io/from-referrer/) | new-contributor awaiting-zulip t-algebra | 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 | 1 month ago | 71 days ago | 10 days |
| 32742 | 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). --- [](https://gitpod.io/from-referrer/) | new-contributor awaiting-zulip t-measure-probability | 4/0 | Mathlib/MeasureTheory/Constructions/Polish/Basic.lean | 1 | 9 | ['ADedecker', 'LTolDe', 'dupuisf', 'github-actions', 'jcommelin'] | PatrickMassot | 1 month ago | 56 days ago | 11 days |
| 34720 | Paul-Lez | feat(RingTheory/PowerSeries/Composition): define composition of power series | This PR defines the composition of two power series, and adds various pieces of API lemmas (this is mostly fixing up and upstreaming code from [this repo](https://github.com/rmhi/formal_deriv)).
This is the first of a series of PRs upstreaming work that was done at the CFT workshop in Oxford last summer, working towards proving some results about the `exp` and `log` power series (and their composition!), and constructing the isomorphism $(\mathfrak{m}_K ^ n, +) \cong (1 + \mathfrak{m}_K ^ n, \times)$ for sufficiently large $n$, where $K$ is a characteristic zero local field.
Co-authored-by: Richard Hill |
t-ring-theory awaiting-zulip | 844/0 | Mathlib.lean,Mathlib/RingTheory/PowerSeries/Composition.lean | 2 | 3 | ['Paul-Lez', 'github-actions', 'vihdzp'] | nobody | 22 days ago | unknown | unknown |
| 33441 | dupuisf | feat: add `LawfulInv` class for types with an inverse that behaves like `Ring.inverse` | This PR introduces a new typeclass `LawfulInv` for types which have an `Inv` instance that is equal to zero on non-invertible elements. This is meant to replace `Ring.inverse`. The current plan is to do this refactor in several steps: 1. This PR, which only introduces the class and adds instances for matrices and continuous linear maps. 2. Add instances for all C*-algebras, and make `CStarAlgebra` extend this. 3. Deprecate `Ring.inverse`. --- [](https://gitpod.io/from-referrer/) | awaiting-zulip t-algebra merge-conflict | 185/27 | Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/Invertible.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/RingTheory/DividedPowers/Padic.lean,Mathlib/Topology/Algebra/Module/Equiv.lean | 7 | 35 | ['dupuisf', 'eric-wieser', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'plp127'] | nobody | 13 days ago | 42 days ago | 7 days |
| 34245 | staroperator | feat(Data/Set): add `Set.Uncountable` | There are `Set` specialized shortcuts `Set.Finite`, `Set.Infinite` and `Set.Countable`, but lacking `Set.Uncountable`. I find this useful in #34246. --- [](https://gitpod.io/from-referrer/) | t-data awaiting-zulip | 82/4 | Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Data/Set/Countable.lean,Mathlib/SetTheory/Cardinal/Basic.lean | 3 | 16 | ['github-actions', 'joneugster', 'staroperator', 'vihdzp'] | joneugster | 13 days ago | 28 days ago | 12 days |
| 34077 | kbuzzard | perf: increase priority of instSMulOfMul | #31040 deprecated `Mul.toSMul` in place of the core instance `instSMulOfMul`, which is at a lowered priority of 910. This PR undeprecates it and makes it a higher priority instance (1100) which seems better for mathlib. --- [](https://gitpod.io/from-referrer/) This PR follows the philosophy seen in Mathlib's `Algebra.id : Algebra R R`, which also has raised priority. The idea is the same as `Algebra.id`: if you're looking for an instance of `Algebra R S` with R not equal to S then `Algebra.id` is extremely likely to fail quickly in practice, and if you're looking for an instance of `Algebra R R` then `Algebra.id` is unambiguously the right answer so should be tried ASAP. However the instance is defined so early in mathlib that in in practice it is tried last unless the priority is raised. The same philosophy holds here; if you're looking for an instance of `SMul X X` then you absolutely want to try `Mul.toSMul` first and if you're looking for an instance of `SMul X Y` with Y not X then `Mul.toSMul` will in practice be quick to fail. This PR was inspired by #33908 (another "this should be quick to fail and if it fits then it's almost certainly what we want" prio change) which made an instance of `IsScalarTower R A A` high priority and gave a performance boost. This PR also gives a performance boost. Note that the performance in #31040 looks very bad but the radar output is incorrect; there was a hardware change between the two runs. In fact #31040 produced no changes in profiling, as one might expect. I don't know the correct way to change the priority of a core instance in mathlib, and I didn't know if just changing the priority naively would work repo-wide rather than just file-wide, which was why this PR introduces a second instance. Zulip discussion at [#mathlib4 > priority hacks](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/priority.20hacks/with/574353616) | t-algebra awaiting-zulip | 3/9 | Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/Units.lean | 2 | 25 | ['alreadydone', 'github-actions', 'kbuzzard', 'leanprover-radar'] | jcommelin | 13 days ago | 13 days ago | 14 hours |
| 26299 | adomani | perf: the `whitespace` linter only acts on modified files | Introduces an `IO.Ref` to allow the `commandStart` linter to only run on files that git considers modified with respect to `master`. The linter is also active on files that have had some error, as these are likely being modified! The PR should also mitigate the speed-up that the linter introduced: [#mathlib4 > A whitespace linter @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/A.20whitespace.20linter/near/525091877) Assuming that this goes well, a similar mechanism could be applied to several linters that do not need to run on all code, just on the modified code. Implementation detail: the linter is currently either on or off in "whole" files. It may be also a future development to make this more granular and only run the linter on "modifed commands in modified files", but this is not currently the plan for this modification! --- [](https://gitpod.io/from-referrer/) | t-linter awaiting-zulip awaiting-author | 55/7 | Mathlib/Tactic/Linter/Whitespace.lean | 1 | 19 | ['adomani', 'eric-wieser', 'github-actions', 'grunweg', 'joneugster', 'kim-em', 'leanprover-bot', 'leanprover-radar', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | grunweg | 13 days ago | 186 days ago | 66 days |
| 35524 | grunweg | feat: text-based linter against \t followed by tactic mode | Wait for the zulip discussion to converge. **If** there is consensus in favour of this change, summarise the motivation here. [zulip discuss](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/proposal.3A.20no.20more.20use.20of.20.60.E2.96.B8.60.20in.20Mathlib.3F/with/574680826) --- There are currently 80 remaining exceptions in mathlib: ideally, these would get fixed before merging this. Works best when combined with #35523. [](https://gitpod.io/from-referrer/) | t-linter awaiting-zulip | 23/2 | Mathlib/Tactic/Linter/TextBased.lean | 1 | 4 | ['github-actions', 'grunweg', 'joneugster', 'vihdzp'] | nobody | 11 days ago | unknown | unknown |
| 35578 | Shreyas4991 | fix: writer monad should use an additive logging type | The Writer monad's w type is supposed to be additive, not multiplicative. This is how it is conceptually used in Haskell (as a logging type). Haskell uses `Monoid` because it doesn't make a distinction between `AddMonoid` and `Monoid`. [#mathlib4 > Writer should use an additive monoid @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Writer.20should.20use.20an.20additive.20monoid/near/574990415) --- [](https://gitpod.io/from-referrer/) | t-data awaiting-zulip | 10/10 | Mathlib/Control/Monad/Cont.lean,Mathlib/Control/Monad/Writer.lean | 2 | 4 | ['Shreyas4991', 'eric-wieser', 'github-actions'] | nobody | 11 days ago | 11 days ago | 5 hours |
| 33972 | YuvalFilmus | feat(Analysis/Polynomial/Order): polynomial has fixed sign beyond largest root | We prove that a polynomial has fixed sign beyond its largest root. One could also prove similar results about the smallest root, but they will be more awkward since they will depend on the parity of the (natural) degree; suggestions welcome (perhaps for a future PR). --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-zulip | 134/0 | Mathlib.lean,Mathlib/Analysis/Polynomial/Order.lean | 2 | 13 | ['YuvalFilmus', 'artie2000', 'github-actions', 'mathlib-merge-conflicts', 'urkud', 'vihdzp'] | ADedecker and urkud | 8 days ago | 8 days ago | 38 days |
| 20238 | 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. [](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'] | nobody | 5 days ago | unknown | unknown |
| 22361 | rudynicolop | feat(Computability/NFA): nfa closure properties | Add the closure properties union, intersection and reversal for NFA. --- [](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'] | nobody | 5 days ago | unknown | unknown |
| 23929 | meithecatte | feat(Computability/NFA): improve bound on pumping lemma | --- - [x] depends on: #25321 [](https://gitpod.io/from-referrer/) | t-computability awaiting-zulip new-contributor awaiting-author | 101/10 | Mathlib/Computability/EpsilonNFA.lean,Mathlib/Computability/NFA.lean | 2 | 42 | ['YaelDillies', 'dagurtomas', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'meithecatte'] | nobody | 5 days ago | 269 days ago | 10 hours |
| 34649 | peabrainiac | feat(Analysis/Calculus/ContDiff): add notation `ℕ∞ω` for `WithTop ℕ∞` | Add a `ContDiff`-scoped notation `ℕ∞ω` for `WithTop ℕ∞`, accompanying the existing notations `∞` and `ω` for `(⊤ : ℕ∞) : ℕ∞ω` and `⊤ : ℕ∞ω`. --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/RFC.3A.20notation.20for.20.60WithTop.20.E2.84.95.E2.88.9E.60/near/573917824) I've also replaced `WithTop ℕ∞` with this new notation already in the files that mention it the most, but not in all files yet; many mention `WithTop ℕ∞` just a couple of times but don't open the `ContDiff` namespace. I'm not sure whether that should be taken as a sign to not make the notation scoped, or whether the solution is just to `open scoped ContDiff` in these files or not use the notation there. [](https://gitpod.io/from-referrer/) | t-differential-geometry t-analysis awaiting-author awaiting-zulip merge-conflict | 221/218 | Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean,Mathlib/Analysis/Calculus/ContDiff/Comp.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/Deriv.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean,Mathlib/Geometry/Manifold/Algebra/LieGroup.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean,Mathlib/Geometry/Manifold/Algebra/Structures.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/Geometry/Manifold/ContMDiff/Defs.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean | 28 | 5 | ['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'peabrainiac'] | sgouezel | 2 days ago | 21 days ago | 8 days |
| 30750 | 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`. [](https://gitpod.io/from-referrer/) | t-data awaiting-author awaiting-zulip | 162/0 | Mathlib/Data/Quot.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Data/Setoid/Basic.lean | 4 | 5 | ['SnirBroshi', 'TwoFX', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] | TwoFX | 20 hours ago | 96 days ago | 35 days |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 24823 | eric-wieser | refactor: add `hom` lemmas for the `MonoidalCategory` structure on `ModuleCat` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 148/164 | Mathlib/Algebra/Category/FGModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Free.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Generator.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Internal/Module.lean,Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Rep.lean | 11 | 21 | ['101damnations', 'YaelDillies', 'eric-wieser', 'github-actions', 'joelriou', 'kbuzzard', 'leanprover-community-bot-assistant'] | 101damnations | 7 months ago | 242 days ago | 25 days |
| 25988 | Multramate | refactor(AlgebraicGeometry/EllipticCurve/*): replace Fin 3 with products | This PR continues the work from #24593. Original PR: https://github.com/leanprover-community/mathlib4/pull/24593 | merge-conflict t-algebraic-geometry | 1000/1022 | Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean | 6 | 3 | ['Multramate', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 26067 | mapehe | feat(Topology/StoneCech): exists_continuous_surjection_from_StoneCech_to_dense_range | This lemma formalises the following version of the maximality property of the Stone–Čech compactification: If `f : α → β` is a continuous map from a topological space `α` to a Hausdorff space `β` with dense range, then there exists a continuous surjection from `StoneCech α` to `β` extending `f`. In particular, `StoneCech α` is the “largest” compact Hausdorff space into which `α` densely embeds, in the sense that any other such space is a continuous image of it. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 18/0 | Mathlib/Topology/StoneCech.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | 238 days ago | 20 days |
| 26200 | adomani | fix: add label when landrun fails | Adds the `permission-denied` label on PRs that get blocked by landrun. --- [](https://gitpod.io/from-referrer/) | merge-conflict CI | 68/8 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml | 4 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 210 days ago | 46 days |
| 27451 | kckennylau | feat(RingTheory/Valuation): define ball, closed ball, and sphere | *From the 2025 Local Class Field Theory Workshop.* --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 27/0 | Mathlib/RingTheory/Valuation/Basic.lean | 1 | 13 | ['JovanGerb', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'pechersky', 'wwylele'] | nobody | 6 months ago | 204 days ago | 17 days |
| 27987 | kckennylau | feat(RingTheory/Valuation): define ball, closed ball, and sphere | --- The pullback PR of #26827 and #27451. [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory large-import | 73/0 | Mathlib/RingTheory/Valuation/Basic.lean | 1 | 4 | ['JovanGerb', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 204 days ago | 6 days |
| 27003 | eric-wieser | chore: use `Simp.ResultQ` more often | Also uses `~q` in place of manual `isDefEq` matching. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 18/22 | Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/NormNum/Result.lean,Mathlib/Tactic/ReduceModChar.lean | 3 | 7 | ['JovanGerb', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | JovanGerb | 6 months ago | 202 days ago | 32 days |
| 28622 | alreadydone | chore(Mathlib): replace `=>` by `↦` | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 51792/51792 | Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Bilinear.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Hom/Rat.lean,Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Opposite.lean,Mathlib/Algebra/Algebra/Prod.lean,Mathlib/Algebra/Algebra/Rat.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/Algebra/Spectrum/Pi.lean,Mathlib/Algebra/Algebra/Spectrum/Quasispectrum.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean,Mathlib/Algebra/Algebra/Subalgebra/Directed.lean,Mathlib/Algebra/Algebra/Subalgebra/IsSimpleOrder.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Algebra/Subalgebra/Matrix.lean,Mathlib/Algebra/Algebra/Subalgebra/Operations.lean,Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean,Mathlib/Algebra/Algebra/Subalgebra/Prod.lean,Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Algebra/TransferInstance.lean,Mathlib/Algebra/Algebra/Unitization.lean,Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Algebra/AlgebraicCard.lean,Mathlib/Algebra/BigOperators/Associated.lean,Mathlib/Algebra/BigOperators/Expect.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/BigOperators/Finsupp/Fin.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean,Mathlib/Algebra/BigOperators/Group/Finset/Sigma.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean,Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/BigOperators/Intervals.lean,Mathlib/Algebra/BigOperators/Option.lean,Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Algebra/BigOperators/Ring/Multiset.lean,Mathlib/Algebra/Category/AlgCat/Basic.lean,Mathlib/Algebra/Category/AlgCat/Limits.lean,Mathlib/Algebra/Category/AlgCat/Monoidal.lean,Mathlib/Algebra/Category/BialgCat/Basic.lean,Mathlib/Algebra/Category/BoolRing.lean,Mathlib/Algebra/Category/CoalgCat/Basic.lean,Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean,Mathlib/Algebra/Category/FGModuleCat/Limits.lean,Mathlib/Algebra/Category/Grp/AB.lean,Mathlib/Algebra/Category/Grp/Adjunctions.lean,Mathlib/Algebra/Category/Grp/Basic.lean,Mathlib/Algebra/Category/Grp/Biproducts.lean,Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean,Mathlib/Algebra/Category/Grp/Colimits.lean,Mathlib/Algebra/Category/Grp/EpiMono.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/Grp/Images.lean,Mathlib/Algebra/Category/Grp/Kernels.lean,Mathlib/Algebra/Category/Grp/LargeColimits.lean,Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean,Mathlib/Algebra/Category/Grp/Limits.lean,Mathlib/Algebra/Category/Grp/Preadditive.lean,Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean,Mathlib/Algebra/Category/Grp/Zero.lean,Mathlib/Algebra/Category/GrpWithZero.lean,Mathlib/Algebra/Category/HopfAlgCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Biproducts.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Colimits.lean,Mathlib/Algebra/Category/ModuleCat/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/Images.lean,Mathlib/Algebra/Category/ModuleCat/Injective.lean,Mathlib/Algebra/Category/ModuleCat/Kernels.lean,Mathlib/Algebra/Category/ModuleCat/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Abelian.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean,Mathlib/Algebra/Category/ModuleCat/Products.lean | 3838 | 4 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 196 days ago | 15 hours |
| 28626 | alreadydone | chore(Archive, Counterexamples): replace => by ↦ | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 288/288 | Archive/Arithcc.lean,Archive/Examples/IfNormalization/Result.lean,Archive/Examples/IfNormalization/WithoutAesop.lean,Archive/Examples/PropEncodable.lean,Archive/Imo/Imo1959Q1.lean,Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1962Q4.lean,Archive/Imo/Imo1972Q5.lean,Archive/Imo/Imo1977Q6.lean,Archive/Imo/Imo1981Q3.lean,Archive/Imo/Imo1987Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q2.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2006Q5.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2013Q1.lean,Archive/Imo/Imo2019Q1.lean,Archive/Imo/Imo2024Q5.lean,Archive/MiuLanguage/Basic.lean,Archive/MiuLanguage/DecisionSuf.lean,Archive/OxfordInvariants/Summer2021/Week3P1.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Archive/Wiedijk100Theorems/BirthdayProblem.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Archive/Wiedijk100Theorems/Partition.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Archive/ZagierTwoSquares.lean,Counterexamples/AharoniKorman.lean,Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean,Counterexamples/CharPZeroNeCharZero.lean,Counterexamples/CliffordAlgebraNotInjective.lean,Counterexamples/DirectSumIsInternal.lean,Counterexamples/GameMultiplication.lean,Counterexamples/Girard.lean,Counterexamples/HomogeneousPrimeNotPrime.lean,Counterexamples/MapFloor.lean,Counterexamples/MonicNonRegular.lean,Counterexamples/Phillips.lean,Counterexamples/Pseudoelement.lean,Counterexamples/QuadraticForm.lean,Counterexamples/SorgenfreyLine.lean,Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean | 54 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 194 days ago | 2 days |
| 28150 | Equilibris | chore: clean up proofs typevec proofs | While adding variable universe corecs I found a lot of theorems in typevec that could do with a bit of a clean-up --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 24/26 | Mathlib/Data/TypeVec.lean | 1 | 7 | ['Equilibris', 'alexkeizer', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 193 days ago | 13 days |
| 27403 | MoritzBeroRoos | fix: replace probably erroneous usage of ⬝ (with old \cdot) by · (with \centerdot) | Discussion at [zulip](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.5Ccdot.20!.3D.20.5Ccenterdot). Currently the abbreviations \cdot and \centerdot resolve to different, with the naked eye nearly undistinguishable symbols (despite the c in cdot surely standing for center..). This pr replaces instances of ⬝ where · was probably meant. All of the replacement is in comments, except for the file bench_summary.lean which is used for priting the github benchmark results. Since this file is about scientific notation of numbers, sure · was meant to be used, not a rectangle. [Related](https://github.com/leanprover-community/mathlib4/pull/27399) --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor | 195/195 | Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/DirectSum/Idempotents.lean,Mathlib/Algebra/Lie/Derivation/Basic.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/InnerProductSpace/Dual.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/SpecialFunctions/Complex/CircleAddChar.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Data/Matrix/Block.lean,Mathlib/Data/Matrix/ConjTranspose.lean,Mathlib/Data/Matrix/Hadamard.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Data/Matrix/Reflection.lean,Mathlib/Data/Matrix/RowCol.lean,Mathlib/Data/Matrix/Vec.lean,Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/LinearAlgebra/CrossProduct.lean,Mathlib/LinearAlgebra/Matrix/BilinearForm.lean,Mathlib/LinearAlgebra/Matrix/DotProduct.lean,Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean,Mathlib/LinearAlgebra/Matrix/Orthogonal.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/LinearAlgebra/Matrix/SchurComplement.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/LinearAlgebra/Matrix/Trace.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean,Mathlib/LinearAlgebra/Projectivization/Constructions.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean,Mathlib/NumberTheory/SiegelsLemma.lean,Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean,Mathlib/SetTheory/Ordinal/Veblen.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,Mathlib/Topology/Instances/Matrix.lean,scripts/bench_summary.lean | 49 | 5 | ['eric-wieser', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | 215 days ago | 7 days |
| 28042 | kckennylau | feat(Topology/ValuativeRel): a topological basis indexed by pairs of elements | --- The pullback PR of #27314 and #27163. [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 140/23 | Mathlib/RingTheory/Valuation/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean | 2 | 3 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 202 days ago | 7 days |
| 27399 | MoritzBeroRoos | chore: replace every usage of ⬝ᵥ (with old \cdot) by ·ᵥ (with \centerdot) | Discussion at [zulip](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.5Ccdot.20!.3D.20.5Ccenterdot). Currently the abbreviations `\cdot` and `\centerdot` resolve to different, with the naked eye nearly undistinguishable symbols (despite the c in cdot surely standing for `center`..): - `\cdot` gives ⬝ [U+2B1D](https://www.compart.com/en/unicode/U+2B1D) "Black Very Small Square" - `\centerdot` gives · [U+00B7](https://www.compart.com/en/unicode/U+00B7) "Middle Dot" Mathlib mostly uses the `\centerdot` variant, except for the dotProduct notation and some probably unsuspecting people wanting \centerdot but getting \cdot in their comments and 6 uses of a notation using the raw `\cdot` without any subscript at `Mathlib\Topology\Homotopy\Product.lean`. This PR replaces the dot product `⬝ᵥ` with its `\centerdot` counterpart `·ᵥ`. The related PR [here](https://github.com/leanprover/vscode-lean4/pull/639) can then overwrite the `\cdot` abbreviation, to produce the same symbol as the `centerdot` abbreviation does. --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor | 133/133 | Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Data/Matrix/Block.lean,Mathlib/Data/Matrix/ConjTranspose.lean,Mathlib/Data/Matrix/Hadamard.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Data/Matrix/Reflection.lean,Mathlib/Data/Matrix/RowCol.lean,Mathlib/Data/Matrix/Vec.lean,Mathlib/LinearAlgebra/CrossProduct.lean,Mathlib/LinearAlgebra/Matrix/BilinearForm.lean,Mathlib/LinearAlgebra/Matrix/DotProduct.lean,Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean,Mathlib/LinearAlgebra/Matrix/Orthogonal.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/LinearAlgebra/Matrix/SchurComplement.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/LinearAlgebra/Matrix/Trace.lean,Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean,Mathlib/LinearAlgebra/Projectivization/Constructions.lean,Mathlib/Topology/Instances/Matrix.lean | 25 | 6 | ['MoritzBeroRoos', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | 215 days ago | 7 days |
| 28148 | kckennylau | feat(Matrix): Simproc and Rw-proc for Matrix Transpose | Co-authored by Aaron Liu. ```lean example : !![1, 2, 3; 4, 5, 6]ᵀ = !![1, 4; 2, 5; 3, 6] := by rw [transpose_of% 2 3] example : !![1, 2, 3; 4, 5, 6]ᵀ = !![1, 4; 2, 5; 3, 6] := by rw [transpose_of] example : !![1, 2, 3; 4, 5, 6]ᵀ = !![1, 4; 2, 5; 3, 6] := by simp only [matrix_transpose] ``` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 267/8 | Mathlib.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/LinearAlgebra/UnitaryGroup.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/Matrix.lean,MathlibTest/Simproc/Matrix.lean,MathlibTest/matrix.lean,scripts/noshake.json | 8 | 32 | ['eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'plp127'] | eric-wieser | 6 months ago | 188 days ago | 12 days |
| 26908 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): alternative ext principle for unitors | Currently, our infrastructure for left/right unitors for Day convolution of functors `C ⥤ V` do not have satisfactory extensionality principle: the current way to characterize morphisms out of `U ⊛ F` is the default extensionality principle for Day convolution, which characterizes first such functors via functors out of `U ⊠ F`. Left unitors are then obtained using the fact `U ⊠ F` is a left Kan extension of a functor from `PUnit × C` (which is equivalent to `C`) but we did not record on its own this principle. Using the transitivity of left Kan extensions proved in #26899, we directly exhibit `U ⊛ F` as a left Kan extension of `F ⋙ tensorLeft (𝟙_ V)` along `tensorLeft (𝟙_ C)`. The unit of this Kan extension is composed exactly of the morphisms that appear in the [characterization of left unitors](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Monoidal/DayConvolution.html#CategoryTheory.MonoidalCategory.DayConvolutionUnit.leftUnitor_hom_unit_app). We also slightly generalize the instances that express that external products with unitors are left Kan extensions, so that they can be used when taking external products with more complicated functors than currently. This is again useful when chaining extensionality lemmas for morphisms out of terms of the form `(F ⊛ U) ⊛ G`. We prove a similar thing for right unitors With this, it should be possible to have a much more satisfactory way of working with Day convolutions: this allows to "elimiinate" units without ending up with terms in an external product. --- - [ ] depends on: #26899 - [ ] depends on: #26906 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 307/18 | Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean | 2 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 176 days ago | 17 minutes |
| 27150 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): constructors for braided and symmetric structure on day convolutions monoidal categories | Following the pattern in #27119, we give API to construct `BraidedCategory` and `SymmetricCategory` structures on a monoidal category equipped with a `LawfulDayConvolutionMonoidalCategoryStruct`. To achieve this, we introduce an other type class `LawfulDayConvolutionBraidedCategoryStruct` that bundles an associator isomorphism that behaves like the one constructed for functors in #27067. We provide a noncomputable constructor for this typeclass that takes as input fullness of the "realization" functor to a category of functors, and we show that the typeclasses are sufficient to define the desired structures. --- - [x] depends on: #27067 - [x] depends on: #26820 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 826/9 | Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Braided.lean | 2 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 231 days ago | 51 seconds |
| 27119 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): constructors for closed monoidal day convolution monoidal structures | Following the pattern introduced in #26798 and #26820 and using results of #26879, we introduce a typeclass `LawfulDayConvolutionClosedMonoidalCategoryStruct` that encodes the data needed on a `LawfulDayConvolutionMonoidalCategoryStruct` to define well-behaved internal homs. We give a constructor assuming existence of relevant ends, and prove that this data defines a `MonoidalClosed` instance on the monoidal category structures one can deduce from `LawfulDayConvolutionMonoidalCategoryStruct`. --- - [x] depends on: #27079 - [x] depends on: #27091 - [x] depends on: #26879 - [x] depends on: #26820 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 900/9 | Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean | 2 | 6 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 28623 | gilesgshaw | feat(Logic/Basic): minor additions and simplification of proofs | Add new theorems and simplify proofs. Specifically, we add the family of related theorems `apply_dite_iff_exists`, `apply_dite_iff_forall`, `apply_ite_iff_and` and `apply_ite_iff_or`. For each other 'family' of theorems in the file that is analogous to the above, we do the following - Simplify proofs where possible, e.g. by appealing to the new theorems - Complete the family, if any of the corresponding four are missing - Rename to ensure consistency with the above pattern --- | merge-conflict t-logic new-contributor | 83/55 | Archive/Examples/IfNormalization/Result.lean,Archive/Examples/IfNormalization/WithoutAesop.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Notation/Indicator.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean,Mathlib/Logic/Basic.lean,Mathlib/MeasureTheory/Measure/WithDensity.lean,Mathlib/SetTheory/Ordinal/Notation.lean | 9 | 12 | ['eric-wieser', 'gilesgshaw', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] | awainverse | 5 months ago | 175 days ago | 10 days |
| 27933 | grunweg | chore(OrdNode): format code example in code blocks | Wrap them in code blocks (and unindent them; that indentation is not needed any more). This also avoids warnings from the linter in #27898. ------- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 459/212 | Mathlib/Data/Ordmap/Ordnode.lean | 1 | 4 | ['eric-wieser', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 172 days ago | 39 days |
| 26154 | ADedecker | refactor: add refactored APIs for algebraic filter bases | This PR continues the work from #18437. Original PR: https://github.com/leanprover-community/mathlib4/pull/18437 | merge-conflict t-topology | 651/0 | Mathlib.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Algebra/FilterBasisNew.lean,Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean,Mathlib/Topology/Algebra/Nonarchimedean/BasesNew.lean | 5 | 3 | ['ADedecker', 'github-actions', 'mathlib4-merge-conflict-bot'] | PatrickMassot | 5 months ago | 169 days ago | 87 days |
| 29330 | plp127 | chore: define `Fin.cycleIcc` with conditions | Redefine `Fin.cycleIcc` using conditionals instead of composing existing `Fin` operations together. Its worst-case runtime drops from O(n) to O(1). As a bonus, the definition no longer needs explaining. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-group-theory | 61/68 | Mathlib/GroupTheory/Perm/Fin.lean | 1 | 10 | ['JovanGerb', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'tb65536'] | nobody | 5 months ago | 160 days ago | 19 days |
| 27214 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): Categorical pullback squares | In this PR, we give the definition and first basic properties of categorical pullback squares. Using our previous work on `CategoricalPullback`, we define a typeclass `CatPullbackSquare T L R B` that asserts that a given `CatCommSq T L R B` is a "pullback square": this is the data of a chosen adjoint equivalence to the canonical functor from the top left corner of the square to the categorical pulback of its leg. Using this equivalence, be derive a universal property for functors from `X`with values in the top left corner of the square: they are equivalent to `CatCommSqOver R B X`, the category of categorical commutative squares over the cospan `R, B` with top left corner `X`. We prove some coherence result for this equivalence, most notably an isomorphism that, given `S : CatCommSqOver R B X`, bundles the two commutative triangles formed by the induced functor, and the coherence between the squares that these isomorphisms satisfy: this is conveniently bundled in the data of a single isomorphisms of `CatCommSqOver R B X`. Finally, we provide a `Prop`-class `IsCatPullbackSquare` that merely asserts the existence (via `Nonempty`) of the relevant data: we show that it is tautotogically equivalent to the propopsition that the canonical functor to the categorical pullback is an equivalence. --- - [ ] depends on: #26679 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 786/1 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 155 days ago | 1 hour |
| 26466 | robin-carlier | feat(AlgebraicTopology/SimplexCategory/Augmented): the canonical monoid object in the augmented simplex category | Show that in the augmented simplex category, `⦋0⦌` is an internal monoid object. Future work will show that this is in fact the universal monoid object: for any monoidal category `C`, evaluation at `⦋0⦌` induces an equivalence of categories between `Mon_ C` and the category of monoidal functors from `AugmentedSimplexCategory` to `C`. The resulting augmented cosimplicial object one gets from this construction is sometimes called the "monoidal bar construction" attached to a monoid. This PR was split from #25743. --- - [ ] depends on: #25743 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-topology t-category-theory | 571/111 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Mon_.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean | 6 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 249 days ago | 17 minutes |
| 26578 | robin-carlier | feat(CategoryTheory/Limits/Pullbacks/Categorical/CatCospanTransform): adjunctions of categorical cospans | We build upon the bicategory-like structure developed in #26447 and #26412 to define the notion of adjunctions of categorical cospans. This is a structure encoding the data of two `CatCospanTransform`s, along with the usual unit and counit morphisms as part of the data, satisfying the usual left and right triangle identities. We provide basic API for these, such as extracting adjunctions between individual components. We also provide a proof that the notion satisfies a "coherence": with our chosen constructor, the forward direction of the structure `CatCommSq` on the left adjoints correspond to the inverse of the square for the right adjoints through `mateEquiv`. These adjunctions will be used as a substrate for defining equivalences of categorical cospans in a future PR: such an equivalence will be a structure extending a `CatCospanAdjunction` with isomorphisms data on the unit and co-unit (we will however provide alternative constructors in sync with the constructor for equivalences of categories). --- - [x] depends on: #26447 - [x] depends on: #26547 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory large-import | 205/0 | Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean | 1 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27990 | kckennylau | feat(Counterexamples): a nontrivial valuation with discrete topology | This file constructs a valuation on `K[X]` satisfying `IsValuativeTopology K[X] ∧ Nonempty (valuation K[X]).RankOne ∧ IsNontrivial K[X] ∧ DiscreteTopology K[X]`, and proves that `IsValuativeTopology F ∧ IsNontrivial F ∧ DiscreteTopology F` is not possible if `F` is a field. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 172/0 | Counterexamples.lean,Counterexamples/DiscreteTopologyWithNontrivialValuation.lean | 2 | 14 | ['github-actions', 'grunweg', 'kckennylau', 'mathlib4-merge-conflict-bot', 'pechersky'] | nobody | 4 months ago | 142 days ago | 67 days |
| 25978 | Bergschaf | feat(Order/Sublocale): Open Sublocales | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #25089 | merge-conflict t-order | 377/8 | Mathlib.lean,Mathlib/Order/Hom/Lattice.lean,Mathlib/Order/Nucleus.lean,Mathlib/Order/Sublocale.lean,Mathlib/Order/Synonym.lean,docs/references.bib | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | 203 days ago | 22 minutes |
| 28132 | dupuisf | feat: preliminary `grind` tags for `IsUnit` | This PR adds preliminary `grind` tags for the `IsUnit` predicate. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 61/17 | Mathlib/Algebra/Group/Action/Units.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Ring/Units.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean | 6 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | kim-em | 3 months ago | 119 days ago | 80 days |
| 26827 | pechersky | feat(Analysis/Normed/ValuativeRel): helper instance for NormedField | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #26713 - [x] depends on: #26826 | merge-conflict t-algebra t-number-theory t-analysis | 211/27 | Mathlib.lean,Mathlib/Analysis/Normed/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean | 3 | 34 | ['ADedecker', 'adamtopaz', 'erdOne', 'github-actions', 'kbuzzard', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | kbuzzard | 3 months ago | 111 days ago | 121 days |
| 24850 | pechersky | feat(Topology/UniformSpace/Ultra): uniform spaces induced by pseudometrics are ultra if system is ultra | Any uniform space has a natural system of pseudometrics definable on it, comprised of those pseudometrics constructed from a descending chain of equivalence relation entourages. In a nonarchimedean uniformity, this pseudometric system induces the uniformity. --- [](https://gitpod.io/from-referrer/) - [x] depends on: #23111 | merge-conflict t-topology | 509/1 | Mathlib.lean,Mathlib/Topology/MetricSpace/BundledFun.lean,Mathlib/Topology/UniformSpace/Ultra/Pseudometrizable.lean | 3 | 9 | ['ADedecker', 'fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | urkud | 3 months ago | 104 days ago | 162 days |
| 25974 | 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 |
merge-conflict t-topology large-import | 174/5 | Mathlib/Topology/Compactness/CompactlyCoherentSpace.lean | 1 | 5 | ['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'scholzhannah'] | ADedecker | 3 months ago | 104 days ago | 147 days |
| 26914 | quangvdao | feat(Data/PFunctor/Univariate): more definitions for univariate `PFunctor` | This PR defines several basic definitions of `PFunctor`, including zero, one, constants, monomials, coproduct (sum), product, sigma, pi, tensor product, universe lifting, and equivalence. We also add: (1) simple lemmas connecting the basic definitions, (2) an automatically derived ext lemma for `PFunctor` via `@[ext]` attribute Some things I'm not clear on: - I define `HAdd` and `HMul` instances for coproduct and product of poly functors having different universe levels. Should I also define `Add` and `Mul` instances for poly functors having the same universe level? - Is it ok to define notation for tensor product, i.e. `@[inherit_doc] scoped infixr:80 " ⊗ " => tensor`? I'm worried it might clash with other notation. - Need a double-check on the priority of notation. Some future definitions to add: - Various equivalences arising from arithmetic identities, e.g., `P + 0 ≃ₚ P`. - Definitions of Lenses and Charts (each of them will be a file or even a folder) - Exponential objects (corresponding to both `prod` and `tensor`) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 144/5 | Mathlib/Data/PFunctor/Univariate/Basic.lean | 1 | 20 | ['alexkeizer', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'quangvdao'] | eric-wieser | 3 months ago | 104 days ago | 133 days |
| 27534 | PierreQuinton | feat: a typeclass for `sSup`/`sInf` to be lawful | Adds lawful infima and suprema type classes. A preorder with lawful suprema: whenever a set has a least upper bound, `sSup` returns a least upper bound for that set. A preorder with lawful infima: whenever a set has a greatest lower bound, `sInf` returns a greastest lower bound for that set. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-order | 121/8 | Mathlib.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/LawfulSupInf.lean | 3 | 26 | ['PierreQuinton', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | YaelDillies | 3 months ago | 104 days ago | 114 days |
| 28125 | nonisomorphiclinearmap | feat(Combinatorics): basic definition of simplicial complexes | This PR introduces the basic definition of a finite (abstract) simplicial complex, located in Mathlib/Combinatorics/SimplicialComplex/Basic.lean. --- This is our first contribution to mathlib. This work was done as part of the Fields Institute Summer Undergraduate Program on formalization in topological combinatorics. Eventually, we aim to formalize Lovasz's proof of the Kneser Conjecture and this is a small stepping stone in that direction. Some other commits will shortly depend on this one. We would like to acknowledge the Fields Institute for Research in Mathematical Sciences for their sponsorship. We would also like to thank our supervisors, Professor Chris Kapulkin and Mr. Daniel Carranza, for their guidance and support throughout this project. We would also like to thank our group members Tom Lindquist and Quang Minh Nguyen for our fruitful discussions. | merge-conflict t-combinatorics new-contributor | 374/0 | Mathlib.lean,Mathlib/Combinatorics/SimplicialComplex/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Category.lean,Mathlib/Combinatorics/SimplicialComplex/FacePoset.lean,Mathlib/Combinatorics/SimplicialComplex/Hom.lean | 5 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | awainverse | 3 months ago | 104 days ago | 99 days |
| 28871 | JaafarTanoukhi | feat(Combinatorics/Digraph): Tournaments | Define orientations and tournaments. Related to #26771.
Co-authored-by: Rida Hamadani |
merge-conflict t-combinatorics new-contributor | 62/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Digraph/Tournament.lean | 3 | 6 | ['JaafarTanoukhi', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'mathlib4-merge-conflict-bot'] | kmill | 3 months ago | 104 days ago | 71 days |
| 29526 | llllvvuu | feat: `Multiset.map f` identifies `f` up to permutation | Motivation: Reason about `Fintype`-indexed families via `Multiset` equality.
Example use case 1:
```lean
theorem Matrix.IsHermitian.cfc_eigenvalues {d : Type*} [Fintype d] [DecidableEq d]
{M : Matrix d d 𝕜} (hM : M.IsHermitian) (f : ℝ → ℝ)
(hcfc : Matrix.IsHermitian (cfc f M) := cfc_predicate f M) :
∃ (e : d ≃ d), hcfc.eigenvalues = f ∘ hM.eigenvalues ∘ e := by
have := hcfc.roots_charpoly_eq_eigenvalues.symm
rw [hM.charpoly_cfc_eq f, Polynomial.roots_prod] at this; swap
· simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero]
simp_rw [Polynomial.roots_X_sub_C, Multiset.bind_singleton] at this
have he := (Multiset.compTriple_equivOfMapUnivEq this).comp_eq
simp_rw [← Function.comp_def RCLike.ofReal, ← Function.comp_def f, Function.comp_assoc] at he
exact ⟨_, RCLike.ofReal_injective.comp_left he.symm⟩
```
Example use case 2 (on top of https://github.com/leanprover-community/mathlib4/pull/29610):
```lean
theorem LinearMap.Eigenbasis.μ_equiv {ι ι' R G : Type*} [Fintype ι] [Fintype ι']
[CommRing R] [IsDomain R] [AddCommGroup G] [Module R G] [Module.Free R G] [Module.Finite R G]
{f : Module.End R G} (B₁ : f.Eigenbasis ι) (B₂ : f.Eigenbasis ι') :
∃ e : ι ≃ ι', B₁.μ = B₂.μ ∘ e := by
classical
have := congr(Polynomial.roots $(B₁.charpoly_eq.symm.trans B₂.charpoly_eq))
rw [Polynomial.roots_prod, Polynomial.roots_prod] at this; rotate_left
· simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero]
· simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero]
simp_rw [Polynomial.roots_X_sub_C, Multiset.bind_singleton] at this
exact ⟨Multiset.equivOfMapUnivEq this, (Multiset.compTriple_equivOfMapUnivEq this).comp_eq.symm⟩
```
Co-authored-by: Aristotle Harmonic |
merge-conflict t-data | 35/0 | Mathlib/Data/Multiset/Fintype.lean | 1 | 9 | ['Ruben-VandeVelde', 'github-actions', 'llllvvuu', 'mathlib4-merge-conflict-bot', 'vihdzp', 'wwylele'] | pechersky | 3 months ago | 104 days ago | 69 days |
| 29947 | JaafarTanoukhi | feat(Combinatorics/Digraph): Maps | Ported `SimpleGraph/Maps.lean` to `Digraph/Maps.lean` for future PRs related to issue #[26771](https://github.com/leanprover-community/mathlib4/issues/26771) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics new-contributor | 476/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Maps.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | awainverse | 3 months ago | 104 days ago | 54 days |
| 31356 | adomani | feat: add inspect-like functions | Produces a tree-like formatting for `Syntax`, `Expr` and `InfoTree`. Especially for the `InfoTree`s, there are *many* parts of it that do not get printed. For instance, this is how the `InfoTree`s of `set_option linter.missingDocs true` get printed: ```lean inspectIT set_option linter.missingDocs true /- commandCtx |-Info.ofCommandInfo: Lean.Elab.Command.elabSetOption, 'set_option…gDocs true' | |-Info.ofCompletionInfo.CompletionInfo.option 'set_option…issingDocs' | |-Info.ofOptionInfo: linter.missingDocs, Linter.linter.missingDocs -/ ``` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 720/0 | Mathlib.lean,Mathlib/Util/Inspect.lean,MathlibTest/Inspect.lean | 3 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] | kim-em | 3 months ago | 104 days ago | 11 days |
| 26890 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): more API for `DayFunctor` | We provide some lemmas that helps characterizing the monoidal structure on `DayFunctor`, they are special cases of the lemmas for `LawfulDayConvolutionMonoidalCategoryStruct`. --- - [x] depends on: #26824 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 1372/19 | Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean | 4 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26912 | pechersky | chore(Algebra/Ring/Subring): simp tag `Subring.smul_def` | s-multiplying by a subtype is easiest to manipulate when both terms are in the ambient type. Many places that had to use the _def lemma for a rewrite, or to include it in a simp set, no longer have to. Ported from #25308 --- [](https://gitpod.io/from-referrer/) I found this being not-simp frustrating when talking about submodules over a valuation subring. | merge-conflict t-algebra | 67/66 | Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/Group/Subgroup/Actions.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/Algebra/Module/LocalizedModule/Exact.lean,Mathlib/Algebra/Module/LocalizedModule/IsLocalization.lean,Mathlib/Algebra/Module/LocalizedModule/Submodule.lean,Mathlib/Algebra/Ring/Periodic.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/LinearAlgebra/RootSystem/Irreducible.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/RingTheory/Etale/Kaehler.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/LocalProperties/Projective.lean,Mathlib/RingTheory/Localization/InvSubmonoid.lean,Mathlib/RingTheory/OreLocalization/Basic.lean | 25 | 26 | ['artie2000', 'eric-wieser', 'github-actions', 'j-loreaux', 'kckennylau', 'leanprover-bot', 'leanprover-radar', 'linesthatinterlace', 'mathlib4-merge-conflict-bot', 'pechersky'] | joelriou | 2 months ago | 99 days ago | 60 days |
| 30375 | sinhp | feat(CategoryTheory): Basics of Locally Cartesian Closed Categories | Supersedes https://github.com/leanprover-community/mathlib4/pull/22321 This PR defines locally cartesian closed categories in terms of existence of the pushforward functors (right adjoint to the pullback functor) for all morphisms. We develop basic API and prove the following: 1. Existence of the pushforward functors is equivalent to cartesian closed slices. 2. Any locally cartesian closed category with a terminal object is cartesian closed. 3. The slices of a locally cartesian closed category are locally cartesian closed. --- - [ ] depends on: #31033 - [ ] depends on: #30373 - [ ] depends on: #31332 [](https://gitpod.io/from-referrer/) | t-category-theory merge-conflict | 703/0 | Mathlib.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Basic.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Sections.lean | 5 | 9 | ['Jlh18', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sinhp'] | nobody | 1 month ago | unknown | unknown |
| 33561 | kbuzzard | chore: cont -> continuous_toFun | This field is sometimes called `cont` and sometimes `continuous_toFun`. I noticed that the `continuity` tactic sometimes takes a lot longer to prove `cont` even if `continuous_toFun` is available so I thought I'd change them all to see if this speed up mathlib. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 171/149 | Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Polynomial.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Extend.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/DerivNotation.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Distribution/TemperedDistribution.lean,Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Analysis/Fourier/FourierTransform.lean,Mathlib/Analysis/Fourier/LpSpace.lean,Mathlib/Analysis/InnerProductSpace/LinearPMap.lean,Mathlib/Analysis/LocallyConvex/Barrelled.lean,Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean,Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Affine/Isometry.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Module/Alternating/Basic.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,Mathlib/Analysis/Normed/Operator/Extend.lean,Mathlib/Analysis/RCLike/Extend.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Integral/Bochner/L1.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean,Mathlib/Probability/Distributions/Fernique.lean,Mathlib/Probability/Moments/CovarianceBilinDual.lean,Mathlib/Topology/Algebra/AffineSubspace.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/ContinuousAffineEquiv.lean,Mathlib/Topology/Algebra/ContinuousAffineMap.lean,Mathlib/Topology/Algebra/Module/Alternating/Basic.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean,Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean,Mathlib/Topology/Algebra/Module/Star.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/ContinuousMap/Algebra.lean,Mathlib/Topology/ContinuousMap/Ideals.lean,Mathlib/Topology/Instances/TrivSqZeroExt.lean,Mathlib/Topology/VectorBundle/Basic.lean | 66 | 5 | ['eric-wieser', 'github-actions', 'kbuzzard', 'leanprover-radar', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 55 days ago | 2 days |
| 33330 | michael-novak-math | feat: add arc-length reparametrization of parametrized curves | add new definitions of arc-length reparametrization and its corresponding parameter transformation and a theorem establishing the desired properties. | t-analysis new-contributor merge-conflict | 311/0 | Mathlib.lean,Mathlib/Analysis/Calculus/ArcLengthReparametrization.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,docs/references.bib,lake-manifest.json | 5 | 53 | ['SnirBroshi', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'michael-novak-math'] | j-loreaux | 1 month ago | 55 days ago | 6 days |
| 28700 | Timeroot | feat(ModelTheory): Set.Definable is transitive | --- This PR continues the work from #19695. Original PR: https://github.com/leanprover-community/mathlib4/pull/19695 - [ ] depends on: #26332 [](https://gitpod.io/from-referrer/) | merge-conflict large-import t-logic | 529/8 | Mathlib/Data/Rel.lean,Mathlib/ModelTheory/Definability.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean,scripts/noshake.json | 5 | 8 | ['Timeroot', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'staroperator'] | nobody | 1 month ago | 192 days ago | 3 days |
| 33435 | astrainfinita | feat: algebra automorphisms of monoid algebras | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 53/3 | Mathlib/Algebra/MonoidAlgebra/Basic.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | kbuzzard | 1 month ago | 49 days ago | 13 days |
| 33126 | CoolRmal | feat: function composition preserves boundedness | This PR adds the following theorem: if the range of a function `g` is bounded above, then `g ∘ f` is bounded above for all functions `f`. --- [](https://gitpod.io/from-referrer/) | t-order merge-conflict | 12/0 | Mathlib/Order/Bounds/Basic.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | bryangingechen | 1 month ago | 46 days ago | 27 days |
| 29587 | uniwuni | feat(GroupTheory/Finiteness): define finitely generated semigroups | We define finitely generated semigroups and basics similarly to monoids and groups and prove that semigroups and monoids remain finitely generated when a congruence is quotiented out. This will be important when further developing semigroup theory. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-group-theory | 259/14 | Mathlib/Algebra/Group/Submonoid/Defs.lean,Mathlib/GroupTheory/Finiteness.lean | 2 | 4 | ['github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'uniwuni'] | dupuisf | 1 month ago | 146 days ago | 25 days |
| 32546 | anishrajeev | feat(ModelTheory): Prove compactness of the type space | Define the space of types and prove various topological properties of it (zero dimensional, totally separated, compact, baire). The goal is to formalize the proof of the Omitting Types Theorem - [ ] depends on: #32215 | merge-conflict t-logic new-contributor | 127/1 | Mathlib.lean,Mathlib/ModelTheory/Topology/Types.lean,Mathlib/ModelTheory/Types.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 4 | 6 | ['NoneMore', 'anishrajeev', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | fpvandoorn | 1 month ago | unknown | unknown |
| 29014 | ShreckYe | feat(Data/List/Scan): some theorems that relate `scanl` with `foldl` | I am not sure which is the best form of `getElem_scanl_eq_foldl_take` here, so I added several alternative forms. Feel free to remove any of them if necessary. | merge-conflict t-data | 35/0 | Mathlib/Data/List/Scan.lean | 1 | 15 | ['ShreckYe', 'github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen', 'vlad902'] | pechersky | 1 month ago | 114 days ago | 74 days |
| 34188 | vihdzp | feat: abbrev for `Std.Total (· ≤ ·)` | Apart from saving keystrokes, this ensures that the totality condition gets dualized by `to_dual` to itself, rather than to the equivalent and less idiomatic `Std.Total (· ≥ ·)`. --- [](https://gitpod.io/from-referrer/) | t-order merge-conflict | 67/58 | Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Data/Char.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/Ordmap/Invariants.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Compare.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Filter/FilterProduct.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/PropInstances.lean,Mathlib/Order/Quotient.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/Shrink.lean,Mathlib/Order/UpperLower/CompleteLattice.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean | 21 | 8 | ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] | Vierkantor | 1 month ago | 28 days ago | 13 days |
| 9820 | jjaassoonn | feat(RingTheory/GradedAlgebra/HomogeneousIdeal): generalize to homogeneous submodule | The definitions, constructions and theorems in `HomogeneousIdeal.lean` are generalized to a homogeneous submodules. So say $R$ is a ring and $M \cong \bigoplus_{i} M_i$ is an $R$-module. Then a homogeneous $R$-submodule of $M$ is an $R$-submodule $N$ such that for all $i$ and $n \in N$, $n_i \in N$. Note that this notion doesn't actually require $R$ to be graded and $M$ is a graded module. But for more interesting lemmas, we do need that $M$ is graded $R$-module. We bake the fact $R$ is graded into the definition of homogeneous submodule, otherwise, `CompleteLattice HomogeneousSubmodule` cannot find the order of synthesis (the proof depends on that $R$ is graded) All definitions/constructions/theorems have a copy for ideals as well, this is to make sure dot notation still works. The motivation of this generalization is graded quotient module --- - [x] depends on:#18728 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 516/185 | Mathlib/Algebra/Module/GradedModule.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,scripts/nolints_prime_decls.txt | 7 | 3 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 22 days ago | unknown | unknown |
| 34931 | eric-wieser | perf: make TensorProduct.lift irreducible with a unification hint | --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 6/2 | Mathlib/LinearAlgebra/TensorProduct/Basic.lean | 1 | 7 | ['eric-wieser', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | erdOne | 19 days ago | 19 days ago | 5 days |
| 33020 | FormulaRabbit81 | chore(Topology): Deprecate file | --- - [x] depends on: #30851 deprecation [](https://gitpod.io/from-referrer/) | t-topology large-import merge-conflict | 82/49 | Mathlib/Topology/Compactness/HilbertCubeEmbedding.lean,Mathlib/Topology/MetricSpace/HausdorffAlexandroff.lean,Mathlib/Topology/MetricSpace/PiNat.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 17 days ago | 76 days ago | 3 hours |
| 33281 | michelsol | feat(Analysis/SpecialFunctions/Integrals): integral of 1/sqrt(1-x^2) and its integrability. | Add the integral of the derivative of arcsin and its integrability. --- - [ ] depends on: #33280 [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict t-analysis | 59/0 | Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 16 days ago | 68 days ago | 13 minutes |
| 29281 | plp127 | doc: `Fin.natAdd_castLEEmb` | Change the docstring of `Fin.natAdd_castLEEmb` which confused me when I read it so I rewrote it. PS. this doesn't really follow the naming convention since data should be in `camelCase` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 2/3 | Mathlib/Data/Fin/Embedding.lean | 1 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 16 days ago | 163 days ago | 18 days |
| 34156 | zcyemi | feat(Analysis/Convex/Between): add lemmas on convex combination of mem simplex interior | --- I add three lemmas of convex combinations preserving membership in the interior of a simplex. And also open a zulip thread [#mathlib4 > Best place for convex combination and simplex interior](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Best.20place.20for.20convex.20combination.20and.20simplex.20interior/with/568558406) deps: - [ ] depends on: #33852 | t-analysis merge-conflict | 170/0 | Mathlib/Analysis/Convex/Between.lean,Mathlib/LinearAlgebra/AffineSpace/Independent.lean | 2 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 16 days ago | 16 days ago | 20 minutes |
| 34973 | chrisflav | chore: replace `Punit` by `PUnit` | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 34/16 | Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/CategoryTheory/Action/Basic.lean,Mathlib/CategoryTheory/Extensive.lean,Mathlib/CategoryTheory/Limits/Sifted.lean,Mathlib/CategoryTheory/Limits/Types/Coproducts.lean,Mathlib/CategoryTheory/Limits/Types/Products.lean,Mathlib/Order/InitialSeg.lean,Mathlib/RingTheory/FreeCommRing.lean,Mathlib/Topology/UniformSpace/Equiv.lean | 9 | 4 | ['chrisflav', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier'] | joelriou | 16 days ago | 16 days ago | 7 days |
| 32918 | michelsol | feat: define `supEdist` and `supDist` | Create a new file Topology.MetricSpace.SupDistance and define the supremal distance in (extended) metric spaces. The defined `supEdist` and `supDist` will have similar theory to the already existing `infEdist` and `infDist`. The motivation is to be able to define the radius of a minimal bounding sphere as the infimum of the supDist later. [zulip discussion here](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalizing.20Jung's.20theorem.20and.20minimal.20bounding.20spheres) | t-topology new-contributor merge-conflict | 75/0 | Mathlib.lean,Mathlib/Topology/MetricSpace/SupDistance.lean | 2 | 5 | ['github-actions', 'mathlib4-merge-conflict-bot', 'michelsol', 'urkud'] | RemyDegenne | 15 days ago | 57 days ago | 21 days |
| 33288 | vihdzp | chore(Combinatorics/SimpleGraph/Paths): review API | This PR does the following: - Add `grind` annotations. - Rename theorems `X_isY` to the more idiomatic `isY_X`. - Remove many redundant namespaces. - Golf accordingly. --- [](https://gitpod.io/from-referrer/) | t-combinatorics merge-conflict | 154/122 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Maps.lean | 6 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | b-mehta | 15 days ago | 15 days ago | 43 days |
| 25980 | Multramate | refactor(Algebra/Group/Submonoid/Operations): rename restrict to domRestrict and add restrict | And update the documentation for consistency | t-group-theory merge-conflict | 145/123 | Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/GroupTheory/FiniteAbelian/Duality.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Maps.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/GroupTheory/PGroup.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/GroupTheory/Transfer.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/NumberTheory/NumberField/CMField.lean,Mathlib/NumberTheory/NumberField/Ideal/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean | 14 | 10 | ['Multramate', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 14 days ago | 14 days ago | 5 days |
| 25981 | Multramate | feat(GroupTheory/GroupAction/Basic): define homomorphisms of fixed subgroups induced by homomorphisms of groups | This PR continues the work from #10126. Original PR: https://github.com/leanprover-community/mathlib4/pull/10126 | t-group-theory large-import merge-conflict | 218/144 | Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Ring/Action/Submonoid.lean,Mathlib/GroupTheory/FiniteAbelian/Duality.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Maps.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/GroupTheory/PGroup.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/GroupTheory/Transfer.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/NumberTheory/NumberField/CMField.lean,Mathlib/NumberTheory/NumberField/Ideal/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean | 16 | 8 | ['copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 14 days ago | 14 days ago | 4 days |
| 33795 | alreadydone | feat(Topology/Sheaves): LocalPredicate prerequisite for étalé spaces | --- [](https://gitpod.io/from-referrer/) | t-topology merge-conflict | 418/143 | Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Topology/Sheaves/LocalPredicate.lean,Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Stalks.lean | 6 | 12 | ['adamtopaz', 'alreadydone', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts'] | adamtopaz | 13 days ago | 13 days ago | 34 days |
| 34674 | Citronhat | feat(Algebra/Order/Ring): replace ENNReal lemmas with WithTop versions | * Add `WithTop` versions of basic multiplicative order lemmas. * Use the new `WithTop` lemmas to replace `ENNReal` proofs and address six TODOs. * Fix a typo in the `pos_of_ne_zero` alias name. | new-contributor t-algebra merge-conflict | 46/15 | Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Data/ENNReal/Operations.lean | 3 | 5 | ['Citronhat', 'Ruben-VandeVelde', 'github-actions', 'mathlib-merge-conflicts'] | Ruben-VandeVelde | 13 days ago | 13 days ago | 16 days |
| 33416 | vihdzp | chore(Order/GameAdd): add `elab_as_elim` attributes | This PR does three things: - Rename `GameAdd.fix` to the more illustrative `GameAdd.recursion` - Add `elab_as_elim` attributes on `GameAdd.recursion` - Deprecate the duplicate `GameAdd.induction` --- [](https://gitpod.io/from-referrer/) | t-order merge-conflict | 24/14 | Mathlib/Order/GameAdd.lean,Mathlib/SetTheory/PGame/Order.lean,Mathlib/SetTheory/ZFC/Ordinal.lean | 3 | 6 | ['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'ocfnash', 'vihdzp'] | alreadydone | 12 days ago | 12 days ago | 50 days |
| 33746 | ster-oc | feat(Algebra/Module/ZLattice): align `ZSpan.floor` to `Int.floor` API | This PR adds some of the existent lemmas about `Int.floor`, `Int.ceil` and `Int.fract` to the `ZSpan` namespace. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor merge-conflict | 353/145 | Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Topology/Algebra/Order/Floor.lean | 3 | 8 | ['github-actions', 'joelriou', 'mathlib-merge-conflicts', 'ster-oc'] | joelriou | 8 days ago | 8 days ago | 30 days |
| 35555 | JovanGerb | perf: add `AddMonoid` shortcut instance for linear maps | The hierarchy of classes is such that `AddCommMonoid` is not a direct parent of `AddCommGroup`. This means that when unifying an instance that comes from `AddCommMonoid` with one that comes from `AddCommGroup`, we end up having to go through the shared parent `AddMonoid`. Hence, it can be beneficial to have a separately defined `AddMonoid` instance. It might be worth it to try to switch up the order of the parents of `AddCommGroup`/`CommGroup` in the `extends` clause, and see if that has beneficial effects. Though this will affect many things, and in particular won't interact well with the `backward.respectTransparency` mess that is going on at the moment. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 23/7 | Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean | 4 | 5 | ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | robin-carlier | 7 days ago | 7 days ago | 4 days |
| 34854 | GrigorenkoPV | chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` | --- Split off from #34853 [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict | 228/195 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/Combinatorics/Enumerative/Catalan/Basic.lean,Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean | 6 | 5 | ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | thorimur | 7 days ago | 13 days ago | 13 days |
| 34728 | j-loreaux | feat: continuous linear equivalence between continuous `ℝ`- and `𝕜`-linear functionals, when equipped with the weak⋆-topology | This realizes the map `StrongDual.extendRCLikeₗ`, after pre- and post-composing so that it is an equivalence between the weak duals, as a *continuous* linear equivalence. --- - [ ] depends on: #34543 The placement in `Analysis/Normed/Module/WeakDual` seems suboptimal because this has nothing to do with the norm. This is because `WeakDual.toStrongDual` is already in this file, which should probably be moved to `Topology/Algebra/Module/WeakDual`. However, even if that moves, the declarations added in this PR cannot easily go with it because they involve `RCLike`. Potentially, they could move to `Analysis/RCLike/Extend` if that file gained the `Topology/Algebra/Module/WeakDual` import. --- [](https://gitpod.io/from-referrer/) | t-analysis merge-conflict | 184/114 | Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/Normed/Module/RCLike/Extend.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/RCLike/Extend.lean | 5 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 days ago | 29 days ago | 8 minutes |
| 33791 | PhoenixIra | feat: Generalization of FixedPointApproximants to CompletePartialOrder | --- This PR provides a generalization of FixedPointApproximants to CompletePartialOrder. Not every theorem can be generalized, as sometimes we require additional conditions (namely `x ≤ f x`) in order to guarantee that the set is directed and thus the supremum is well-defined. This is not necessary in a CompleteLattice. [](https://gitpod.io/from-referrer/) | new-contributor t-order merge-conflict | 223/100 | Mathlib/Order/CompletePartialOrder.lean,Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean | 2 | 21 | ['PhoenixIra', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | PhoenixIra and vihdzp | 4 days ago | 4 days ago | 38 days |
| 32033 | Thmoas-Guan | feat(Algebra): injective dimension equal supremum of localized module | In this PR, we proved that for module over Noetherian ring, projective dimension is equal to the supremum of injective dimension of localized modules over all prime/maximal ideals. --- - [ ] depends on: #31995 - [ ] depends on: #31998 [](https://gitpod.io/from-referrer/) | large-import t-algebra merge-conflict | 363/9 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/Injective.lean,Mathlib/RingTheory/LocalProperties/Injective.lean,Mathlib/RingTheory/LocalProperties/InjectiveDimension.lean | 6 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 2 days ago | 2 days ago | 35 minutes |
| 26942 | pechersky | feat(RingTheory/Valuation/ValueGroupIso): isomorphism of value groups when compatible | and also to the ValuativeRel's value group by request from comment in https://github.com/leanprover-community/mathlib4/pull/26754#issuecomment-3051770901 - [ ] depends on: #26588 --- [](https://gitpod.io/from-referrer/) - [x] depends on: #26939 - [x] depends on: #26940 - [x] depends on: #26941 | merge-conflict t-ring-theory t-order | 299/3 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/WithZero.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/RingTheory/Valuation/ValueGroupIso.lean | 6 | 10 | ['faenuccio', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'pechersky'] | faenuccio | 1 day ago | 201 days ago | 10 days |
| 25906 | pfaffelh | feat(Topology/Compactness/CompactSystem): closed and compact square cylinders form a compact system | feat (Topology/Compactness/CompactSystem): Closed and compact square cylinders form a compact system. A square cylinder is a set of the form `s.pi t` in a product space. A closed compact square cylinder has `IsClosed (t i)` and `IsCompact (t i)` for all `i ∈ s`. This set system is a compact system (as introduced in PR #25899). Streamline the definition of square cylinders in MeasureTheory/Constructions/Cylinders on the way. Co-authors: Rémy Degenne remy.degenne@inria.fr --- - [ ] depends on: #25899 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24542.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24542* | merge-conflict t-topology | 716/65 | Mathlib.lean,Mathlib/Data/Set/Accumulate.lean,Mathlib/Data/Set/Dissipate.lean,Mathlib/Data/Set/Prod.lean,Mathlib/MeasureTheory/Constructions/Cylinders.lean,Mathlib/MeasureTheory/Constructions/ProjectiveFamilyContent.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/Topology/Compactness/CompactSystem.lean | 8 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 35198 | j-loreaux | feat: generalize Hölder's inequality for sums to `Real.HolderTriple` | Currently the API exists only for `Real.HolderConjugate`. This generalizes it in anticipation of #35197, which implements the Hölder framework for `lp` spaces. --- [](https://gitpod.io/from-referrer/) | t-analysis merge-conflict | 161/40 | Mathlib/Analysis/MeanInequalities.lean,Mathlib/Data/Real/ConjExponents.lean | 2 | 3 | ['github-actions', 'mathlib-merge-conflicts'] | ADedecker | 1 day ago | 11 days ago | 17 days |
| 34711 | urkud | refactor(padicValNat): redefine using `maxPowDvdDiv` | - rename `maxPowDiv` to `maxPowDvdDiv`; - make it return `a / b ^ n` too; - optimize it to use `O(log (logb b a))` steps; - redefine `padicValNat` to be `maxPowDvdDiv .. |>.1` --- [](https://gitpod.io/from-referrer/) | merge-conflict | 275/149 | Mathlib/Data/Nat/MaxPowDiv.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/NumberTheory/Padics/PadicVal/Defs.lean,Mathlib/NumberTheory/SumTwoSquares.lean | 5 | 3 | ['b-mehta', 'github-actions', 'mathlib-merge-conflicts'] | b-mehta and dagurtomas | 20 hours ago | 10 days ago | 10 days |
| 31135 | kckennylau | feat(RingTheory): is localization iff is localization on saturation | In this PR we show that `A` is a localization of `R` on the submonoid `S` iff it is so on the saturation of `S`. Crucially, the saturation of `S` is precisely the elements that become a unit in `A`. --- - [ ] depends on: #31132 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 293/0 | Mathlib.lean,Mathlib/Algebra/Group/Submonoid/Saturation.lean,Mathlib/RingTheory/Localization/Saturation.lean | 3 | 5 | ['alreadydone', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | unknown | unknown |
| 30365 | kckennylau | feat(RingTheory): define R-linear graded algebra homomorphism | This PR defines R-linear graded algebra homomorphisms, which are R-algebra homomorphisms that preserve the grading. We also provide the basic properties (aka the "API"). Zulip discussion: [#mathlib4 > redefine Graded Algebra](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/redefine.20Graded.20Algebra/near/543847326) --- Split from #26061. - [ ] depends on: #30355 - [ ] depends on: #30312 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 642/0 | Mathlib.lean,Mathlib/Data/FunLike/GradedFunLike.lean,Mathlib/RingTheory/GradedAlgebra/AlgHom.lean,Mathlib/RingTheory/GradedAlgebra/RingHom.lean | 4 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | unknown | unknown |
| 30334 | kckennylau | feat(RingTheory): define maps of homogeneous ideals | In this file we define `HomogeneousIdeal.map` and `HomogeneousIdeal.comap`, similar to and based on the existing `Ideal.map` and `Ideal.comap`. More concretely, a graded ring homomorphism `𝒜 →+*ᵍ ℬ` induces a "Galois connection" between the homogeneous ideals in `𝒜` and the homogeneous ideals in `ℬ`. --- Split from #26061. - [ ] depends on: #30312 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 441/0 | Mathlib.lean,Mathlib/RingTheory/GradedAlgebra/Hom.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Maps.lean | 4 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | unknown | unknown |
| 35559 | mike1729 | feat(Analysis/Normed): weak-topology embedding into weak-star bidual and compactenss transfer theorem | This PR refactors the double dual material and adds new results connecting the weak topology on a normed space to the weak-star topology on its bidual. ## Changes ### New file: `Analysis.Normed.Module.DoubleDual` Extracts the canonical embedding `inclusionInDoubleDual` and the bidual isometry `inclusionInDoubleDualLi` from `Analysis.Normed.Module.Dual` into a dedicated file, and adds: - `inclusionInDoubleDualWeak`: the canonical map from `WeakSpace 𝕜 X` into `WeakDual 𝕜 (StrongDual 𝕜 X)`. - `inclusionInDoubleDualWeak_isEmbedding`: this map is a topological embedding. - `inclusionInDoubleDualWeak_homeomorph`: the map as a homeomorphism onto its range. - `isCompact_closure_of_isBounded`: bounded sets whose bidual image has weak-star closure in range have weakly compact closure, via Banach–Alaoglu. ### New file: `Analysis.Normed.Module.WeakSpace` - `WeakSpace.instBornology`: norm bornology on `WeakSpace 𝕜 E`, inherited from `E`. - `WeakSpace.instT2Space`: the weak topology over `RCLike` is Hausdorff (via Hahn–Banach). ### Modified: `Analysis.Normed.Module.Dual` The double dual inclusion material is moved out; polar set results remain. References to `inclusionInDoubleDual` in `polar_closure` are replaced by `ContinuousLinearMap.apply` to avoid a dependency on the new file. --- CC: @faenuccio this may be relevant for your Goldstine formalization. | t-analysis new-contributor merge-conflict | 285/99 | Mathlib.lean,Mathlib/Analysis/LocallyConvex/SeparatingDual.lean,Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Module/DoubleDual.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/Normed/Module/WeakSpace.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean,Mathlib/Probability/Distributions/Gaussian/CharFun.lean | 10 | 16 | ['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mike1729'] | ADedecker | 7 hours ago | 6 days ago | 11 days |
| 35886 | euprunin | chore: exhaustively replace `measurability`/`continuity` → `fun_prop`, `simp_all` → `simp` where possible | The goal of this PR is to exhaustively replace `measurability`/`continuity` and `simp_all` with the preferred `fun_prop` and `simp` where possible. Trace profiling results (differences <30 ms considered measurement noise): * `PeriodPair.weierstrassPExcept_add`: unchanged 🎉 * `PeriodPair.derivWeierstrassPExcept_sub`: unchanged 🎉 * `PeriodPair.coeff_weierstrassPExceptSeries`: 353 ms before, 320 ms after 🎉 * `Polynomial.Chebyshev.integral_measureT`: unchanged 🎉 * `Polynomial.Chebyshev.integrable_measureT`: 513 ms before, 338 ms after 🎉 * `LinearMap.fst_prodOfFinsuppNat`: unchanged 🎉 * `Representation.leftRegular_norm_apply`: unchanged 🎉 * `ValuativeRel.isDiscrete_trivialRel`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | merge-conflict | 11/11 | Mathlib/Analysis/Fourier/Convolution.lean,Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean,Mathlib/LinearAlgebra/Finsupp/Pi.lean,Mathlib/RepresentationTheory/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean | 6 | 6 | ['euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | 3 days ago | 3 days |
| 35283 | Multramate | feat(Algebra/Polynomial): add aevalEquiv and its bivariate version | --- [](https://gitpod.io/from-referrer/) | t-algebra easy merge-conflict | 43/8 | Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/RingTheory/AdjoinRoot.lean | 3 | 6 | ['Multramate', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts', 'ocfnash'] | riccardobrasca | 55 minutes ago | 7 days ago | 9 days |
| 35945 | euprunin | chore: replace uses of `aesop` with `simp` | Since `aesop` runs `simp_all` by default, it is preferable to call `simp` directly when it suffices to close the goal. This makes the proof intent more explicit and is typically faster (sometimes significantly so in the cases below). Trace profiling results (differences <30 ms considered measurement noise): * `Polynomial.splits_mul_iff`: 998 ms before, 807 ms after 🎉 * `summable_condensed_iff_of_eventually_nonneg`: 927 ms before, 835 ms after 🎉 * `CategoryTheory.PreservesFiniteLimitsOfFlat.uniq`: 1476 ms before, 1327 ms after 🎉 * `IsCyclotomicExtension.union_of_isPrimitiveRoot`: 528 ms before, 306 ms after 🎉 * `Representation.FiniteCyclicGroup.coinvariantsKer_leftRegular_eq_ker`: 324 ms before, 292 ms after 🎉 * `of_adjoin_eq_top`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | merge-conflict | 15/15 | Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/AlgebraicGeometry/Noetherian.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/Analysis/PSeries.lean,Mathlib/CategoryTheory/Functor/Flat.lean,Mathlib/LinearAlgebra/Multilinear/Curry.lean,Mathlib/NumberTheory/Cyclotomic/Basic.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean,Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean,Mathlib/RingTheory/ZariskisMainTheorem.lean | 13 | 4 | ['euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | nobody | 55 minutes ago | 2 days ago | 2 days |
| 36064 | marcelolynch | ci: Push to the cache using OIDC and federated credentials | TODO - desc | CI merge-conflict | 137/34 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,.github/workflows/build_template.yml,.github/workflows/ci_dev.yml,Cache/Main.lean,Cache/README.md,Cache/Requests.lean | 8 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 55 minutes ago | unknown | unknown |
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 14563 | awueth | feat: if-then-else of exclusive or statement | --- If `¬(P ∧ Q)` then `ite (P ∨ Q) a 1 = (ite P a 1) * (ite Q a 1)` [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 5/0 | Mathlib/Algebra/Group/Basic.lean | 1 | 3 | ['eric-wieser', 'github-actions', 'kim-em'] | nobody | 1 year ago | unknown | unknown |
| 12751 | Command-Master | feat: add lemmas for Nat/Bits, Nat/Bitwise and Nat/Size | Remove `@[simp]` from `Nat.bit_false` and `Nat.bit_true`, as `bit0` and `bit1` are deprecated, and add some lemmas to `Bits`, `Bitwise` and `Size`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 66/7 | Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Nat/Size.lean | 4 | 26 | ['Command-Master', 'Rida-Hamadani', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'jcommelin'] | nobody | 1 year ago | unknown | unknown |
| 14669 | Command-Master | feat(Data/Nat/PartENat): add lemmas for PartENat | Add some missing lemmas for `PartENat`, as well as the additive homomorphism from it to `WithTop Int`. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data new-contributor | 90/0 | Mathlib/Data/Nat/PartENat.lean | 1 | 3 | ['erdOne', 'github-actions', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 15121 | Eloitor | feat: iff theorems for IsSplitEpi and IsSplitMono in opposite category | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-category-theory new-contributor | 40/0 | Mathlib/CategoryTheory/EpiMono.lean | 1 | 3 | ['github-actions', 'joelriou', 'mattrobball'] | nobody | 1 year ago | unknown | unknown |
| 14242 | js2357 | feat: Prove equivalence of `isDedekindDomain` and `isDedekindDomainDvr` | Prove that `isDedekindDomainDvr` is equivalent to both `isDedekindDomain` and `isDedekindDomainInv`. Specifically, prove `isDedekindDomainDvr A → isDedekindDomainInv A`, because `isDedekindDomain A → isDedekindDomainDvr A` and `IsDedekindDomain A ↔ IsDedekindDomainInv A` are already in Mathlib. - [x] depends on: #14099 - [x] depends on: #14216 - [ ] depends on: #14237 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR new-contributor | 269/1 | Mathlib.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/FractionalIdeal/LocalizedAtPrime.lean,Mathlib/RingTheory/Localization/Basic.lean | 4 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 16887 | metinersin | feat(ModelTheory/Complexity): define conjunctive and disjunctive formulas | Defines `FirstOrder.Language.BoundedFormula.IsConjunctive` and `FirstOrder.Language.BoundedFormula.IsDisjunctive`. --- - [ ] depends on: #16885 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 300/7 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Syntax.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 16888 | metinersin | feat(ModelTheory/Complexity): Define conjunctive and disjunctive normal forms | Define `FirstOrder.Language.BoundedFormula.IsDNF` and `FirstOrder.Language.BoundedFormula.IsCNF`. --- - [ ] depends on: #16887 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 415/7 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Syntax.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 16889 | metinersin | feat(ModelTheory/Complexity): Normal forms | Defines `FirstOrder.Language.BoundedFormula.toDNF` and `FirstOrder.Language.BoundedFormula.toCNF` - given a quantifier-free formula, these construct a semantically equivalent formula in disjunctive normal form and conjunctive normal form, respectively. --- - [ ] depends on: #16888 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 525/7 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Syntax.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 14619 | Command-Master | chore: Merge `Trunc` to `Squash` | Remove `Trunc` and use `Squash` instead --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP new-contributor | 197/211 | Mathlib/CategoryTheory/EpiMono.lean,Mathlib/CategoryTheory/Preadditive/Biproducts.lean,Mathlib/Data/DFinsupp/Basic.lean,Mathlib/Data/Fintype/Basic.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Data/Fintype/Option.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/Data/Fintype/Quotient.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Semiquot.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/Logic/Equiv/List.lean | 13 | 3 | ['Command-Master', 'github-actions', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 12750 | Command-Master | feat: define Gray code | --- Define binary reflected gray code, both as a permutation of `Nat` and as a permutation of `BitVec n`, and prove some theorems about them. Additionally, remove `@[simp]` from `Nat.bit_false` and `Nat.bit_true`, as `bit0` and `bit1` are deprecated, and add some lemmas to `Bits`, `Bitwise` and `Size`. - [ ] depends on: #12751 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-data new-contributor merge-conflict awaiting-author | 226/0 | Mathlib.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/GrayCode.lean,Mathlib/Data/Nat/Size.lean | 5 | 5 | ['Rida-Hamadani', 'alreadydone', 'github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 14603 | awueth | feat: degree is invariant under graph isomorphism | --- Mathlib has the definition `SimpleGraph.Iso.mapNeighborSet` which is an equivalence between neighbor sets induced by an isomorphism. Would it be beneficial to add the same equivalence for `neighborFinset`? [](https://gitpod.io/from-referrer/) | WIP t-combinatorics new-contributor | 24/0 | Mathlib/Combinatorics/SimpleGraph/Map/Finite.lean | 1 | 11 | ['awueth', 'github-actions', 'jcommelin', 'kim-em', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 9605 | davikrehalt | feat(Data/Finset & List): Add Lemmas for Sorting and Filtering | This PR includes several useful lemmas to the Data/Finset and Data/List modules in Lean's mathlib: 1. `toFinset_filter` (List): Shows that filtering commutes with toFinset. 2. `toFinset_is_singleton_implies_replicate` (List): Shows a list with a singleton toFinset is a List.replicate. 3. `filter_sort_commute` (Finset): Sorting and filtering can be interchanged in Finsets. 4. `Sorted.filter` (List): A sorted list stays sorted after filtering. 5. `Sorted.append_largest` (List): Appending the largest element keeps a list sorted. 6. `sort_monotone_map` (Finset): Relates sorting of a Finset after mapping to sorting of a list. 7. `sort_insert_largest` (Finset): Sorting a Finset with an inserted largest element. 8. `sort_range` (Finset): Sorting a range in a Finset equals the corresponding range list. 9. ~~`filter_eval_true` (List): Filtering a list with a predicate always true keeps the list unchanged.~~ 10. ~~`filter_eval_false` (List): Filtering with an always-false predicate gives an empty list.~~ 11. ~~`pairwise_concat` (List): Iff condition for Pairwise relation in concatenated lists (similar to pairwise_join).~~ 12. `list_map_toFinset` (Finset): toFinset commutes with map under injection --- - [x] depends on: #15952 This is my first PR to mathlib, so I'm not too familiar with etiquette's and more specifically there are two proofs in the PR which uses aesop, and I am not sure if it's frowned upon. I kept the aesop in there for now as I couldn't construct very short proofs otherwise. The sort_range function proof was suggested in https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Computing.20Finset.20sort.20of.20Finset.20range/near/410346731 by Ruben Van de Velde. Thanks for your time for improving this PR. | please-adopt t-data new-contributor merge-conflict awaiting-author | 71/0 | Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/List/Sort.lean | 4 | 30 | ['YaelDillies', 'davikrehalt', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-community-mathlib4-bot', 'urkud', 'vihdzp'] | YaelDillies | 1 year ago | unknown | unknown |
| 14598 | Command-Master | chore: add typeclasses to unify various `add_top`, `add_eq_top`, etc. | Add the four typeclasses `IsTopAbsorbing`, `IsBotAbsorbing`, `NoTopSum`, `NoBotSum`, as additive equivalents for `MulZeroClass` and `NoZeroDivisors`. Add instances of these for `ENNReal`, `WithTop α`, `WithBot α`, `PUnit`, `EReal`, `PartENat`, `Measure`, `Interval` and `Filter`. Also split `Algebra/Order/AddGroupWithTop` to `Algebra/Order/Group/WithTop` and `Algebra/Order/Monoid/WithTop` --- Previous usages of lemmas with quantified names like `WithTop.add_top` have to be changed to just `add_top`. `add_lt_top` is `@[simp]`, in accordance with `ENNReal.add_lt_top` being `@[simp]`. This affects `WithTop.add_lt_top` which previously hadn't been `@[simp]`. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra t-order new-contributor | 264/195 | Archive/Wiedijk100Theorems/BallotProblem.lean,Mathlib.lean,Mathlib/Algebra/Order/Group/WithTop.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/Algebra/PUnitInstances/Order.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/Analytic/Meromorphic.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/NormedSpace/ENorm.lean,Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean,Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Nat/WithBot.lean,Mathlib/Data/Real/EReal.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/MeasureTheory/Covering/Differentiation.lean,Mathlib/MeasureTheory/Decomposition/Lebesgue.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/L1Space.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Function/LpSpace.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/MeasureTheory/Integral/Bochner.lean,Mathlib/MeasureTheory/Integral/MeanInequalities.lean,Mathlib/MeasureTheory/Integral/SetIntegral.lean,Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Measure/Hausdorff.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/MeasureTheory/Measure/Typeclasses.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/Probability/Martingale/Convergence.lean,Mathlib/RingTheory/Multiplicity.lean,Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean,Mathlib/RingTheory/UniqueFactorizationDomain.lean,Mathlib/Topology/EMetricSpace/Defs.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean,Mathlib/Topology/MetricSpace/Lipschitz.lean | 57 | 30 | ['Command-Master', 'YaelDillies', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 16885 | metinersin | feat(ModelTheory/Complexity): define literals | Defines `FirstOrder.Language.BoundedFormula.IsLiteral` and `FirstOrder.Language.BoundedFormula.simpleNot` - an auxiliary operation that takes the negation of a formula and does some simplification. --- - [x] depends on: #16800 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-logic | 148/5 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean | 4 | 20 | ['YaelDillies', 'awainverse', 'github-actions', 'mathlib4-dependent-issues-bot', 'metinersin'] | nobody | 1 year ago | unknown | unknown |
| 13248 | hcWang942 | feat: basic concepts of auction theory | ## Description
Formalise some core concepts and results in auction theory: this includes definitions for first-price and second-price auctions, as well as several fundamental results and helping lemmas.
This is the very first PR of the project formalizing core concepts and results in auction theory.
Our group is working on more contributions on the formalization of game theory prefix.
Co-authored-by: Ma Jiajun |
merge-conflict awaiting-author new-contributor t-logic | 204/0 | Mathlib.lean,Mathlib/GameTheory/Auction/Basic.lean,docs/references.bib | 3 | 148 | ['Shreyas4991', 'YaelDillies', 'eric-wieser', 'faenuccio', 'github-actions', 'grunweg', 'hcWang942', 'tb65536', 'urkud', 'vihdzp'] | hcWang942 | 1 year ago | unknown | unknown |
| 19125 | yhtq | feat: add theorems to transfer `IsGalois` between pairs of fraction rings | feat: add theorems to transfer `IsGalois` between pairs of fraction rings. - [x] depends on: #18404 - [x] depends on: #19124 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra new-contributor | 121/0 | Mathlib.lean,Mathlib/FieldTheory/Galois/IsFractionRing.lean,Mathlib/RingTheory/Localization/FractionRing.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'tb65536'] | nobody | 1 year ago | unknown | unknown |
| 17739 | Aaron1011 | feat(Topology/Order/DenselyOrdered): prove Not (IsOpen) for intervals | Prove that Iic/Ici/Ioc/Ico/Icc intervals are not open in densely ordered topologies with no min/max element --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology new-contributor | 27/0 | Mathlib/Topology/Order/DenselyOrdered.lean | 1 | 8 | ['github-actions', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 15711 | znssong | feat(Combinatorics/SimpleGraph): Some lemmas about walk, cycle and Hamiltonian cycle | --- These lemmas are separated from the `meow-sister/BondyChvatal` branch and will be needed for the proof of the Bondy-Chvátal theorem. - [x] depends on: #15536 - [x] depends on: #16294 | merge-conflict awaiting-author t-combinatorics new-contributor | 407/3 | Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Path.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean | 4 | 22 | ['Rida-Hamadani', 'YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'znssong'] | nobody | 1 year ago | unknown | unknown |
| 15720 | znssong | feat(SimpleGraph): The Bondy-Chvátal theorem | The proof of the Bondy-Chvátal theorem, with Dirac's theorem and Ore's theorem as its corollary. - [x] depends on: #15536 - [ ] depends on: #15711 - [ ] depends on: #15578 | merge-conflict blocked-by-other-PR t-combinatorics new-contributor | 903/3 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/BondyChvatal.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Path.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean,Mathlib/Dynamics/FixedPoints/Basic.lean,Mathlib/Dynamics/FixedPoints/Increasing.lean | 8 | 3 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | YaelDillies | 1 year ago | unknown | unknown |
| 18629 | tomaz1502 | feat(Computability.Timed): Formalization of runtime complexity of List.merge | This PR adds the formalization of the runtime complexity of the merge function, defined in `Data/List/Sort`. Requires: https://github.com/leanprover-community/mathlib4/pull/15450 References: - Previous PR on mathlib3: https://github.com/leanprover-community/mathlib3/pull/14494/ - First discussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/BSc.20Final.20Project/near/220647062 - Second disussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Formalization.20of.20Runtime.20Complexity.20of.20Sorting.20Algorithms/near/284184450 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author new-contributor | 186/0 | Mathlib.lean,Mathlib/Computability/Timed/InsertionSort.lean,Mathlib/Computability/Timed/Merge.lean | 3 | 2 | ['github-actions', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 18461 | hannahfechtner | feat: left and right common multiples mixins | add mixins for left and right common multiples. These carry the data of what factors are used to create the common multiples --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 78/0 | Mathlib/Algebra/Group/Defs.lean | 1 | 13 | ['github-actions', 'hannahfechtner', 'jcommelin', 'kbuzzard', 'kim-em', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 19291 | PieterCuijpers | feat(Algebra/Order/Hom): add quantale homomorphism | Definition of quantale homomorphisms as functions that are both semigroup homomorphisms and complete lattice homomorphisms. --- - [x] depends on: #19810 - [x] depends on: #19811 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 209/0 | Mathlib.lean,Mathlib/Algebra/Order/Hom/Quantale.lean,scripts/noshake.json | 3 | 29 | ['PieterCuijpers', 'YaelDillies', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 20372 | jvlmdr | feat(MeasureTheory/Function): Add ContinuousLinearMap.bilinearCompLp(L) | Introduce ContinuousLinearMap.bilinearCompLp and bilinearCompLpL. Generalize eLpNorm_le_eLpNorm_mul_eLpNorm theorems to include constant C in bound condition. --- Expect this may be useful for defining tempered distributions from functions in `L^p`. The definitions more or less follow `ContinuousLinearMap.compLp...`. Names are loosely analogous to `ContinuousLinearMap.bilinearComp` and `SchwartzMap.bilinLeftCLM`. Note: I preferred the spelling `hpqr : p⁻¹ + q⁻¹ = r⁻¹` with `f` in `L^p` and `g` in `L^q` to `hpqr : 1 / p = 1 / q + 1 / r`. It's easier to obtain from `ENNReal.IsConjExponent` too. A few questions: - [ ] I defined `bilinear{Left,Right}LpL` in addition to `bilinearCompLpL` because `LinearMap.mkContinuous₂` is marked as `noncomputable` and `LinearMap.mkContinuous` is not. Is this worth the extra definitions? (Note: This is not visible in the source due to `noncomputable section`.) - [ ] Should I use `C : ℝ` instead of `C : NNReal` for `eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm'`? - [ ] Is it going to be painful to have `[Fact (1 ≤ p)] [Fact (1 ≤ q)] [Fact (1 ≤ r)]`? I don't think there's a way to avoid it though. Maybe providing specialized versions for `p.IsConjExponent q` with `L^1`? Naming: - [ ] Is it satisfactory to add a `'` to the `eLpNorm_le_eLpNorm_mul_eLpNorm ` definitions in `CompareExp.lean` where `≤ ‖f x‖ * ‖g x‖` has been replaced with `≤ C * ‖f x‖ * ‖g x‖`? These could replace the existing theorems, although I don't want to break backwards compatibility. There are 5 instances: `eLpNorm_le_eLpNorm_top_mul_eLpNorm'`, `eLpNorm_le_eLpNorm_mul_eLpNorm_top'`, `eLpNorm'_le_eLpNorm'_mul_eLpNorm''`, `eLpNorm_le_eLpNorm_mul_eLpNorm_of_nnnorm'`, `eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm'` (I'm not sure why the existing theorem `eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm` has an internal `'`) - [ ] Is `bilinearLeftLpL` a suitable name? Other options: `bilinearCompLpLeftL`, `bilinearCompLeftLpL`, `bilinLeftLpL` (analogous to `SchwartzMap.bilinLeftCLM`) [](https://gitpod.io/from-referrer/) | merge-conflict t-measure-probability new-contributor | 203/40 | Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSpace.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 20248 | peabrainiac | feat(Topology/Compactness): first-countable locally path-connected spaces are delta-generated | Shows that all first-countable locally path-connected spaces are delta-generated (so in particular all normed spaces and convex subsets thereof are), and that delta-generated spaces are equivalently generated by the unit interval or standard simplices. --- - [ ] depends on: #21616 In principle, this should be close to all that's required to show that all simplicial complexes and CW-complexes are delta-generated; I just haven't done it yet because I'm not sure which file to best do it in. [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import new-contributor merge-conflict awaiting-author t-topology | 1189/813 | Mathlib.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean,Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean,Mathlib/Topology/Connected/LocPathConnected.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/Homotopy/HSpaces.lean,Mathlib/Topology/Path.lean | 9 | 22 | ['YaelDillies', 'github-actions', 'kbuzzard', 'mathlib4-dependent-issues-bot', 'peabrainiac'] | nobody | 1 year ago | unknown | unknown |
| 19943 | AlexLoitzl | feat(Computability): Add Chomsky Normal Form Grammar and translation | - Define Chomsky normal form grammars - Add language-preserving translation between context-free grammars and Chomsky normal form grammars Co-authored-by: Martin Dvorak martin.dvorak@matfyz.cz --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author new-contributor | 3151/0 | Mathlib.lean,Mathlib/Computability/ChomskyNormalForm/Basic.lean,Mathlib/Computability/ChomskyNormalForm/EmptyElimination.lean,Mathlib/Computability/ChomskyNormalForm/LengthRestriction.lean,Mathlib/Computability/ChomskyNormalForm/TerminalRestriction.lean,Mathlib/Computability/ChomskyNormalForm/Translation.lean,Mathlib/Computability/ChomskyNormalForm/UnitElimination.lean,Mathlib/Computability/ContextFreeGrammar.lean | 8 | 59 | ['AlexLoitzl', 'YaelDillies', 'github-actions', 'kim-em', 'madvorak'] | nobody | 1 year ago | unknown | unknown |
| 21501 | sksgurdldi | feat(List): add sum_zipWith_eq_finset_sum | ### **Description:** This PR adds the lemma `List.sum_zipWith_eq_finset_sum` to `Mathlib.Algebra.BigOperators.Group.Finset.Basic`. #### **Statement:** The sum of the `zipWith` operation on two lists equals the sum of applying the operation to corresponding elements of the two lists, indexed over the minimum of their lengths. #### **Formal Statement:** ```lean lemma sum_zipWith_eq_finset_sum [Inhabited α] [Inhabited β] [AddCommMonoid γ] {op : α → β → γ} (l : List α) (m : List β) : (List.zipWith op l m).sum = ∑ x ∈ (Finset.range (Nat.min l.length m.length)), op (l[x]!) (m[x]!) ``` #### **Remarks:** - This lemma provides a useful equivalence between `List.zipWith` and summation over a `Finset.range` indexed by `Nat.min l.length m.length`. - It can be helpful in algebraic manipulations involving list-based summations. #### **Dependencies:** No additional dependencies. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 43/0 | Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean | 1 | 1 | ['github-actions', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 14313 | grhkm21 | feat(RepresentationTheory/FdRep): FdRep is a full subcategory of Rep | ``` /-- Equivalence between `FDRep` and the full subcategory of finite dimensional `Rep`. -/ def equivFiniteDimensional : FDRep k G ≌ FullSubcategory (fun V : Rep k G ↦ FiniteDimensional k V) ``` | merge-conflict t-algebra t-category-theory new-contributor | 47/8 | Mathlib/RepresentationTheory/FDRep.lean | 1 | 19 | ['github-actions', 'grhkm21', 'joelriou', 'kim-em', 'mathlib-bors'] | nobody | 1 year ago | unknown | unknown |
| 14060 | YnirPaz | feat(SetTheory/Ordinal/Clubs): define club sets and prove basic properties | Create a file where club sets are defined and their basic properties are proven. I also created a new recursion principle for ordinals, bounded recursion. --- - [ ] depends on: #19189 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 315/3 | Mathlib.lean,Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Club.lean,Mathlib/SetTheory/Ordinal/Topology.lean | 6 | 93 | ['YaelDillies', 'YnirPaz', 'alreadydone', 'dupuisf', 'github-actions', 'mathlib4-dependent-issues-bot', 'vihdzp', 'zeramorphic'] | nobody | 1 year ago | unknown | unknown |
| 21959 | BGuillemet | feat(Topology/ContinuousMap): Stone-Weierstrass theorem for MvPolynomial | Add the subalgebra of multivariate polynomials and prove it separates points, on the same model as `ContinuousMap/Polynomial.lean`. Prove the Stone-Weierstrass theorem and some variations for multivariate polynomials. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology new-contributor | 285/1 | Mathlib.lean,Mathlib/Topology/ContinuousMap/MvPolynomial.lean,Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean | 3 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 15578 | znssong | feat(Function): Fixed points of function `f` with `f(x) >= x` | We added some lemmas of fixed points of function `f` with `f(x) >= x`, where `f : α → α` is a function on a finite type `α`. This will be needed in proof of Bondy-Chvátal theorem. --- See also branch `meow-sister/BondyChvatal`. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis new-contributor | 82/0 | Mathlib.lean,Mathlib/Dynamics/FixedPoints/Basic.lean,Mathlib/Dynamics/FixedPoints/Increasing.lean | 3 | 32 | ['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'urkud', 'vihdzp', 'znssong'] | nobody | 11 months ago | unknown | unknown |
| 21018 | markimunro | feat(Data/Matrix): add file with key definitions and theorems about elementary row operations | Prove that each elementary row operation is equivalent to a multiplication by an elementary matrix, has another row operation which inverts it, and that each elementary matrix has a left inverse.
This is a very large PR and I understand it will take time. This is my first one and will likely have issues but I will be ready to answer questions/fix them as soon as possible.
Co-authored-by: Christopher Lynch |
t-data enhancement new-contributor merge-conflict awaiting-author | 1230/0 | Mathlib.lean,Mathlib/Data/Matrix/ElementaryRowOperations.lean,Mathlib/Data/Matrix/GaussianElimination.lean,Mathlib/Data/Matrix/GaussianEliminationOld,Mathlib/Data/Matrix/oldnames,et --hard 18533caba32,lean-toolchain | 7 | 17 | ['chrisflav', 'eric-wieser', 'github-actions', 'j-loreaux', 'markimunro'] | nobody | 11 months ago | unknown | unknown |
| 15212 | victorliu5296 | feat: Add fundamental theorem of calculus-2 for Banach spaces | add the Mean Value Theorem for Banach spaces to the library and include reference for the theorem statement This theorem states that if `f : X → Y` is differentiable along the line segment from `a` to `b`, then the change in `f` equals the integral of its derivative along this path. This extends the mean value theorem to Banach spaces. This can be used for the eventual proof of the Newton-Kantorovich theorem with 1 constant contained inside the added reference. Here is the discussion on Zulipchat: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Contributing.20FTC-2.20for.20Banach.20spaces | t-measure-probability new-contributor merge-conflict awaiting-author t-analysis | 60/1 | Mathlib/MeasureTheory/Integral/FundThmCalculus.lean | 1 | 3 | ['github-actions', 'hrmacbeth', 'victorliu5296'] | nobody | 10 months ago | unknown | unknown |
| 22308 | plp127 | feat (Analysis/Convex): Generalize `Convex` lemmas to `StarConvex` | This PR generalizes many lemmas assuming `Convex 𝕜 s` to assume `StarConvex 𝕜 0 s`. --- - [x] depends on: #22421 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis new-contributor | 30/18 | Mathlib/Analysis/Convex/Gauge.lean,Mathlib/Analysis/Convex/GaugeRescale.lean,Mathlib/Analysis/Convex/Star.lean,Mathlib/Analysis/LocallyConvex/AbsConvexOpen.lean | 4 | 5 | ['Paul-Lez', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 21488 | imbrem | feat(CategoryTheory/Monoidal): premonoidal categories | Add support for premonoidal categories --- Still want to add support for: - Premonoidal braided/symmetric categories - The monoidal coherence theorem, which I've already ported in my `discretion` library - The `coherence` tactic, which should work fine for premonoidal categories too but wanted to get this in front of reviewers ASAP to make sure my general approach was alright [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory new-contributor | 900/361 | Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean,Mathlib/CategoryTheory/Bicategory/End.lean,Mathlib/CategoryTheory/GradedObject/Monoidal.lean,Mathlib/CategoryTheory/Localization/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/CategoryTheory/Monoidal/End.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Opposite.lean,Mathlib/CategoryTheory/Monoidal/Transport.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/MonoidalComp.lean,MathlibTest/StringDiagram.lean | 21 | 9 | ['YaelDillies', 'github-actions', 'grunweg', 'imbrem', 'kim-em', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 20873 | vbeffara | feat(Topology/Covering): path lifting and homotopy lifting | This proves the existence and uniqueness of path and homotopy lifts through covering maps. --- I tried to separate as much of the proof as possible into separate PRs (which are already in Mathlib now), but the proof here relies on a monolithic construction of an explicit lift along a well-chosen subdivision, in `partial_lift`, with associated definitions. Only one standalone lean file added. An older WIP PR #10084 by Junyan Xu @alreadydone proves similar results using a very similar construction for path lifting, with a different argument to obtain continuity for homotopy lifting. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology new-contributor | 281/1 | Mathlib.lean,Mathlib/Topology/Covering/Basic.lean,Mathlib/Topology/Covering/Lift.lean | 3 | 9 | ['alreadydone', 'github-actions', 'grunweg', 'vbeffara'] | nobody | 10 months ago | unknown | unknown |
| 20313 | thefundamentaltheor3m | feat(Data/Complex/Exponential): prove some useful results about the complex exponential. | This PR proves two basic results about the complex exponential: * `abs_exp_mul_I (x : ℂ) : abs (Complex.exp (I * x)) = Real.exp (-x.im)` * `one_sub_rexp_re_le_abs_one_sub_cexp (x : ℂ) : 1 - Real.exp x.re ≤ Complex.abs (1 - Complex.exp x)` Both results were proved as part of the sphere packing project. There's a chance they're too specific for mathlib, but I thought they were worth PRing anyway. Would it also be a good idea to tag `abs_exp_mul_I` with `simp`? Feedback/suggestions welcome. Note: `one_sub_rexp_re_le_abs_one_sub_cexp` was proved by Bhavik Mehta @b-mehta --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis new-contributor | 167/141 | Mathlib.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/ERealExp.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean,Mathlib/Data/Complex/Exponential/Defs.lean,Mathlib/Data/Complex/Exponential/Lemmas.lean,Mathlib/Data/Complex/ExponentialBounds.lean,Mathlib/Tactic/FunProp.lean,MathlibTest/Recall.lean,MathlibTest/positivity.lean | 10 | 12 | ['b-mehta', 'github-actions', 'kim-em', 'thefundamentaltheor3m', 'trivial1711'] | nobody | 10 months ago | unknown | unknown |
| 20730 | kuotsanhsu | feat(LinearAlgebra/Matrix/SchurTriangulation): prove Schur decomposition/triangulation | `Matrix.schur_triangulation` shows that a matrix over an algebraically closed field is unitarily similar to an upper triangular matrix --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 317/2 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/LinearAlgebra/Matrix/SchurTriangulation.lean,Mathlib/Logic/Equiv/Basic.lean | 4 | 14 | ['eric-wieser', 'github-actions', 'kim-em', 'kuotsanhsu'] | nobody | 10 months ago | unknown | unknown |
| 22809 | b-reinke | feat: Category algebras and path algebras | This PR defines the category algebra of a linear category and path algebras of quivers. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-category-theory new-contributor | 218/0 | Mathlib/Algebra/Ring/Assoc.lean,Mathlib/CategoryTheory/Linear/CategoryAlgebra.lean,Mathlib/Combinatorics/Quiver/PathAlgebra.lean,Mathlib/Data/DFinsupp/BigOperators.lean | 4 | 2 | ['b-reinke', 'github-actions'] | nobody | 10 months ago | unknown | unknown |
| 15654 | 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 [](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 | 9 months ago | unknown | unknown |
| 24008 | meithecatte | chore(EpsilonNFA): replace manual lemmas with @[simps] | --- [](https://gitpod.io/from-referrer/) | t-computability awaiting-author new-contributor | 2/24 | Mathlib/Computability/EpsilonNFA.lean | 1 | 2 | ['YaelDillies', 'github-actions', 'urkud'] | nobody | 9 months ago | unknown | unknown |
| 23349 | BGuillemet | feat: add LocallyLipschitzOn.lipschitzOnWith_of_isCompact and two small lemmas about Lipschitz functions | Main feat (in Mathlib/Topology/EMetricSpace/Basic.lean): if a function `f` from an extended pseudometric space to a pseudometric space is locally Lipschitz on a compact subset `s`, then `f` is Lipschitz on `s`. The theorem is true only when the codomain of `f` is a pseudometric space, so it needs imports from Mathlib/Topology/MetricSpace. Other small feat (in Mathlib/Analysis/Calculus/ContDiff/RCLike.lean): a function that is continuously differentiable on an open subset is locally Lipschitz on this subset. --- - [ ] depends on: #22890 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology large-import new-contributor | 59/4 | Mathlib/Analysis/Calculus/ContDiff/RCLike.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean | 2 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | PatrickMassot | 9 months ago | unknown | unknown |
| 12799 | jstoobysmith | feat(LinearAlgebra/UnitaryGroup): Add properties of Special Unitary Group | Add properties of the special unitary group, mirroring the properties of found in Algebra/Star/Unitary.lean. In particular, I add an instance of `specialUnitaryGroup` as a `Group`, `Star`, `InvolutiveStar`, and `StarMul`. --- [](https://gitpod.io/from-referrer/) | please-adopt t-algebra new-contributor merge-conflict awaiting-author | 78/0 | Mathlib/LinearAlgebra/UnitaryGroup.lean | 1 | 8 | ['chrisflav', 'jcommelin', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 20334 | miguelmarco | feat: allow polyrith to use a local Singular/Sage install | Try to call a local install of Singular (either standalone or inside Sage) to find the witness for polyrith before trying to call the online sage cell server. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-meta | 171/48 | Mathlib/Tactic/Polyrith.lean,scripts/polyrith_sage.py | 2 | 16 | ['eric-wieser', 'github-actions', 'hanwenzhu', 'kim-em', 'miguelmarco', 'mkoeppe'] | nobody | 8 months ago | unknown | unknown |
| 25218 | kckennylau | feat(AlgebraicGeometry): Tate normal form of elliptic curves | --- [](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 | 7 months ago | unknown | unknown |
| 10541 | xgenereux | feat(Algebra/SkewMonoidAlgebra/Basic): add SkewMonoidAlgebra | # Skew Monoid algebras This file presents a skewed version of `Mathlib.Algebra.MonoidAlgebra.Basic`. ## Definition We define `SkewMonoidAlgebra k G := G →₀ k` attached with a skewed convolution product. Here, the product of two elements `f g : SkewMonoidAlgebra k G` is the finitely supported function whose value at `a` is the sum of `f x * (x • g y)` over all pairs `x, y` such that `x * y = a`. This will be used in a later PR to define skew polynomial rings. Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- - [x] depends on: #15878 - [x] depends on: #19084 - [x] depends on: #22078 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra new-contributor | 1624/0 | Mathlib.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean,Mathlib/Algebra/SkewMonoidAlgebra/Lift.lean | 4 | 105 | ['AntoineChambert-Loir', 'YaelDillies', 'eric-wieser', 'fpvandoorn', 'github-actions', 'mariainesdff', 'mathlib4-dependent-issues-bot', 'mattrobball', 'xgenereux'] | AntoineChambert-Loir | 7 months ago | unknown | unknown |
| 10190 | jstoobysmith | feat(AlgebraicTopology): add Augmented Simplex Category | - Added the definition of the category FinLinOrd of finite linear ordered sets. - Added the definition of the augmented simplex category `AugmentedSimplexCategory`, and showed it is the Skeleton of FinLinOrd. - Showed that the category of augmented simplicial objects defined as a comma category is equivalent to the category of functors from `AugmentedSimplexCategory^\op` --- [](https://gitpod.io/from-referrer/) | t-algebraic-topology WIP t-category-theory new-contributor merge-conflict | 720/0 | Mathlib.lean,Mathlib/AlgebraicTopology/AugmentedSimplexCategory.lean,Mathlib/AlgebraicTopology/SimplicialObject.lean,Mathlib/Order/Category/FinLinOrd.lean | 4 | 5 | ['TwoFX', 'YaelDillies', 'joelriou', 'jstoobysmith'] | nobody | 7 months ago | unknown | unknown |
| 25486 | VTrelat | feat(SetTheory/ZFC/Integers): define integers in ZFC | Extend the model of ZFC with integers following the converse direction as for naturals. We first define a type and then build a set. We finally show that both representations have coercions in both direction: - define a proper type `ZFInt` representing integers based on `ZFNat × ZFNat` and following the usual construction of integers - add theorems on usual algebraic properties of integers - define a set `Int` and show that it matches-i.e. that it is isomorphic to-the type `ZFInt` --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #25483 - [ ] depends on: #25485 | merge-conflict t-set-theory blocked-by-other-PR new-contributor | 2003/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean,Mathlib/SetTheory/ZFC/Integers.lean | 4 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 25485 | VTrelat | feat(SetTheory/ZFC/Naturals): define natural numbers in ZFC | Extend the model of ZFC with naturals: - define a set `Nat` of naturals following the usual construction (∅, {∅}, {∅, {∅}}, ...) - define a proper type `ZFNat` representing naturals - add theorems on usual algebraic properties of naturals - provide a recursor and induction schemes to define/prove by induction --- [](https://gitpod.io/from-referrer/) - [ ] depend on: #25483 | merge-conflict t-set-theory new-contributor | 2095/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean,Mathlib/SetTheory/ZFC/Naturals.lean | 4 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 25484 | VTrelat | feat(SetTheory/ZFC/Booleans): define Boolean algebra in ZFC | Extend the model of ZFC with Boolean algebra: - define a set 𝔹 of booleans - define a proper type `ZFBool` representing booleans - add theorems on usual algebraic properties of booleans - provide usual boolean notations like `⊤`, `⊥`, `∧`, `∨`, etc. --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #25483 | merge-conflict t-set-theory blocked-by-other-PR new-contributor | 619/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean | 3 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 25238 | Hagb | feat(Tactic/ComputeDegree): add support for scalar multiplication with different types | It would be able to deal with `a • (X : R[X])` where `a : S` is in a different type `S` with `[SMulZeroClass S R]`. --- - [x] depends on: #25237 [](https://gitpod.io/from-referrer/) | merge-conflict t-meta new-contributor | 17/5 | Mathlib/Tactic/ComputeDegree.lean,MathlibTest/ComputeDegree.lean | 2 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 18646 | jxjwan | feat(RingTheory): isotypic components | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory new-contributor | 308/0 | Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/RingTheory/Isotypic.lean,Mathlib/RingTheory/SimpleModule.lean | 3 | 1 | ['github-actions'] | nobody | 6 months ago | unknown | unknown |
| 20671 | thefundamentaltheor3m | feat(Analysis/Asymptotics/SpecificAsymptotics): Proving that 𝛔ₖ(n) = O(nᵏ⁺¹) | This PR proves a result about the $\sigma_k(n)$ arithmetic function, namely, that it is $O\left(n^{k+1}\right)$. Main theorem: `theorem sigma_asymptotic (k : ℕ) : (fun n ↦ (σ k n : ℝ)) =O[atTop] (fun n ↦ (n ^ (k + 1) : ℝ))` This result was proved as part of the sphere packing project. --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor large-import merge-conflict awaiting-author | 29/0 | Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean | 1 | 3 | ['b-mehta', 'github-actions', 'mathlib4-merge-conflict-bot'] | b-mehta | 6 months ago | unknown | unknown |
| 27226 | xcloudyunx | feat(Combinatorics/SimpleGraph): Add Subgraph.inclusion_edge_apply_coe and inclusion_edgeSet_apply_coe | This PR continues the work from #25248. Original PR: https://github.com/leanprover-community/mathlib4/pull/25248 | awaiting-author t-combinatorics new-contributor | 14/0 | Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 1 | 3 | ['b-mehta', 'github-actions', 'xcloudyunx'] | b-mehta | 6 months ago | 204 days ago | 25 days |
| 22925 | ggranberry | feat(Mathlib/PlaceHolder/ToeplitzHausdorff): Toeplitz-Hausdorff | --- [](https://gitpod.io/from-referrer/) | WIP new-contributor will-close-soon awaiting-author help-wanted t-analysis | 411/0 | Mathlib/PlaceHolder/ToeplitzHausdorff.lean,Mathlib/PlaceHolder/ToeplitzHausdorff_v2.lean | 2 | 11 | ['faenuccio', 'ggranberry', 'github-actions'] | faenuccio | 6 months ago | unknown | unknown |
| 25483 | VTrelat | chore(Data/Set/Prod, SetTheory/ZFC/Basic): add theorem prod_subset_of_prod and extend ZFC model | Required by @eric-wieser in #24281 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 103/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean | 2 | 10 | ['Ruben-VandeVelde', 'VTrelat', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 20722 | ctchou | feat(Counterexamples): the Vitali set is non-measurable | --- [](https://gitpod.io/from-referrer/) | please-adopt t-measure-probability new-contributor merge-conflict awaiting-author | 258/3 | Counterexamples.lean,Counterexamples/VitaliSetNotMeasurable.lean,Mathlib/MeasureTheory/Measure/NullMeasurable.lean,docs/1000.yaml | 4 | 76 | ['ctchou', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'vihdzp'] | vihdzp | 6 months ago | unknown | unknown |
| 28502 | gilesgshaw | feat(Logic/Basic): avoid unnecessary uses of choice | Certain proofs are modified to remove a dependence on the axoim of choice --- - [ ] depends on: #28623 | blocked-by-other-PR new-contributor merge-conflict awaiting-author t-logic | 83/74 | Mathlib/Logic/Basic.lean | 1 | 7 | ['Ruben-VandeVelde', 'eric-wieser', 'gilesgshaw', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 199 days ago | 9 hours |
| 19582 | yu-yama | feat(GroupExtension/Abelian): define `OfMulDistribMulAction.equivH2` | Mainly defines: - `structure GroupExtension.OfMulDistribMulAction N G [MulDistribMulAction G N]`: group extensions of `G` by `N` where the multiplicative action of `G` on `N` is the conjugation - `structure GroupExtension.OfMulDistribMulActionWithSection N G [MulDistribMulAction G N]`: group extensions with specific choices of sections - `def GroupExtension.OfMulDistribMulAction.equivH2`: a bijection between the equivalence classes of group extensions and $H^2 (G, N)$ --- - [x] depends on: #20802 (split PR: contains changes to the `Defs` file) - [x] depends on: #20998 (split PR: mainly adds the `Basic` file) - [ ] depends on: #26670 (split PR: adds the first part of the `Abelian` file) Here is a relevant TODO in Mathlib: https://github.com/leanprover-community/mathlib4/blob/4e9fa40d7c480937e09cd6e47a591bd6f3b8be42/Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean#L46-L48 I would appreciate your comments. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR new-contributor | 750/14 | Mathlib.lean,Mathlib/GroupTheory/GroupExtension/Abelian.lean,Mathlib/GroupTheory/GroupExtension/Defs.lean,docs/references.bib | 4 | 5 | ['YaelDillies', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 28095 | Equilibris | Univ generic corec | Draft PR: Adding variable universe corecursor for PFunctor --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor | 321/70 | Mathlib/Data/PFunctor/Multivariate/Basic.lean,Mathlib/Data/PFunctor/Multivariate/M.lean,Mathlib/Data/TypeVec.lean | 3 | 7 | ['Equilibris', 'alexkeizer', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 28150 | Equilibris | chore: clean up proofs typevec proofs | While adding variable universe corecs I found a lot of theorems in typevec that could do with a bit of a clean-up --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 24/26 | Mathlib/Data/TypeVec.lean | 1 | 7 | ['Equilibris', 'alexkeizer', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 193 days ago | 13 days |
| 25488 | VTrelat | feat(SetTheory/ZFC/Rationals): define rationals in ZFC | Extend the model of ZFC with rationals: we define a proper type `ZFRat` representing integers based on pairs of `ZFInt` (enforcing the res to be nonzero) and following the usual construction of rationals. --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #25483 - [ ] depends on: #25485 - [ ] depends on: #25486 | merge-conflict t-set-theory blocked-by-other-PR new-contributor | 2070/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean,Mathlib/SetTheory/ZFC/Integers.lean,Mathlib/SetTheory/ZFC/Rationals.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 27403 | MoritzBeroRoos | fix: replace probably erroneous usage of ⬝ (with old \cdot) by · (with \centerdot) | Discussion at [zulip](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.5Ccdot.20!.3D.20.5Ccenterdot). Currently the abbreviations \cdot and \centerdot resolve to different, with the naked eye nearly undistinguishable symbols (despite the c in cdot surely standing for center..). This pr replaces instances of ⬝ where · was probably meant. All of the replacement is in comments, except for the file bench_summary.lean which is used for priting the github benchmark results. Since this file is about scientific notation of numbers, sure · was meant to be used, not a rectangle. [Related](https://github.com/leanprover-community/mathlib4/pull/27399) --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor | 195/195 | Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/DirectSum/Idempotents.lean,Mathlib/Algebra/Lie/Derivation/Basic.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/InnerProductSpace/Dual.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/SpecialFunctions/Complex/CircleAddChar.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Data/Matrix/Block.lean,Mathlib/Data/Matrix/ConjTranspose.lean,Mathlib/Data/Matrix/Hadamard.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Data/Matrix/Reflection.lean,Mathlib/Data/Matrix/RowCol.lean,Mathlib/Data/Matrix/Vec.lean,Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/LinearAlgebra/CrossProduct.lean,Mathlib/LinearAlgebra/Matrix/BilinearForm.lean,Mathlib/LinearAlgebra/Matrix/DotProduct.lean,Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean,Mathlib/LinearAlgebra/Matrix/Orthogonal.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/LinearAlgebra/Matrix/SchurComplement.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/LinearAlgebra/Matrix/Trace.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean,Mathlib/LinearAlgebra/Projectivization/Constructions.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean,Mathlib/NumberTheory/SiegelsLemma.lean,Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean,Mathlib/SetTheory/Ordinal/Veblen.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,Mathlib/Topology/Instances/Matrix.lean,scripts/bench_summary.lean | 49 | 5 | ['eric-wieser', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | 215 days ago | 7 days |
| 27399 | MoritzBeroRoos | chore: replace every usage of ⬝ᵥ (with old \cdot) by ·ᵥ (with \centerdot) | Discussion at [zulip](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.5Ccdot.20!.3D.20.5Ccenterdot). Currently the abbreviations `\cdot` and `\centerdot` resolve to different, with the naked eye nearly undistinguishable symbols (despite the c in cdot surely standing for `center`..): - `\cdot` gives ⬝ [U+2B1D](https://www.compart.com/en/unicode/U+2B1D) "Black Very Small Square" - `\centerdot` gives · [U+00B7](https://www.compart.com/en/unicode/U+00B7) "Middle Dot" Mathlib mostly uses the `\centerdot` variant, except for the dotProduct notation and some probably unsuspecting people wanting \centerdot but getting \cdot in their comments and 6 uses of a notation using the raw `\cdot` without any subscript at `Mathlib\Topology\Homotopy\Product.lean`. This PR replaces the dot product `⬝ᵥ` with its `\centerdot` counterpart `·ᵥ`. The related PR [here](https://github.com/leanprover/vscode-lean4/pull/639) can then overwrite the `\cdot` abbreviation, to produce the same symbol as the `centerdot` abbreviation does. --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor | 133/133 | Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Data/Matrix/Block.lean,Mathlib/Data/Matrix/ConjTranspose.lean,Mathlib/Data/Matrix/Hadamard.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Data/Matrix/Reflection.lean,Mathlib/Data/Matrix/RowCol.lean,Mathlib/Data/Matrix/Vec.lean,Mathlib/LinearAlgebra/CrossProduct.lean,Mathlib/LinearAlgebra/Matrix/BilinearForm.lean,Mathlib/LinearAlgebra/Matrix/DotProduct.lean,Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean,Mathlib/LinearAlgebra/Matrix/Orthogonal.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/LinearAlgebra/Matrix/SchurComplement.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/LinearAlgebra/Matrix/Trace.lean,Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean,Mathlib/LinearAlgebra/Projectivization/Constructions.lean,Mathlib/Topology/Instances/Matrix.lean | 25 | 6 | ['MoritzBeroRoos', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | 215 days ago | 7 days |
| 27479 | iu-isgood | feat: Abel's Binomial Theorem | We have formalized Abel's Binomial Theorem as part of an REU project. There are a few remaining sorrys, but we will finish them soon. I will edit this PR message later according to community rules. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data new-contributor | 326/0 | Mathlib/Data/Nat/Choose/AbelBinomial.lean | 1 | 28 | ['ElifUskuplu', 'FrankieNC', 'github-actions', 'iu-isgood'] | nobody | 6 months ago | unknown | unknown |
| 28279 | Equilibris | feat: univ generic W | A simple change making `W.ind`'s motive universe generic. --- A theorem `w_ind_eq` will now be needed, but this will depend on getting `dcongr_heq` merged, and hence I will do this in a separate PR. [](https://gitpod.io/from-referrer/) | t-data new-contributor | 16/21 | Mathlib/Data/PFunctor/Multivariate/W.lean | 1 | 8 | ['Equilibris', 'alexkeizer', 'github-actions'] | nobody | 6 months ago | unknown | unknown |
| 26462 | PSchwahn | feat(LinearAlgebra/Projection): add results about inverse of `Submodule.prodEquivOfIsCompl` | Add two theorems `Submodule.prodEquivOfIsCompl_symm_apply` and `Submodule.prodEquivOfIsCompl_symm_add`, which are API for `Submodule.prodEquivOfIsCompl`. We believe these theorems are useful; for example, we have used their statements in a [classification formalization project](https://github.com/LieLean/LowDimSolvClassification). Co-authored by: - [Viviana del Barco](https://github.com/vdelbarc) - [Gustavo Infanti](https://github.com/GuQOliveira) - [Exequiel Rivas](https://github.com/erivas) --- I am not sure whether the `prodEquivOfIsCompl_symm_apply` theorem should be tagged with `@[simp]`; this might lead to confluence issues. Opinions are welcome! [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 10/0 | Mathlib/LinearAlgebra/Projection.lean | 1 | 7 | ['PSchwahn', 'github-actions', 'joelriou', 'kckennylau'] | joelriou | 5 months ago | 176 days ago | 73 days |
| 28623 | gilesgshaw | feat(Logic/Basic): minor additions and simplification of proofs | Add new theorems and simplify proofs. Specifically, we add the family of related theorems `apply_dite_iff_exists`, `apply_dite_iff_forall`, `apply_ite_iff_and` and `apply_ite_iff_or`. For each other 'family' of theorems in the file that is analogous to the above, we do the following - Simplify proofs where possible, e.g. by appealing to the new theorems - Complete the family, if any of the corresponding four are missing - Rename to ensure consistency with the above pattern --- | merge-conflict t-logic new-contributor | 83/55 | Archive/Examples/IfNormalization/Result.lean,Archive/Examples/IfNormalization/WithoutAesop.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Notation/Indicator.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean,Mathlib/Logic/Basic.lean,Mathlib/MeasureTheory/Measure/WithDensity.lean,Mathlib/SetTheory/Ordinal/Notation.lean | 9 | 12 | ['eric-wieser', 'gilesgshaw', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] | awainverse | 5 months ago | 175 days ago | 10 days |
| 25778 | thefundamentaltheor3m | feat: Monotonicity of `setIntegral` for nonnegative functions | This PR makes it easier to prove monotonicity of the Bochner integral on sets for nonnegative functions by removing the stronger assumption required by the general monotonicity lemma that both of the functions being compared must be integrable. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-measure-probability new-contributor | 8/0 | Mathlib/MeasureTheory/Integral/Bochner/Set.lean | 1 | 6 | ['RemyDegenne', 'github-actions', 'sgouezel', 'thefundamentaltheor3m'] | nobody | 5 months ago | 264 days ago | 2 hours |
| 29588 | Periecle | feat(Analysis/Complex/Residue): Implement residue theory for complex functions at isolated singularities | # Add basic residue theory for complex functions This PR introduces the residue theory implementation in mathlib. ## Main additions - **`HasIsolatedSingularityAt f c`**: Predicate for functions with isolated singularities at point `c` - **`residue f c hf`**: The residue of `f` at isolated singularity `c`, defined via circle integrals - **Radius independence**: `residue_eq_two_pi_I_inv_smul_circleIntegral` - residue equals normalized circle integral for any valid radius - **Holomorphic residues**: `residue_of_holomorphic` - functions holomorphic in a neighborhood have zero residue - **Simple pole formula**: `residue_simple_pole` - for `f(z) = (z-c)⁻¹ * g(z)`, residue equals `g(c)` ## Implementation notes - Builds on existing circle integral infrastructure in `CauchyIntegral.lean` - Uses `Classical.choose` to extract witness radius from isolated singularity condition - Comprehensive documentation with mathematical context and examples - Establishes foundation for residue theorem, argument principle, and other applications ## Examples included - `residue(1/z, 0) = 1` (canonical simple pole) - Radius independence demonstration - Zero residues for holomorphic functions This provides the essential building blocks for complex analysis and first step to formalize residue theory. | awaiting-author t-analysis new-contributor | 383/0 | Mathlib/Analysis/Complex/Residue/Basic.lean | 1 | 17 | ['Periecle', 'github-actions', 'hrmacbeth', 'llllvvuu', 'loefflerd'] | nobody | 5 months ago | unknown | unknown |
| 29657 | jcreinhold | feat(CategoryTheory/MarkovCategory): add Markov categories | This PR adds Markov categories to the category theory library. A Markov category is a symmetric monoidal category where every object has canonical copy and delete morphisms that form commutative comonoids. ## What this gives mathlib In a Markov category, morphisms model probabilistic processes. The copy morphism `X → X ⊗ X` creates perfect correlation (both outputs always equal). The delete morphism `X → I` marginalizes (sums/integrates out variables). This structure captures probability theory categorically. The same theorem proves results for: - Finite probability (stochastic matrices) - Measure theory (Markov kernels) - Kleisli categories of probability monads Fritz (2020) used this to prove categorical versions of Fisher-Neyman, Basu's theorem, and other core statistics results. ## Implementation - `MarkovCategory`: Extends `SymmetricCategory` with canonical comonoid structure - `copyMor X : X ⟶ X ⊗ X` and `delMor X : X ⟶ I` for each object - Coherence axioms: commutativity, counitality, coassociativity - Compatibility with tensor products Key design point: The comonoid structure is canonical (fields of the typeclass), not chosen. This matches the probability interpretation where there's exactly one way to copy/marginalize. ## Examples included 1. Cartesian categories: Every cartesian monoidal category forms a Markov category where copy is the diagonal `x ↦ (x,x)` and delete is the terminal morphism. All morphisms are deterministic. 2. FinStoch: Objects are finite types. Morphisms are stochastic matrices (rows sum to 1). This models finite probability spaces with the usual matrix multiplication for composition. ## Scope and review notes This PR provides the basic structure only. Future PRs would add: - Conditional independence - Sufficient statistics - Connection to measure-theoretic probability - More examples (Kleisli categories, Gaussian categories) I'm neither an expert in this material nor in Lean; I've only read a few papers on Markov categories and have gone through tutorial material in Lean. Please review for mathematical correctness and idiomatic Lean. I kept this PR small to check if mathlib wants this addition and to ensure it meets repository standards. ## Why add this now Markov categories provide a useful abstraction level for probability in type theory. Adding it to mathlib enables future work on categorical probability and statistics. In particular, I'm working on a probabilistic programming library and would like to write some proofs using these constructs. ## References - Fritz, T. (2020). [A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics](https://arxiv.org/abs/1908.07021). *Advances in Mathematics*, 370, 107239. - Cho, K., & Jacobs, B. (2019). [Disintegration and Bayesian inversion via string diagrams](https://arxiv.org/abs/1709.00322). *Mathematical Structures in Computer Science*, 29(7), 938-971. --- All definitions include docstrings. The PR has tests for the core functionality. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 2414/7 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Basic.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Deterministic.lean,Mathlib/CategoryTheory/MarkovCategory/Basic.lean,Mathlib/CategoryTheory/MarkovCategory/Cartesian.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Basic.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Braided.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/CopyDiscard.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Markov.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Bimon_.lean,Mathlib/CategoryTheory/Monoidal/CommComon_.lean,Mathlib/CategoryTheory/Monoidal/Comon_.lean,MathlibTest/CategoryTheory/MarkovCategory.lean,docs/references.bib | 16 | 28 | ['github-actions', 'jcreinhold', 'joelriou', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 164 days ago | 42 minutes |
| 26178 | ppls-nd-prs | feat(CategoryTheory/Limits): Fubini for products | We show that the product of products is a product indexed by the sigma type. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 17/0 | Mathlib/CategoryTheory/Limits/Shapes/Products.lean | 1 | 6 | ['chrisflav', 'github-actions', 'leanprover-community-bot-assistant', 'ppls-nd-prs', 'robin-carlier'] | nobody | 5 months ago | 256 days ago | 12 hours |
| 28630 | Antidite | feat(Archive/Imo): right isosceles configuration in the complex plane | feat(Archive/Imo): right isosceles configuration in the complex plane This adds `Archive/Imo/Imo1975Q3.lean`, formalizing a triangle configuration with points A=0, B=1, C=z and auxiliary points R, P, Q built via complex rotations and sine-based scale factors. Main results: * `angle_and_distance`: ∠QRP = π/2 and dist Q R = dist R P. * Key identity `QRP_rot90`: (Q z).z − R.z = e^{iπ/2} · ((P z).z − R.z). Design/Style: * Minimal imports; module docstring; semantic lemma names; all definitions and theorems live under the namespace `IMO.TriangleConfig`. Moves: - (none) Deletions: - (none) --- [](https://gitpod.io/from-referrer/) | IMO awaiting-author new-contributor | 196/0 | Archive.lean,Archive/Imo/Imo1975Q3.lean | 2 | 36 | ['Antidite', 'LLaurance', 'github-actions', 'jsm28'] | jsm28 | 4 months ago | 150 days ago | 46 days |
| 29926 | jcreinhold | feat(CategoryTheory/MarkovCategory): add basic finite stochastic matrices definitions to Markov category | This PR introduces FinStoch, the category of finite stochastic matrices, as a concrete example of a Markov category. This PR builds on #29925, #29939, and #29919 and was split up from #29657. ## Main additions ### 1. Core definitions (`FinStoch/Basic.lean`) - `StochasticMatrix m n`: Matrices where rows sum to 1, representing conditional probabilities P(j|i) - `FinStoch`: The category with finite types as objects and stochastic matrices as morphisms - `DetMorphism`: Deterministic matrices (exactly one 1 per row) with their underlying functions - Composition: Matrix multiplication preserves row-stochasticity via the Chapman-Kolmogorov equation Key design choices: - Row-stochastic convention: entry (i,j) is P(output=j | input=i) - Deterministic morphisms tracked separately for structural isomorphisms ### 2. Monoidal structure (`FinStoch/Monoidal.lean`) Implements tensor products modeling independent parallel processes: - Tensor on objects: Cartesian product of finite types - Tensor on morphisms: Kronecker product P((j₁,j₂)|(i₁,i₂)) = P(j₁|i₁) × P(j₂|i₂) - Structural morphisms: Associator, unitors use deterministic permutations - Coherence**: Pentagon and triangle identities verified computationally ## Mathematical significance FinStoch provides the canonical example of a Markov category: - Morphisms: Stochastic matrices/Markov chains - Composition: Chapman-Kolmogorov equation for multi-step transitions - Tensor: Independent parallel processes This models finite probability spaces categorically, where: - Objects represent sample spaces - Morphisms represent probabilistic transitions - Tensor products model independence ## References Fritz (2020) - [ ] depends on: #29925 | merge-conflict t-category-theory new-contributor | 1437/0 | Mathlib.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Basic.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Deterministic.lean,Mathlib/CategoryTheory/MarkovCategory/Basic.lean,Mathlib/CategoryTheory/MarkovCategory/Cartesian.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Basic.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Monoidal.lean,MathlibTest/CategoryTheory/MarkovCategory.lean,docs/references.bib | 9 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 16773 | arulandu | feat(Probability/Distributions): formalize Beta distribution | Formalize Beta distribution, using Gamma distribution as a reference. Added real-valued beta wrapper, in the manner of gamma. Thanks to @EtienneC30 for help with casting real <-> complex. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-measure-probability | 286/1 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean,Mathlib/Probability/Distributions/Beta.lean | 3 | 50 | ['EtienneC30', 'arulandu', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | arulandu | 4 months ago | unknown | unknown |
| 30460 | janithamalith | feat(Nat): add lemma nat_card_orbit_mul_card_stabilizer_eq_card_group | Added a lemma `nat_card_orbit_mul_card_stabilizer_eq_card_group` which is the Nat.card version of MulAction.card_orbit_mul_card_stabilizer_eq_card_group --- [](https://gitpod.io/from-referrer/) | awaiting-author t-group-theory new-contributor | 6/0 | Mathlib/GroupTheory/GroupAction/CardCommute.lean | 1 | 17 | ['github-actions', 'kckennylau', 'plp127', 'tb65536'] | tb65536 | 4 months ago | 134 days ago | 8 days |
| 25225 | xcloudyunx | feat(Combinatorics/SimpleGraph): Eulerian walk in connected graph contains all vertices | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-combinatorics new-contributor | 16/0 | Mathlib/Combinatorics/SimpleGraph/Trails.lean | 1 | 6 | ['IvanRenison', 'github-actions', 'vlad902'] | kmill | 4 months ago | unknown | unknown |
| 30828 | DeVilhena-Paulo | feat: implementation of `Finmap.merge` | The main contribution of this pull request is the implementation of a `merge` function for finite maps (`Finmap`). The construction relies on the definition of a `merge` function for association lists (`AList`). There is also a side (unrelated) contribution on `Mathlib/Data/List/Permutation.lean`: the addition of a theorem about the permutation of a list with a head element (that is, a list of the form `a :: l`). --- [](https://gitpod.io/from-referrer/) | t-data new-contributor | 449/3 | Mathlib/Data/Finmap.lean,Mathlib/Data/List/AList.lean,Mathlib/Data/List/Permutation.lean,Mathlib/Data/List/Sigma.lean | 4 | 1 | ['github-actions'] | nobody | 4 months ago | unknown | unknown |
| 28676 | sun123zxy | feat(NumberTheory/ArithmeticFunction): wrap `Nat.totient` as an `ArithmeticFunction` | This wraps the Euler's totient function `Nat.totient` into a new `ArithmeticFunction` `ϕ`, with some basic identities such as `ϕ * ζ = id` and `μ * id = ϕ.` --- We use the notation `ϕ` to distinguish from `Nat.totient`'s notation `φ`, however this might be controversial. Suggestions are welcome! [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor large-import merge-conflict awaiting-author | 45/5 | Mathlib/NumberTheory/ArithmeticFunction.lean | 1 | 19 | ['MichaelStollBayreuth', 'SnirBroshi', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'sun123zxy'] | MichaelStollBayreuth | 4 months ago | 142 days ago | 47 days |
| 30299 | franv314 | feat(Topology/Instances): Cantor set | Prove that the Cantor set has empty interior and the cardinality of the continuum as discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/A.20few.20results.20about.20the.20Cantor.20set/with/543560670) Moves: - Mathlib.Topology.Instances.CantorSet -> Mathlib.Topology.Instances.CantorSet.Basic --- [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict file-removed awaiting-author t-topology | 355/2 | Mathlib.lean,Mathlib/Topology/Instances/CantorSet/Basic.lean,Mathlib/Topology/Instances/CantorSet/Cardinality.lean,Mathlib/Topology/Instances/CantorSet/Lemmas.lean | 4 | 5 | ['github-actions', 'grunweg', 'kckennylau', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | 147 days ago | 9 minutes |
| 30303 | franv314 | chore(Topology/Instances): add deprecated module | Add deprecated module to moved Cantor set file. --- - [ ] depends on: #30299 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor | 486/124 | Mathlib.lean,Mathlib/Topology/Instances/CantorSet.lean,Mathlib/Topology/Instances/CantorSet/Basic.lean,Mathlib/Topology/Instances/CantorSet/Cardinality.lean,Mathlib/Topology/Instances/CantorSet/Lemmas.lean | 5 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | 147 days ago | 8 seconds |
| 29871 | zach1502 | feat(Matrix/Transvection): Gauss pivot determinant identity and pivot preservation | This PR adds two lemmas formalizing standard Gaussian pivot identities: * `Matrix.Transvection.listTransvecCol_mul_mul_listTransvecRow_pivot`: After applying the canonical left/right transvection products that clear the last column and row, the pivot (bottom-right) entry of a matrix is unchanged. Marked `@[simp]`. * `Matrix.Transvection.det_eq_detTopLeft_mul_pivot`: If the pivot entry is nonzero, then the determinant of the matrix factors as the determinant of the top-left block times the pivot entry, after performing the canonical transvections. This is the usual Gauss–pivot determinant identity. * Added simple usage tests in `MathlibTest/matrix.lean` to check that the new lemmas are usable by `simp`/`simpa`. --- --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 94/0 | Mathlib/LinearAlgebra/Matrix/Transvection.lean,MathlibTest/matrix.lean | 2 | 3 | ['github-actions', 'riccardobrasca', 'zach1502'] | nobody | 4 months ago | 120 days ago | 41 days |
| 30158 | nicolaviolette | feat: combinatorics simplegraph basic | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-combinatorics new-contributor | 9/4 | Mathlib/Combinatorics/SimpleGraph/Basic.lean | 1 | 3 | ['b-mehta', 'github-actions'] | b-mehta | 3 months ago | 119 days ago | 31 days |
| 26901 | 5hv5hvnk | feat: a simproc version of `compute_degree` | Wrap `compute_degree` in a simproc for use by simp. Closes #22219. --- | awaiting-CI new-contributor merge-conflict awaiting-author t-meta | 198/0 | Mathlib.lean,Mathlib/Tactic/Simproc/PolynomialDegree.lean,MathlibTest/polynomial_degree_simproc.lean | 3 | 19 | ['5hv5hvnk', 'YaelDillies', 'adomani', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30150 | 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` [](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 | 3 months ago | 150 days ago | 8 hours |
| 15651 | 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 --- [](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 | 3 months ago | unknown | unknown |
| 15649 | 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] [](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 | 3 months ago | unknown | unknown |
| 5919 | MithicSpirit | feat: implement orthogonality for AffineSubspace | Define `AffineSubspace.orthogonal` and `AffineSubspace.IsOrtho`, as well as develop an API emulating that of `Submodule.orthogonal` and `Submodule.IsOrtho`, respectively. Additionally, provide some relevant lemmas exclusive to affine subspaces, which are mostly to do with the relationship between orthogonality and `AffineSubspace.Parallel`. Closes #5539 --- Still WIP as I need to add more docstrings as well as notations for the new definitions. [](https://gitpod.io/from-referrer/) | WIP new-contributor merge-conflict help-wanted t-analysis | 287/0 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/AffineSubspace.lean | 2 | 7 | ['MithicSpirit', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | MithicSpirit | 3 months ago | unknown | unknown |
| 13442 | dignissimus | feat: mabel tactic for multiplicative abelian groups | Mabel tactic for multiplicative abelian groups (#10361) --- [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict modifies-tactic-syntax awaiting-author help-wanted t-meta | 439/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/MAbel.lean,MathlibTest/mabel.lean | 4 | 11 | ['BoltonBailey', 'dignissimus', 'github-actions', 'joneugster', 'kbuzzard', 'mathlib4-merge-conflict-bot'] | joneugster | 3 months ago | unknown | unknown |
| 14237 | js2357 | feat: Define the localization of a fractional ideal at a prime ideal | Define the localization of a fractional ideal at a prime ideal, and prove some basic properties. --- This PR is part 3 out of 4 of a proof of `isDedekindDomain_iff_isDedekindDomainDvr`. Part 4 is available here: #14242 - [x] depends on: #14099 Part 1 - [x] depends on: #14216 Part 2 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 230/0 | Mathlib.lean,Mathlib/RingTheory/FractionalIdeal/LocalizedAtPrime.lean,Mathlib/RingTheory/Localization/Basic.lean | 3 | 22 | ['Vierkantor', 'YaelDillies', 'github-actions', 'js2357', 'kbuzzard', 'leanprover-community-bot-assistant', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] | Vierkantor | 3 months ago | unknown | unknown |
| 15224 | AnthonyBordg | feat(CategoryTheory/Sites): covering families and their associated Grothendieck topology | Define covering families on a category and their associated Grothendieck topology by using the API for `Coverage`. Give an explicit characterization of the covering sieves of the said topology. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 112/0 | Mathlib.lean,Mathlib/CategoryTheory/Sites/CoveringFamilies.lean | 2 | 21 | ['AnthonyBordg', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 17587 | kmill | feat: Sym2-as-Finset theory | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 105/3 | Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/RingTheory/Polynomial/Vieta.lean | 4 | 11 | ['FordUniver', 'YaelDillies', 'github-actions', 'kmill', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 18630 | tomaz1502 | feat(Computability.Timed): Formalization of runtime complexity of List.mergeSort | This PR adds the formalization of the runtime complexity of the merge sort algorithm, defined in `Data/List/Sort`. Requires: https://github.com/leanprover-community/mathlib4/pull/15451 References: - Previous PR on mathlib3: https://github.com/leanprover-community/mathlib3/pull/14494/ - First discussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/BSc.20Final.20Project/near/220647062 - Second disussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Formalization.20of.20Runtime.20Complexity.20of.20Sorting.20Algorithms/near/284184450 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability new-contributor | 526/0 | Mathlib.lean,Mathlib/Computability/Timed/InsertionSort.lean,Mathlib/Computability/Timed/Merge.lean,Mathlib/Computability/Timed/MergeSort.lean,Mathlib/Computability/Timed/Split.lean | 5 | 9 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 20648 | 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 [](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 | 3 months ago | unknown | unknown |
| 21903 | yhtq | feat: add from/toList between `FreeSemigroup` and `List` with relative theorems | Add from/toList between `FreeSemigroup` and `List` with relative theorems, as well as an incidental definition of lexicographic order on `FreeSemigroup`. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor awaiting-CI large-import merge-conflict | 169/0 | Mathlib/Algebra/Free.lean | 1 | 12 | ['YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22159 | shetzl | feat: add definition of pushdown automata | Add the definition of pushdown automata and their two acceptance conditions: acceptance based on empty stack and acceptance based on final state.
Co-authored-by: Tobias Leichtfried |
merge-conflict t-computability awaiting-author new-contributor | 70/0 | Mathlib.lean,Mathlib/Computability/PDA.lean | 2 | 35 | ['YaelDillies', 'github-actions', 'madvorak', 'mathlib4-merge-conflict-bot', 'shetzl'] | nobody | 3 months ago | unknown | unknown |
| 22302 | 658060 | feat: add `CategoryTheory.Topos.Power` | This is a continuation of #21281 with the end goal of defining topoi in Mathlib. It introduces the notion of a power object in a category with a subobject classifier, which is a special case of an internal hom. The definition `HasPowerObjects C` contained in this PR is all that remains before `IsTopos C` can be defined. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 312/0 | Mathlib.lean,Mathlib/CategoryTheory/Topos/Power.lean | 2 | 3 | ['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot'] | b-mehta | 3 months ago | unknown | unknown |
| 22314 | shetzl | feat: add leftmost derivations for context-free grammars | Leftmost derivations are often easier to reason about than arbitrary derivations. This PR adds leftmost variants of Rewrites, Produces and Derives to the existing definition of context-free grammars and proves that a string of terminals can be derived iff it can be leftmost derived.
Co-authored-by: Tobias Leichtfried |
merge-conflict t-computability awaiting-author new-contributor | 383/0 | Mathlib.lean,Mathlib/Computability/LeftmostDerivation.lean | 2 | 55 | ['YaelDillies', 'github-actions', 'madvorak', 'mathlib4-merge-conflict-bot', 'shetzl'] | YaelDillies | 3 months ago | unknown | unknown |
| 22790 | mhk119 | feat: Extend `taylor_mean_remainder_lagrange` to `x < x_0` | The `taylor_mean_remainder_lagrange` theorem has the assumption that $x_0 < x$. In many applications, we need $x < x_0$ and one cannot use the current version to obtain this (see [zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Taylor's.20theorem)). This PR introduces a set of theorems that push negations through Taylor expansions so that one can extend `taylor_mean_remainder_lagrange` to the case when $x < x_0$. These theorems should also be useful elsewhere since they are quite general. | merge-conflict awaiting-author t-analysis new-contributor | 111/1 | Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/Calculus/Taylor.lean | 3 | 13 | ['Paul-Lez', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'mhk119'] | nobody | 3 months ago | unknown | unknown |
| 24333 | xcloudyunx | feat(Combinatorics/SimpleGraph): cycle graph implementation for generic vertex types | The existing `cycleGraph` implementation under Combinatorics/SimpleGraph/Circulant.lean only operates over `Fin n`. This PR implements a cycle graph implementation over any generic vertex type. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-combinatorics new-contributor | 187/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cycle.lean | 2 | 42 | ['IvanRenison', 'github-actions', 'mathlib4-merge-conflict-bot', 'vlad902'] | kmill | 3 months ago | unknown | unknown |
| 25739 | literandltx | feat(NumberTheory/LegendreSymbol): Add sqrt‐of‐residue theorems for p=4k+3 and p=8k+5 | Add a new file `QuadraticResidueRoots.lean` under `Mathlib/NumberTheory/LegendreSymbol/` that proves two explicit “square-root of quadratic residue” theorems for primes of the specific form. - **`exists_sqrt_of_residue_mod4_eq3`** for primes `p = 4*k + 3` - **`exists_sqrt_of_residue_mod8_eq5`** for primes `p = 8*k + 5` It also introduces the helper lemmas `euler_criterion_traditional` and `legendreSym.at_two_mod8_eq_5`. Import lines in `Mathlib.lean` and `Mathlib/NumberTheory/LegendreSymbol/Basic.lean` have been updated accordingly. | merge-conflict awaiting-author t-number-theory new-contributor | 217/0 | Mathlib.lean,Mathlib/NumberTheory/LegendreSymbol/Basic.lean,Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean,Mathlib/NumberTheory/LegendreSymbol/QuadraticResidueRoots.lean | 4 | 3 | ['github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | literandltx | 3 months ago | unknown | unknown |
| 26165 | oliver-butterley | feat(MeasureTheory.VectorMeasure): add lemma which shows that variation of a `ℝ≥0∞` VectorMeasure is equal to itself | Add a lemma for the variation of a VectorMeasure which tells that if `μ` is `VectorMeasure X ℝ≥0∞` then `variation μ = μ`. Co-authored-by: @yoh-tanimoto - [ ] depends on: #26160 --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-measure-probability | 467/0 | Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Lemmas.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 241 days ago | 15 days |
| 26300 | igorkhavkine | feat(Analysis/Calculus/FDeriv): continuous differentiability from continuous partial derivatives on an open domain in a product space | If a function `f : E × F → G` is continuously differentiable, then its partial derivatives along `E` and `F` are also continuous. The non-trivial converse implication holds when the partial derivatives are continuous on an open domain, and they can be added together to give the total derivative of `f`. See this [#mathlib4 > Partial derivatives @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Partial.20derivatives/near/520995477) and the containing thread for some discussion. The PR creates a new import (`Mathlib.Analysis.Calculus.FDeriv.Partial`), where other results about partial derivatives could go in the future. --- *this is the migration of #25304 to the PR-from-fork workflow* - [x] depends on: #25564 - [x] depends on: #26273 [](https://gitpod.io/from-referrer/) | WIP new-contributor merge-conflict awaiting-author t-analysis | 468/0 | Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/Partial.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean | 3 | 21 | ['YaelDillies', 'agjftucker', 'github-actions', 'igorkhavkine', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 3 months ago | 201 days ago | 44 days |
| 26594 | metakunt | feat(Algebra/Polynomial/ZMod): Add Polynomial.equiv_of_nat_of_polynomial_zmod | This adds an explicit bijection between the naturals and $$\mathbb{Z}/n\mathbb{Z}[X]$$ in a canonical way. --- I feel that some API is missing to make the theorem shorter, I have no idea what lemmas to extract though. Also I don't know when to use spaces and when not, so I did it best effort. | merge-conflict awaiting-author t-algebra new-contributor | 465/0 | Mathlib.lean,Mathlib/Algebra/Polynomial/ZMod.lean | 2 | 3 | ['Ruben-VandeVelde', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 220 days ago | 25 days |
| 26757 | fweth | feat(CategoryTheory/Topos): define elementary topos | This commit begins the formalization of the notion of an *elementary topos*, following the definition in \[Mac Lane & Moerdijk, *Sheaves in Geometry and Logic* (1992), Ch. IV, Section 1]. It introduces the file `Mathlib/CategoryTheory/Topos/Basic.lean`, which currently includes: * The definition of an elementary topos. * Proof that the power object map is a functor * Theorem about pullbacks of characterstic maps Subobject classifiers, which are used in the definition, have already been defined in `CategoryTheory/Topos/Classifier.lean` Work in progress: further formalization of the section is planned. Questions: * Should the definition of power objects be separated into its own file/module, perhaps under `CategoryTheory/Topos/PowerObject.lean`? * Is the notation `P` / `P_morph` / `P_functor` for the power object functor on objects / morphisms / total acceptable? * Should the comments and docstrings rather use the notation from the book, where `g ∘ f` denotes arrow composition from righ to left, or the Lean variant `f ≫ g`? Klaus Gy klausgy@gmail.com --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 401/66 | Mathlib.lean,Mathlib/CategoryTheory/Closed/PowerObjects.lean,Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean,Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equalizer.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/CategoryTheory/Topos/Classifier.lean | 9 | 17 | ['fweth', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | joelriou | 3 months ago | 134 days ago | 61 days |
| 27155 | Pjotr5 | feat: Shearer's bound on the independence number of triangle free graphs | I added the file IndependenceNumber.lean to the Mathlib.Combinatorics.SimpleGraph.Triangle folder. It contains a proof of a theorem by Shearer on the independence number of triangle-free graphs . I was told this might be useful to add to Mathlib a Zullip thread linked [here](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Convexity.20of.20a.20specific.20function/with/510469526). I tried to comply as much as I could with the Mathlib style guide, but I realise that there is probably still a significant amount of editing to be done. For one thing: there are probably some lemmas and theorems in there that might be better suited in other files, but since this is my first PR I though I would all put it in one file before starting to edit a bunch of files. I was also advised to split up the file into multiple smaller PRs, but since everything is basically serving this one proof I could not really find a natural way to do that. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-combinatorics new-contributor | 1266/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/IndependenceNumber.lean | 2 | 10 | ['Pjotr5', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 27753 | YunkaiZhang233 | feat(CategoryTheory): implemented proofs for factorisation categories being equivalent to iterated comma categories in two ways | --- Completed one of the tasks in TODOs, shown and implemented the details for (X/C)/f ≌ Factorisation f ≌ f/(C/Y). This is migrated from my previous PR #22390 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 70/1 | Mathlib/CategoryTheory/Category/Factorisation.lean | 1 | 13 | ['YunkaiZhang233', 'b-mehta', 'github-actions', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | nobody | 3 months ago | 215 days ago | 47 minutes |
| 27850 | fyqing | feat: 0-dimensional manifolds are discrete and countable | This is the converse direction of the classification of 0-dimensional manifolds. The other direction was shown in #22105. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-differential-geometry new-contributor | 80/0 | Mathlib.lean,Mathlib/Geometry/Manifold/ZeroDim.lean | 2 | 14 | ['fyqing', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'tb65536'] | grunweg | 3 months ago | 214 days ago | 1 hour |
| 28125 | nonisomorphiclinearmap | feat(Combinatorics): basic definition of simplicial complexes | This PR introduces the basic definition of a finite (abstract) simplicial complex, located in Mathlib/Combinatorics/SimplicialComplex/Basic.lean. --- This is our first contribution to mathlib. This work was done as part of the Fields Institute Summer Undergraduate Program on formalization in topological combinatorics. Eventually, we aim to formalize Lovasz's proof of the Kneser Conjecture and this is a small stepping stone in that direction. Some other commits will shortly depend on this one. We would like to acknowledge the Fields Institute for Research in Mathematical Sciences for their sponsorship. We would also like to thank our supervisors, Professor Chris Kapulkin and Mr. Daniel Carranza, for their guidance and support throughout this project. We would also like to thank our group members Tom Lindquist and Quang Minh Nguyen for our fruitful discussions. | merge-conflict t-combinatorics new-contributor | 374/0 | Mathlib.lean,Mathlib/Combinatorics/SimplicialComplex/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Category.lean,Mathlib/Combinatorics/SimplicialComplex/FacePoset.lean,Mathlib/Combinatorics/SimplicialComplex/Hom.lean | 5 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | awainverse | 3 months ago | 104 days ago | 99 days |
| 28530 | nonisomorphiclinearmap | feat(Combinatorics/SimplicialComplex/Topology): add standard simplices and geometric realisation (colimit + functoriality) | Introduce the standard simplex on a finite vertex set and build the geometric realisation |X| of a simplicial complex. Prove that |X| is the colimit of the face diagram δ_X : X.faces ⥤ TopCat, and define the induced map on realisations |φ| : |X| ⟶ |Y| for a simplicial map φ. Show that the abstract map from colimit functoriality agrees with the concrete push-forward of barycentric coordinates. Package these into a functor SimplicialComplexCat ⥤ TopCat. --- This is our first contribution to mathlib. This work was done as part of the Fields Institute Summer Undergraduate Program on formalization in topological combinatorics. Eventually, we aim to formalize Lovasz's proof of the Kneser Conjecture and this lays the groundwork to do this. We would like to acknowledge the Fields Institute for Research in Mathematical Sciences for their sponsorship. We would also like to thank our supervisors, Professor Chris Kapulkin and Mr. Daniel Carranza, for their guidance and support throughout this project. I would also like to thank our group members Sebastian Kumar, Tom Lindquist and Quang Minh Nguyen for our fruitful discussions. - [ ] depends on: #28125 | merge-conflict blocked-by-other-PR t-combinatorics new-contributor | 1826/0 | Mathlib.lean,Mathlib/Combinatorics/SimplicialComplex/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Category.lean,Mathlib/Combinatorics/SimplicialComplex/FacePoset.lean,Mathlib/Combinatorics/SimplicialComplex/Hom.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Colimit.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Diagram.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Functor.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Map.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/Simplex.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/SimplexMap.lean | 12 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 28871 | JaafarTanoukhi | feat(Combinatorics/Digraph): Tournaments | Define orientations and tournaments. Related to #26771.
Co-authored-by: Rida Hamadani |
merge-conflict t-combinatorics new-contributor | 62/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Digraph/Tournament.lean | 3 | 6 | ['JaafarTanoukhi', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'mathlib4-merge-conflict-bot'] | kmill | 3 months ago | 104 days ago | 71 days |
| 29947 | JaafarTanoukhi | feat(Combinatorics/Digraph): Maps | Ported `SimpleGraph/Maps.lean` to `Digraph/Maps.lean` for future PRs related to issue #[26771](https://github.com/leanprover-community/mathlib4/issues/26771) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics new-contributor | 476/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Maps.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | awainverse | 3 months ago | 104 days ago | 54 days |
| 30230 | CoolRmal | feat(MeasureTheory): Basic properties of the integral against a vector measure with a bilinear form. | Create a folder named Integral in the folder about vector measures. Define the integral of a function against a vector measure with a bilinear form, and prove that integral is a linear operator on functions, bilinear forms, and vector measures, respectively. Several useful lemmas are added into the file about variations of a vector measure (e.g. triangle inequality). --- - [ ] depends on: #28499 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-measure-probability | 1353/0 | Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Integral/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Integral/L1.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Lemmas.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 14704 | Command-Master | feat(FieldTheory): define typeclass for simple extensions, and prove some properties | Define `SimpleExtension F K`, which says that `K` is a simple field extension of `F`, and show that together with transcendentality it implies `IsFractionRing F[X] K`. --- - [x] depends on: #14710 [](https://gitpod.io/from-referrer/) | WIP t-algebra new-contributor merge-conflict awaiting-author | 120/0 | Mathlib.lean,Mathlib/FieldTheory/SimpleExtension.lean | 2 | 19 | ['Command-Master', 'acmepjz', 'github-actions', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] | nobody | 3 months ago | unknown | unknown |
| 31590 | SuccessMoses | chore: tag `commutatorElement_def` with `simp` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 1/0 | Mathlib/Algebra/Group/Commutator.lean | 1 | 2 | ['github-actions', 'grunweg'] | nobody | 3 months ago | unknown | unknown |
| 11021 | jstoobysmith | feat(AlgebraicTopology): add join of augmented SSets | This pull-request adds the definition of the join of augmented SSets defined as contravariant functors from `WithInitial SimplexCategory` to `Type u`. In addition it shows that the join of two standard augmented SSets is again an augmented SSets. From this the definition of the join of simplicial sets should follow easily. To aid the above theory, an api for `WithInitial SimplexCategory` has been created, with the notion of the `join` and `split` (forming a sort of inverse to join) of objects in this category are defined. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebraic-topology new-contributor | 2137/1 | .gitignore,Mathlib.lean,Mathlib/AlgebraicTopology/Join.lean,Mathlib/AlgebraicTopology/SimplexCategory.lean,Mathlib/AlgebraicTopology/SimplexCategoryWithInitial.lean,Mathlib/AlgebraicTopology/SimplicialSet.lean | 6 | 47 | ['github-actions', 'jcommelin'] | nobody | 3 months ago | unknown | unknown |
| 18626 | hannahfechtner | feat: define Artin braid groups | Define the Artin braid group on infinitely many strands. Includes a toGroup function which defines a function out of the braid group to any other group (given a function which satisfies the braid relations) (more to come in this file; next up: Artin braid groups on finitely many strands) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 91/0 | Mathlib.lean,Mathlib/GroupTheory/SpecificGroups/BraidGroup/Basic.lean | 2 | 22 | ['github-actions', 'hannahfechtner', 'jcommelin', 'joelriou'] | nobody | 3 months ago | unknown | unknown |
| 20029 | FrederickPu | feat(Tactic/simps): allow for Config attributes to be set directly | Allow for Config attributes to be set directly when using initialize_simp_projection as per issue #19895 Basically modified initialize_simp_projection so that the user has the option of specifying a tuple of config option values. Ex: ``` initialize_simp_projection MulEquiv (toFun → apply, invFun → symm_apply) (fullyApplied := false) ``` These config options are then converted into projections. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP new-contributor t-meta | 34/4 | Mathlib/Tactic/Simps/Basic.lean | 1 | 11 | ['FrederickPu', 'YaelDillies', 'fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 3 months ago | unknown | unknown |
| 21269 | 658060 | feat(CategoryTheory/Topos): basic definitions and results in topos theory | This code contains basic definitions and results in topos theory, including the definition of a subobject classifier, power objects, and topoi. It is proved that every topos has exponential objects, i.e. "internal homs". The mathematical content follows chapter IV sections 1-2 of Mac Lane and Moerdijk's text "Sheaves in Geometry and Logic". --- - [x] depends on: #21281 [](https://gitpod.io/from-referrer/) | WIP t-category-theory new-contributor merge-conflict awaiting-author | 1269/0 | Mathlib.lean,Mathlib/CategoryTheory/Topos/Basic.lean,Mathlib/CategoryTheory/Topos/Classifier.lean,Mathlib/CategoryTheory/Topos/Exponentials.lean,Mathlib/CategoryTheory/Topos/Power.lean | 5 | 10 | ['658060', 'gio256', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 23990 | robertmaxton42 | feat(Types.Colimits): Quot is functorial and colimitEquivQuot is natural | Add `Functor.quotFunctor` to parallel `Functor.sectionsFunctor`, witnessing that `Quot` is functorial; add `colimNatIsoQuotFunctor` to parallel `limNatIsoSectionsFunctor`, witnessing that `colimitEquivQuot` is natural in the diagram $F$. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 33/0 | Mathlib/CategoryTheory/Limits/Types/Colimits.lean | 1 | 5 | ['github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'robertmaxton42'] | nobody | 3 months ago | unknown | unknown |
| 26881 | emo916math | feat(Analysis/Calculus/Deriv/Star): a formula for `deriv (conj ∘ f ∘ conj)` | Added a lemma that `deriv (conj ∘ f ∘ conj) = conj ∘ deriv f ∘ conj`, proved by cases on whether the derivative mathematically exists or not. This PR replaces [#26805](https://github.com/leanprover-community/mathlib4/pull/26805); see discussion there. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-analysis new-contributor | 50/2 | Mathlib/Analysis/Calculus/Deriv/Star.lean | 1 | 15 | ['emo916math', 'github-actions', 'j-loreaux', 'kckennylau'] | j-loreaux | 3 months ago | 207 days ago | 31 days |
| 27991 | sinianluoye | feat(Rat): add Rat.den_eq_of_add_den_eq_one and its dependent lemmas | ```lean4 example {q r : ℚ} (h : (q + r).den = 1) : q.den = r.den := by ``` It is so simple, but I couldn't find it in current mathlib repo. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data new-contributor | 22/0 | Mathlib/Data/Rat/Lemmas.lean | 1 | 33 | ['github-actions', 'kim-em', 'mathlib-bors', 'pechersky', 'sinianluoye', 'themathqueen'] | pechersky | 3 months ago | 135 days ago | 74 days |
| 28215 | 5hv5hvnk | feat: strong and Weak connectivity for Digraphs | strong and weak connectivity in Digraphs --- Should resolve a part of issue #26771 Main additions in the PR: 1. Walks in Digraphs (Walk.lean) - Basic walk structure with start and end vertices - Support for walk operations: append, reverse, length - Support functions: getVert, copy, support 2. Walk Decompositions (WalkDecomp.lean) - takeUntil and dropUntil functions to split walks - rotate operation for loop walks - Theorems relating to walk decomposition properties 3. Subgraphs (subgraph.lean) - Subgraph structure for digraphs - Induced and spanning subgraph predicates - Lattice structure (sup, inf, top, bot) - Coercion to standalone digraphs 4. Paths (Paths.lean) - Trail, Path, Circuit, Cycle definitions - Path structure with no repeating vertices - Theorems relating different path types - Basic connectivity definitions (reachable, weakly/strongly connected) 5. Connectivity (Connected.lean) - Reachability relations and properties - Strong and weak connectivity definitions - Connected component types: - StronglyConnectedComponent - WeaklyConnectedComponent - ConnectedComponent - Component properties and equivalence relations --> [](https://gitpod.io/from-referrer/) | WIP new-contributor merge-conflict awaiting-author t-combinatorics | 1266/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Connected.lean,Mathlib/Combinatorics/Digraph/Paths.lean,Mathlib/Combinatorics/Digraph/Subgraph.lean,Mathlib/Combinatorics/Digraph/Walk.lean,Mathlib/Combinatorics/Digraph/WalkDecomp.lean | 6 | 4 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 29574 | JarodAlper | feat: regular local rings are domains | We have added three new files in Mathlib/RingTheory/LocalRing * EmbeddingDimension.lean * LocalRingDimension.lean * RegularLocalRings.lean We have added two lemmas and an instance in Mathlib/RingTheory/LocalRing/RingHom/Basic.lean This work was done by Jarod Alper and Brian Nugent. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory new-contributor | 910/3 | Mathlib.lean,Mathlib/RingTheory/LocalRing/EmbeddingDimension.lean,Mathlib/RingTheory/LocalRing/LocalRingDimension.lean,Mathlib/RingTheory/LocalRing/RegularLocalRings.lean,Mathlib/RingTheory/LocalRing/RingHom/Basic.lean,lake-manifest.json | 6 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 28718 | imbrem | feat: class for chosen finite coproducts | Added basic `ChosenFiniteCoproducts` class, and started porting some of the lemmas about `ChosenFiniteProducts` suitably translated --- This, combined with #20182 modified to use chosen finite coproducts and premonoidal categories (#21488), should be enough for me to formalize strong Elgot categories, and hence a lot of categorical iteration theory for my PhD thesis. Re-done from #21603 to deal with changes in #24399 and #24390 Eventually, if we really want to harmonize approaches, we could introduce an `AddMonoidalCategory` struct and do the analogous to #24399 and #24390 for additive monoidal structure, but that seems like a massive overcomplication for now. It would allow formalizing fun things like rig categories, though. - [ ] depends on: #30150 | blocked-by-other-PR t-category-theory new-contributor merge-conflict awaiting-author | 290/0 | Mathlib.lean,Mathlib/CategoryTheory/ChosenFiniteCoproducts.lean | 2 | 9 | ['YaelDillies', 'github-actions', 'imbrem', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | nobody | 3 months ago | unknown | unknown |
| 26765 | KiringYJ | feat(MeasureTheory/PiSystem): add π-λ theorem and SetLike instance | Add two small features to `MeasureTheory/PiSystem`: 1. SetLike instance `instance : SetLike (DynkinSystem α) (Set α)` This lets us write `s ⊆ d` and `t ∈ d` for a DynkinSystem `d`, matching usual mathlib style. 2. `DynkinSystem.pi_lambda` lemma Classical π‑λ theorem: if a π‑system `s` is contained in a Dynkin system `d`, every set measurable for `σ(s)` is also in `d`. Currently, mathlib exposes this result only indirectly (e.g. via `generateFrom_eq`). Although logically equivalent, it is not obvious at first glance that those lemmas are the π‑λ theorem. The new lemma states the result in its familiar textbook form, so users can recognise and cite it immediately. Both pieces are under 10 lines, term‑mode only, and do not modify existing APIs. No breaking changes. No dependencies. | awaiting-author t-measure-probability new-contributor | 13/0 | Mathlib/MeasureTheory/PiSystem.lean | 1 | 14 | ['EtienneC30', 'KiringYJ', 'dagurtomas', 'github-actions', 'ocfnash'] | RemyDegenne | 3 months ago | 104 days ago | 135 days |
| 29434 | ntapiam | feat(NonAssoc/LieAdmissible): prove every ring/algebra is LieAdmissible | -awaiting-author | t-algebra new-contributor | 27/6 | Mathlib/Algebra/NonAssoc/LieAdmissible/Defs.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30637 | strihanje01 | feat(Combinatorics/SetFamily/Lindstrom): Lindstrom's theorem for subfamilies with equal unions | add Lindstrom's theorem and its strengthening for equal intersections --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 209/0 | Mathlib/Combinatorics/SetFamily/Lindstrom.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | b-mehta | 3 months ago | 104 days ago | 31 days |
| 31796 | dobronx1325 | feat(Data/Real/EReal): add mul_lt_mul_of_pos_left theorem | This PR adds the theorem `EReal.mul_lt_mul_of_pos_left`, which states that for a positive real number `a` and extended reals `b < c`, left multiplication by `a` preserves the strict order: `(a : EReal) * b < (a : EReal) * c`. The theorem complements existing order-preserving properties for addition in `EReal` and extends the algebraic structure for multiplication. The proof uses basic properties of extended reals and order relations. --- [](https://gitpod.io/from-referrer/) | t-data new-contributor | 23/0 | Mathlib/Data/EReal/Operations.lean | 1 | 4 | ['JovanGerb', 'LLaurance', 'dobronx1325', 'github-actions'] | nobody | 3 months ago | 98 days ago | 6 days |
| 32169 | saodimao20 | feat: add convolution_comp_add_right | This PR adds a lemma `convolution_comp_translation_right` showing that convolution commutes with translation on the right operand. Specifically, it proves that for an additive commutative group $G$, the convolution of a function $f$ with a translated function $x \mapsto g(a + x)$ is equal to the convolution of $f$ and $g$ evaluated at $x + a$. --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor awaiting-author | 14/0 | Mathlib/Analysis/Convolution.lean | 1 | 3 | ['github-actions', 'urkud'] | nobody | 3 months ago | 95 days ago | 22 hours |
| 32126 | nielsvoss | feat(Analysis/Normed/Operator): definition of singular values for linear maps | This PR defines a generalization of singular values, the approximation numbers, for continuous linear maps between normed vector spaces. It proves basic lemmas about the approximation numbers and shows that for finite-dimensional vector spaces, the approximation numbers coincide with the standard definition of singular values.
See the discussion on Zulip: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Singular.20Value.20Decomposition/with/558914024
Co-authored-by: Arnav Mehta |
WIP t-analysis new-contributor | 331/0 | Mathlib/Analysis/Normed/Operator/SingularValues.lean | 1 | 2 | ['github-actions', 'nielsvoss'] | nobody | 3 months ago | unknown | unknown |
| 31898 | ntapiam | feat(LinearAlgebra/TensorAlgebra): implement HopfAlgebra for TensorAlgebra | implementation of the natural Hopf algebra structure on the TensorAlgebra | new-contributor t-ring-theory awaiting-author | 253/0 | Mathlib.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean,Mathlib/RingTheory/Bialgebra/FreeAlgebra.lean,Mathlib/RingTheory/Bialgebra/TensorAlgebra.lean,Mathlib/RingTheory/HopfAlgebra/TensorAlgebra.lean | 6 | 64 | ['YaelDillies', 'github-actions', 'kckennylau', 'ntapiam'] | nobody | 2 months ago | 101 days ago | 8 hours |
| 30525 | 515801431 | feat(Mathlib/Combinatorics/Enumerative/Polya): Add Polya Counting | This PR introduces basic definitions and results about colorings under permutation group actions. A coloring is defined as a function X → Y, and the permutation group Equiv.Perm X acts on colorings by precomposition: (g • c) x = c (g⁻¹ • x) This formalizes the natural action of relabeling the elements of X. Main definitions MulAction (Equiv.Perm X) (X → Y): The action of the permutation group on colorings via precomposition. coloringEquiv (c₁ c₂ : X → Y) : Prop: Two colorings are equivalent if they lie in the same orbit under this action, i.e. ∃ f : Equiv.Perm X, f • c₁ = c₂. Main results smul_eq_iff_mem_stabilizer: Characterizes when two group actions on the same coloring are equal, showing that g • c = f • c ↔ f⁻¹ * g ∈ stabilizer c. coloringEquiv_equivalence: Proves that coloringEquiv defines an equivalence relation on X → Y. orbit_size_eq_index: Reformulates the orbit–stabilizer theorem in the context of colorings: |orbit c| = |Perm X| / |stabilizer c| Motivation These results provide foundational infrastructure for studying Burnside’s lemma and Pólya’s enumeration theorem in Mathlib, where the enumeration of distinct colorings up to symmetry plays a central role. | t-combinatorics new-contributor awaiting-author merge-conflict | 113/0 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean | 2 | 8 | ['IvanRenison', 'alreadydone', 'github-actions', 'mathlib4-merge-conflict-bot'] | awainverse | 2 months ago | 96 days ago | 39 days |
| 31113 | 515801431 | feat(Mathlib/Combinatorics/Enumerative/Polya.lean): Add additional theorem in `Polya.lean` | --- - [ ] depends on: #30525 --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor blocked-by-other-PR merge-conflict | 302/0 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean | 2 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | b-mehta | 2 months ago | 97 days ago | 16 days |
| 24441 | MrSumato | feat(Data/List): add Lyndon-Schutzenberger theorem on list commutativity | Add Lyndon-Schutzenberger theorem on list commutativity. Included definition for List.repeatSelf that returns list repeated n times. --- This is my first mathlib PR, so any comments are highly appreciated. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data new-contributor | 129/1 | Mathlib.lean,Mathlib/Data/List/Commutativity.lean,Mathlib/Data/List/Defs.lean,Mathlib/Data/List/Lemmas.lean | 4 | 38 | ['MrSumato', 'github-actions', 'grunweg', 'madvorak', 'mathlib4-merge-conflict-bot', 'plp127'] | grunweg | 2 months ago | unknown | unknown |
| 29744 | 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 | 391/0 | Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | b-mehta | 2 months ago | 104 days ago | 57 days |
| 31147 | daefigueroa | feat(Dynamics): point transitive monoid actions and transitive points | We define point transitivity for a monoid action on a topological space and define the set of transitive points. We add some basic lemmas and implications between topological transitivity and point transitivity. --- - [x] depends on: #28001 [](https://gitpod.io/from-referrer/) | t-dynamics new-contributor awaiting-author | 114/6 | Mathlib/Dynamics/Transitive.lean | 1 | 6 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 2 months ago | 85 days ago | 18 days |
| 28613 | 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 merge-conflict | 375/0 | Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean | 2 | 54 | ['b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot'] | b-mehta | 2 months ago | 104 days ago | 76 days |
| 32869 | felixpernegger | feat(RingTheory): lemmas around ```Ring.choose``` | Various small lemmas around Ring.choose. In particular this should cover all statements from .Data.Nat.Choose.Basic which have a meaningful generalization to arbitrary rings. | new-contributor t-ring-theory | 170/0 | Mathlib/RingTheory/Binomial.lean,Mathlib/RingTheory/Polynomial/Pochhammer.lean | 2 | 1 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 31987 | saodimao20 | feat: add monotonicity and relation lemmas for mgf and cgf | Add two lemmas about moment-generating and cumulant-generating functions: - `mgf_mono_in_t_of_nonneg`: For nonnegative random variables, the mgf is monotone in the parameter `t` - `cgf_zero_of_mgf_one`: The cgf equals zero iff the mgf equals one These lemmas are useful for studying properties of mgf and cgf in probability theory. Contributed by sequential-intelligence-lab(SIL), University of Virginia --- [](https://gitpod.io/from-referrer/) | t-measure-probability new-contributor awaiting-author | 21/0 | Mathlib/Probability/Moments/Basic.lean | 1 | 5 | ['DavidLedvinka', 'github-actions'] | RemyDegenne | 2 months ago | 79 days ago | 21 days |
| 32938 | 0xTerencePrime | feat(Order/LocallyFinite): prove DenselyOrdered and LocallyFiniteOrder are incompatible | ## Summary This PR proves that a nontrivial densely ordered linear order cannot be locally finite. ## Main results * `not_locallyFiniteOrder`: A densely ordered locally finite linear order must be subsingleton. * `not_locallyFiniteOrder_of_nontrivial`: The main theorem - incompatibility of the two properties. Note: This implementation imports `Mathlib.Order.Interval.Set.Infinite` to reuse the existing `Set.Icc_infinite` theorem, ensuring standard library consistency. ## Mathematical content The key insight is that in a densely ordered type, we can always find a new element between any two distinct elements. This means any nontrivial interval contains infinitely many elements. However, `LocallyFiniteOrder` requires intervals to be finite. This contradiction implies that such a type cannot exist (unless it is trivial). ## Motivation This resolves a TODO mentioned in #7987 (Data/Finset/LocallyFinite entry). ## Verification - [x] `lake build Mathlib.Order.LocallyFinite.Basic` passes - [x] `lake exe runLinter Mathlib.Order.LocallyFinite.Basic` passes | t-order new-contributor awaiting-author | 28/0 | Mathlib/Order/Interval/Finset/Basic.lean | 1 | 10 | ['0xTerencePrime', 'CoolRmal', 'github-actions', 'jcommelin', 'plp127'] | nobody | 2 months ago | 74 days ago | 2 days |
| 32698 | farruhx | feat(List): add aesop / simp annotations to selected lemmas for improved automation | This PR adds `@[aesop safe]` and `@[simp]` annotations to a set of List lemmas whose proofs are routine and benefit from standardized automation. No statements or definitions are changed; only proof annotations are added. The lemmas updated in this PR are: * `or_exists_of_exists_mem_cons` * `append_subset_of_subset_of_subset` * `map_subset_iff` * `append_eq_has_append` * `append_right_injective` * `append_left_injective` * `reverse_surjective` * `reverse_bijective` * `mem_getLast?_append_of_mem_getLast?` * `mem_dropLast_of_mem_of_ne_getLast` * `idxOf_eq_length_iff` * `idxOf_append_of_mem` * `length_eraseP_add_one` The goal is to make these commonly used lemmas easier for `aesop`-based automation to resolve, while avoiding any interference with simp-normal-form lemmas or canonical rewrite rules. There are no API changes and no new theorems—only improved automation behavior. | t-data new-contributor awaiting-author | 18/1 | Mathlib/Data/List/Basic.lean | 1 | 8 | ['artie2000', 'euprunin', 'farruhx', 'github-actions'] | pechersky | 2 months ago | 74 days ago | 7 days |
| 27817 | zhuyizheng | feat: add IMO2025P1 | Add a solution to IMO2025P1, the original problem statement from https://github.com/jsm28/IMOLean --- [](https://gitpod.io/from-referrer/) | IMO awaiting-author new-contributor merge-conflict | 1310/0 | Archive.lean,Archive/Imo/Imo2025Q1.lean | 2 | 9 | ['github-actions', 'kim-em', 'mathlib4-merge-conflict-bot', 'zhuyizheng'] | dwrensha | 2 months ago | 133 days ago | 54 days |
| 26923 | oliver-butterley | feat(Dynamics/BirkhoffSum): add the pointwise ergodic theorem (Birkhoff's) | The Pointwise Ergodic Theorem, also known as Birkhoff's Ergodic Theorem.
Co-authored-by: Lua Viana Reis |
t-dynamics new-contributor awaiting-author | 398/0 | Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Pointwise.lean | 2 | 31 | ['D-Thomine', 'github-actions', 'leanprover-community-bot-assistant', 'lua-vr', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel', 'urkud'] | sgouezel | 2 months ago | 77 days ago | 98 days |
| 33218 | Blackfeather007 | feat(Algebra): Define the associated graded ring to filtered ring | Define the associated graded ring to a filtered ring. --- - [ ] depends on: #33217 migrated from https://github.com/leanprover-community/mathlib4/pull/26858 | t-ring-theory new-contributor blocked-by-other-PR | 450/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean | 2 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 33219 | Blackfeather007 | feat(Algebra): Define associated graded algebra | Define the associated graded algebra of a filtered algebra, constructed from a special case of associated graded ring. --- - [ ] depends on: #33218 migrated from #26859 | t-ring-theory new-contributor blocked-by-other-PR | 563/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean | 2 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 33220 | Blackfeather007 | feat(Algebra): Define associated graded module | Define the associated graded module to a filtered module. --- - [ ] depends on: #33218 migrated from #26860 | t-ring-theory new-contributor blocked-by-other-PR | 669/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean | 2 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 33227 | Blackfeather007 | feat(Algebra): exact of associated graded exact | We proved that a chain complex is exact if its associated graded complex is exact. Co-authored-by: Huanyu Zheng @Yu-Misaka [suzuka@misaka-yu.com](mailto:suzuka@misaka-yu.com) Co-authored-by: Yi Yuan @yuanyi-350 [kysyy1@126.com](mailto:kysyy1@126.com) Co-authored-by: Weichen Jiao @AlbertJ-314 [albertjiao314@gmail.com](mailto:albertjiao314@gmail.com) --- - [ ] depends on: #33226 migrated from #26869 | t-ring-theory new-contributor blocked-by-other-PR | 728/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/Exactness.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 4 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 3 minutes |
| 33226 | Blackfeather007 | feat(Algebra): associated graded exact of exact and strict | In this file, we define the concept of exhaustive filtrations. We also prove a AssociatedGradedRingHom sequence is exact iff each GradedPieceHom is exact. And when a sequence is strict exact, the corresponding AssociatedGradedRingHom sequence is also exact. Co-authored-by: Huanyu Zheng @Yu-Misaka [suzuka@misaka-yu.com](mailto:suzuka@misaka-yu.com) Co-authored-by: Yi Yuan @yuanyi-350 [kysyy1@126.com](mailto:kysyy1@126.com) Co-authored-by: Weichen Jiao @AlbertJ-314 [albertjiao314@gmail.com](mailto:albertjiao314@gmail.com) --- - [ ] depends on: #33222 migrated from #26868 | t-ring-theory new-contributor blocked-by-other-PR | 529/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/Exactness.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 4 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 6 minutes |
| 33225 | Blackfeather007 | feat(Algebra): filtered module hom | In this PR we defined the filtered semi-linear map for filtered module and the associated graded module hom. --- - [ ] depends on: #33220 - [ ] depends on: #33223 migrated from #26867 | t-ring-theory new-contributor blocked-by-other-PR | 1205/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 33224 | Blackfeather007 | feat(Algebra): define filtered alghom | In this PR, we define the filtered algebra homomorphisms on algebras and prove some basic properties of them. --- - [ ] depends on: #33219 - [ ] depends on: #33223 migrated from #26863 | t-ring-theory new-contributor blocked-by-other-PR | 1055/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 16 minutes |
| 33223 | Blackfeather007 | feat(Algebra): define filtered ring homomorphism | In this PR, we define the filtered ring morphisms on rings and prove some basic properties of them. Co-authored-by: Huanyu Zheng @Yu-Misaka [suzuka@misaka-yu.com](mailto:suzuka@misaka-yu.com) Co-authored-by: Yi Yuan @yuanyi-350 [kysyy1@126.com](mailto:kysyy1@126.com) Co-authored-by: Weichen Jiao @AlbertJ-314 [albertjiao314@gmail.com](mailto:albertjiao314@gmail.com) --- - [ ] depends on: #33218 - [ ] depends on: #33222 migrated from #26862 | t-ring-theory new-contributor blocked-by-other-PR | 824/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 19 minutes |
| 33222 | Blackfeather007 | feat(Algebra): define filtered add group hom | In this file we define filtered hom and the corresponding associated graded hom for abelian groups. Co-authored-by: Huanyu Zheng @Yu-Misaka [suzuka@misaka-yu.com](mailto:suzuka@misaka-yu.com) Co-authored-by: Yi Yuan @yuanyi-350 [kysyy1@126.com](mailto:kysyy1@126.com) Co-authored-by: Weichen Jiao @AlbertJ-314 [albertjiao314@gmail.com](mailto:albertjiao314@gmail.com) --- - [ ] depends on: #33217 migrated from #26861 | new-contributor t-ring-theory blocked-by-other-PR | 368/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 22 minutes |
| 33178 | gw90 | feat(Analysis/CStarAlgebra/Spectrum): Adding lemmas that the CStarAlgebra norm equals the square root of the spectral radius of star a * a | Adds lemmas that the ||a||^2_A=sqrt(spectralRadius C (star a * a)). I think it would be helpful to have these lemmas available in Mathlib. It'll help with some of the other things I'm working on. Feel free to move them to a different file or rename them as you see fit. | new-contributor t-analysis awaiting-author | 24/0 | Mathlib/Analysis/CStarAlgebra/Spectrum.lean | 1 | 15 | ['github-actions', 'gw90', 'themathqueen', 'vihdzp'] | nobody | 2 months ago | 72 days ago | 3 hours |
| 32264 | jjtowery | feat(Bicategory): add lax slice bicategory | --- In this PR, I define the lax slice bicategory for a lax functor over an object. I also give the change of slice strict pseudofunctor. These are from Section 7.1 of Johnson & Yau and are essential for their Whitehead theorem for bicategories (lax functor biequivalence iff essentially surjective, essentially full, and fully faithful), which I'd like to prove at some point. [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor awaiting-author | 527/0 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/LaxSlice.lean | 2 | 12 | ['dagurtomas', 'github-actions', 'jjtowery', 'robin-carlier'] | dagurtomas | 2 months ago | 90 days ago | 3 days |
| 32960 | dleijnse | feat(FieldTheory): adjoin pth roots | For a field `k` of exponential characteristic `p` and a subset `S` of `k`, we define the extension of `k` obtained by adjoining all `p`-th roots of elements of `S`. We prove that this is a purely inseparable extension, and provide some basic API. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor awaiting-author | 131/0 | Mathlib.lean,Mathlib/FieldTheory/PurelyInseparable/AdjoinPthRoots.lean | 2 | 13 | ['artie2000', 'chrisflav', 'dleijnse', 'erdOne', 'github-actions', 'leanprover-radar'] | erdOne | 2 months ago | 66 days ago | 10 days |
| 33163 | Aaron1011 | feat: prove subgroup of (M -> Z) is finitely generated | --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor awaiting-author | 5/0 | Mathlib/RingTheory/DedekindDomain/Dvr.lean | 1 | 2 | ['erdOne', 'github-actions'] | alreadydone | 2 months ago | 66 days ago | 5 days |
| 33133 | 0xTerencePrime | feat(Algebra/Group/Center): add Decidable (IsMulCentral a) instance | This PR adds a `Decidable` instance for `IsMulCentral a`. ### Summary The structure `IsMulCentral` was missing a `Decidable` instance. This PR provides the instance by leveraging `isMulCentral_iff`, enabling decidability for both multiplicative and additive (via `to_additive`) structures. ### Verification - `lake build Mathlib.Algebra.Group.Center` passed. - `lake exe runLinter Mathlib.Algebra.Group.Center` passed. | t-algebra new-contributor awaiting-author | 7/0 | Mathlib/Algebra/Group/Center.lean | 1 | 3 | ['github-actions', 'robin-carlier'] | ocfnash | 2 months ago | 60 days ago | 12 days |
| 33502 | MrQubo | fix(Tactic/ProxyType): Pass params explicitly in proxy_equiv% implementation | Fix [#mathlib4 > `deriving Fintype` with Prop](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60deriving.20Fintype.60.20with.20Prop/with/566118621) --- [](https://gitpod.io/from-referrer/) | new-contributor t-meta WIP | 12/2 | Mathlib/Tactic/ProxyType.lean,MathlibTest/DeriveFintype.lean | 2 | 7 | ['MrQubo', 'github-actions', 'kmill'] | kmill | 2 months ago | 59 days ago | 15 hours |
| 22657 | Xmask19 | feat: a graph is maximally acyclic iff it is a tree | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics new-contributor | 86/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 8 | ['Rida-Hamadani', 'SnirBroshi', 'b-mehta', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | b-mehta | 2 months ago | unknown | unknown |
| 17176 | arulandu | feat: integrals and integrability with .re | Lemmas for swapping order of .re and integration/integrability. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-measure-probability please-adopt | 49/0 | Mathlib/MeasureTheory/Function/L1Space.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral.lean,Mathlib/MeasureTheory/Integral/SetIntegral.lean | 4 | 32 | ['EtienneC30', 'arulandu', 'github-actions', 'loefflerd'] | nobody | 1 month ago | unknown | unknown |
| 33330 | michael-novak-math | feat: add arc-length reparametrization of parametrized curves | add new definitions of arc-length reparametrization and its corresponding parameter transformation and a theorem establishing the desired properties. | t-analysis new-contributor merge-conflict | 311/0 | Mathlib.lean,Mathlib/Analysis/Calculus/ArcLengthReparametrization.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,docs/references.bib,lake-manifest.json | 5 | 53 | ['SnirBroshi', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'michael-novak-math'] | j-loreaux | 1 month ago | 55 days ago | 6 days |
| 33756 | dleijnse | feat(FieldTheory): root of polynomial with p power coefficients | This PR proves the results in https://stacks.math.columbia.edu/tag/031V, which gives a criterion for a root of a polynomial over a field `k` of characteristic `p` to be a `p`-th power. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 88/0 | Mathlib.lean,Mathlib/FieldTheory/PthPowerCoeffPoly.lean | 2 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 33299 | kingiler | feat: Add decidable membership for Interval | Implemented membership and corresponding decidable instance for `Interval`. Related [#mathlib4 > Proposal: Add decidable membership for Interval](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Proposal.3A.20Add.20decidable.20membership.20for.20Interval/with/565438009). --- [](https://gitpod.io/from-referrer/) | awaiting-author new-contributor t-order | 16/1 | Mathlib/Order/Interval/Basic.lean | 1 | 5 | ['Vierkantor', 'eric-wieser', 'github-actions', 'kingiler'] | Vierkantor | 1 month ago | 54 days ago | 13 days |
| 30142 | shalliso | feat(Topology/Baire): define IsNonMeagre | non-meagre sets (also known as "of the second category") are worthy of their own definition and API. This was useful to me for formalizing a result of "automatic continuity", that is, a Baire-measurable homomorphism between Polish groups must be continuous. Simply working with the negation of IsMeagre quickly became cumbersome, and non-meagre sets have an important role in the study of Polish (e.g. locally compact) groups. From https://github.com/shalliso/automatic_continuity [ ] depends on: #30141 --- [](https://gitpod.io/from-referrer/) | t-topology new-contributor merge-conflict | 83/1 | Mathlib/Topology/Baire/NonMeagre.lean,Mathlib/Topology/GDelta/Basic.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 152 days ago | 4 seconds |
| 32880 | 0xTerencePrime | feat(Analysis/Asymptotics): define subpolynomial growth | ## Main definitions * `Asymptotics.IsSubpolynomial l f g`: A function `f` has subpolynomial growth with respect to `g` along filter `l` if `f = O(1 + ‖g‖^k)` for some natural `k`. ## Main results * `IsSubpolynomial.const`: Constant functions have subpolynomial growth * `IsSubpolynomial.id`: Identity has subpolynomial growth * `IsSubpolynomial.add`: Closure under addition * `IsSubpolynomial.neg`: Closure under negation * `IsSubpolynomial.sub`: Closure under subtraction * `IsSubpolynomial.mul`: Closure under multiplication * `IsSubpolynomial.pow`: Closure under powers * `isSubpolynomial_iff_one_add`: Equivalence with `(1 + ‖g‖)^k` formulation * `IsSubpolynomial.uniform`: Uniform bounds for finite families ## Implementation notes The definition uses `1 + ‖g‖^k` rather than `(1 + ‖g‖)^k` as the primary form, with the equivalence established in `isSubpolynomial_iff_one_add`. Four private auxiliary lemmas handle the key inequalities needed for closure proofs. Closes #32658 | awaiting-author t-analysis new-contributor | 185/0 | Mathlib.lean,Mathlib/Analysis/Asymptotics/Subpolynomial.lean | 2 | 28 | ['0xTerencePrime', 'ADedecker', 'github-actions', 'j-loreaux'] | ADedecker | 1 month ago | 51 days ago | 22 days |
| 33948 | anivegesana | feat(Analysis/Normed/Algebra): matrix exponential of nilpotent matrix | Where the matrix exponential and nilpotent elements are defined, both the matrix exponential and the nilpotent element exponential. I had to add a different theorem for normed space exponential and the matrix exponential since the right instances wouldn't be synthesized. Help with golfing would be appreciated. --- [](https://gitpod.io/from-referrer/) | new-contributor t-analysis | 34/0 | Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean | 2 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 31610 | rudynicolop | feat(Computability/NFA): Kleene star closure for Regular Languages via NFA | This PR constructs a Kleene star closure for non-epsilon NFAs, and proves that regular languages are closed under Kleene star. The NFA construction is `NFA.kstar`. The main theorems are: - `NFA.accepts_kstar`: demonstrates that `M.kstar` accepts the Kleene star closure of the language of `M`. - `IsRegular.kstar`: demonstrates that regular languages are closed under Kleene star. There is an onging zulip discussion about regular languages in Mathlib: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/with/553759136 This discussion is also tracked at #24205. Furthermore, the construction and proofs in this PR are heavily inspired by @TpmKranz from his #15651. #15651 supersedes this PR, so if it is accepted then this PR is not needed. --- - [x] depends on: #31038 [](https://gitpod.io/from-referrer/) | t-computability new-contributor awaiting-author awaiting-CI | 405/7 | Mathlib/Computability/NFA.lean | 1 | 16 | ['YaelDillies', 'ctchou', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | YaelDillies | 1 month ago | 48 days ago | 43 days |
| 30391 | rudynicolop | feat(Data/List): list splitting definitions and lemmas | This PR continues the work from #24395. Original PR: https://github.com/leanprover-community/mathlib4/pull/24395 | t-data new-contributor awaiting-author | 108/2 | Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/List/TakeDrop.lean | 2 | 50 | ['BoltonBailey', 'IlPreteRosso', 'TwoFX', 'Vierkantor', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'rudynicolop'] | TwoFX | 1 month ago | 46 days ago | 91 days |
| 34005 | MSpill | feat: inverse function theorem for manifolds (concrete version) | Proves the inverse function theorem for manifolds: given manifolds $M, N$ and a $C^n$ map $f : M \to N$ whose differential is a linear isomorphism at $p \in M$, then $f$ is a local diffeomorphism at $p$, provided that both $p$ and its image are interior points. The proof proceeds in 4 main steps: 1. Define composition of partial diffeomorphisms 2. Show that the extended chart at an interior point can be restricted to an open set on which it is a partial diffeomorphism, viewing the model vector space as a manifold modelled on itself trivially 3. Use the inverse function theorem (applied to $f$ written in coordinates) to obtain a partial diffeomorphism between model vector spaces 4. Compose with chart diffeomorphisms to obtain a partial diffeomorphism between the manifolds. ------ [](https://gitpod.io/from-referrer/) | awaiting-author t-differential-geometry new-contributor | 232/3 | Mathlib/Geometry/Manifold/LocalDiffeomorph.lean | 1 | 11 | ['MSpill', 'github-actions', 'grunweg'] | grunweg | 1 month ago | unknown | unknown |
| 29282 | Jlh18 | feat(CategoryTheory): HasColimits instance on Grpd | Show that the category of groupoids has all small colimits, as a coreflective subcategory of `Cat`, which has all small colimits. The right adjoint of the forgetful functor is the core functor `CategoryTheory.Core.functor`. - [ ] depends on: #29283 [Core of a category as a functor] --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-category-theory | 140/4 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/CategoryTheory/Category/Grpd.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Colimit.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Core.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32039 | HugLycan | feat(Tactic/Positivity): handle non-zeroness in non-orders | --- WIP... [](https://gitpod.io/from-referrer/) | WIP new-contributor t-meta merge-conflict | 618/163 | Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Power.lean,Mathlib/Algebra/Order/Module/Algebra.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Tactic/Positivity/test_Basic.lean | 10 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32745 | LTolDe | feat(Topology/Algebra): add MulActionConst.lean | add Topology/Algebra/MulActionConst.lean introduce class `ContinuousSMulConst` for a scalar multiplication that is continuous in the first argument, in analogy to `ContinuousConstSMul` define `MulAction.ball x U` as the set `U • {x}` given `[SMul G X] (x : X) (U : Set G)` The lemmas shown here will be useful to prove the **Effros Theorem**, see [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Effros.20Theorem/with/558712441). --- [](https://gitpod.io/from-referrer/) | awaiting-author new-contributor t-topology | 117/0 | Mathlib.lean,Mathlib/Topology/Algebra/MulActionConst.lean | 2 | 8 | ['LTolDe', 'github-actions', 'urkud'] | dagurtomas | 1 month ago | 50 days ago | 16 days |
| 33478 | anishrajeev | feat(ModelTheory): define a subset of the topology over complete types | Define a subset of the Stone Space over a language expanded with countably many constants. Define the proposition to indicate if a language is countable. The subset's density and openness is a future goal to prove (have a branch where it is almost finished), in pursuit of formalizing the proof of the Omitting Types Theorem via properties of Baire spaces. - [ ] depends on: #32215 - [ ] depends on: #32546 | t-logic blocked-by-other-PR merge-conflict new-contributor | 160/1 | Mathlib.lean,Mathlib/ModelTheory/Topology/Types.lean,Mathlib/ModelTheory/Types.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 4 | 8 | ['NoneMore', 'anishrajeev', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] | nobody | 1 month ago | 50 days ago | 10 days |
| 32546 | anishrajeev | feat(ModelTheory): Prove compactness of the type space | Define the space of types and prove various topological properties of it (zero dimensional, totally separated, compact, baire). The goal is to formalize the proof of the Omitting Types Theorem - [ ] depends on: #32215 | merge-conflict t-logic new-contributor | 127/1 | Mathlib.lean,Mathlib/ModelTheory/Topology/Types.lean,Mathlib/ModelTheory/Types.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 4 | 6 | ['NoneMore', 'anishrajeev', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | fpvandoorn | 1 month ago | unknown | unknown |
| 31180 | CoolRmal | feat(Analysis): a closed convex set is the intersection of countably many half-spaces in a separable Banach space | This lemma is needed in the proof of conditional Jensen's inequality: #27953 --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor merge-conflict awaiting-author | 70/13 | Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Topology/Compactness/Lindelof.lean | 2 | 44 | ['ADedecker', 'CoolRmal', 'EtienneC30', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 95 days ago | 2 days |
| 31092 | FlAmmmmING | feat(Algebra/Group/ForwardDiff.lean): Add theorem `sum_shift_eq_fwdDiff_iter`. | --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor delegated | 17/1 | Mathlib/Algebra/Group/ForwardDiff.lean | 1 | 20 | ['BeibeiX0', 'FlAmmmmING', 'Ruben-VandeVelde', 'dagurtomas', 'github-actions', 'jcommelin', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | dagurtomas | 1 month ago | 40 days ago | 54 days |
| 34141 | gululu996-ui | feat(Combinatorics/SimpleGraph/Acyclic): finite trees have at least two degree-one vertices | Add a lemma showing that a finite tree with at least two vertices has at least two vertices of degree 1. - Introduce a helper lemma `SimpleGraph.Connected.one_le_degree` for connected graphs on a nontrivial finite type. - Prove the leaf-count lower bound via the degree-sum identity and a counting argument. --- | awaiting-author new-contributor t-combinatorics | 72/2 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 9 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] | nobody | 1 month ago | 42 days ago | 1 day |
| 34129 | idontgetoutmuch | feat: define Ehresmann connections | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-differential-geometry new-contributor | 90/0 | Mathlib.lean,Mathlib/Geometry/Manifold/EhresmannConnection.lean | 2 | 5 | ['github-actions', 'grunweg', 'idontgetoutmuch', 'metakunt'] | nobody | 1 month ago | unknown | unknown |
| 29953 | slashbade | feat: add reap for experiment | --- [](https://gitpod.io/from-referrer/) | new-contributor | 40/3 | Cache/IO.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,lake-manifest.json,lakefile.lean | 5 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 31377 | CoolRmal | feat: a series of smooth functions that converges (locally) uniformly is smooth | The main theorem is the proof that an infinite sum of $C^n$ functions on a one-dimensional domain which converges locally uniformly is $C^n$ and related results. This should be compared with [contDiff_tsum](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/SmoothSeries.html#contDiff_tsum) where the same result is proved for functions on an arbitrary domain but with a slightly stronger convergence assumption. The main motivation for this PR is the [#mathlib4 > Tychonov's Counterexample for the Heat Equation](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Tychonov's.20Counterexample.20for.20the.20Heat.20Equation/with/547367912). --- [](https://gitpod.io/from-referrer/) | t-topology new-contributor awaiting-author merge-conflict | 110/18 | Mathlib/Analysis/Calculus/SmoothSeries.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean,Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean | 5 | 20 | ['CoolRmal', 'github-actions', 'mathlib4-merge-conflict-bot', 'ocfnash', 'sgouezel'] | ocfnash | 1 month ago | 95 days ago | 8 days |
| 33031 | chiyunhsu | feat(Combinatorics/Enumerative/Partition): add combinatorial proof of Euler's partition theorem | The new file EulerComb.lean contains the combinatorial proof of Euler's partition theorem. The analytic proof of the theorem and its generalization of Glaisher's Theorem has already been formalized in [Glaisher.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Combinatorics/Enumerative/Partition/Glaisher.lean). The generalization of the combinatorial proof from this file to Glaisher's Theorem is within reach. --- Zulip discussion: [#mathlib4 > Glaisher’s Bijection on integer partitions](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Glaisher.E2.80.99s.20Bijection.20on.20integer.20partitions/with/570808111) [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor awaiting-zulip | 531/0 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Partition/EulerComb.lean | 2 | 5 | ['chiyunhsu', 'github-actions', 'tb65536', 'vihdzp'] | b-mehta | 1 month ago | 33 days ago | 42 days |
| 33817 | FlAmmmmING | fix(Combinatorics/Enumerative/Schroder.lean): Fix the definition and theorem of smallSchroder. | In the previous definition, the small Schröder numbers were defined as ```LaTeX s_0 = 1, s_1 = 1, s_2 = 1, s_3 = 3... ``` , which does not match the sequence listed in OEIS A006318. Moreover, this definition makes it difficult to correctly write the generating function for the small Schröder numbers. This PR fixes this issue. --- [](https://gitpod.io/from-referrer/) | new-contributor t-combinatorics large-import | 61/39 | Mathlib/Combinatorics/Enumerative/Schroder.lean | 1 | 19 | ['FlAmmmmING', 'github-actions', 'vihdzp'] | awainverse | 1 month ago | 41 days ago | 52 days |
| 34227 | stepan2698-cpu | feat: If sum of densities is at least one, the sumset covers the naturals | Proves an outstanding TODO item from Mathlib.Combinatorics.Schnirelmann : shows that if the sum of two densities is at least one, the sumset covers the positive naturals. --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 51/1 | Mathlib/Combinatorics/Schnirelmann.lean | 1 | 3 | ['github-actions', 'grunweg', 'kbuzzard'] | awainverse | 1 month ago | 41 days ago | 41 days |
| 34130 | FlAmmmmING | feat(Combinatorics/SimpleGraph/Acyclic): Add new theorem `isTree_iff_uniqueShortest_path` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-combinatorics new-contributor | 28/1 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 9 | ['IvanRenison', 'github-actions', 'metakunt', 'vlad902'] | nobody | 1 month ago | 41 days ago | 2 days |
| 34487 | martinwintermath | feat(LinearAlgebra/SesquilinearForm/Basic): add instances for SeparatingLeft, SeparatingRight and Nondegenerate | Add typeclass instances for `Fact B.SeparatingLeft`, `Fact B.SeparatingRight`, `Fact B.Nondegenerate`: * inferring `Fact B.flip.SeparatingLeft` from `Fact B.SeparatingRight` and vice versa * inferring `Fact B.SeparatingLeft` and `Fact B.SeparatingRight` from `Fact B.Nondegenerate` * inferring `Fact B.SeparatingLeft` and `Fact B.Nondegenerate` for `.id` and `Dual.eval` * inferring `Fact B.Nondegenerate` from `B.IsPerfPair` --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor large-import merge-conflict | 67/12 | Mathlib/LinearAlgebra/PerfectPairing/Basic.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean | 2 | 3 | ['github-actions', 'martinwintermath', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34028 | floor-licker | feat(SimpleGraph): add max-flow/min-cut weak duality | This PR introduces a basic s–t flow setup for undirected SimpleGraphs and proves the standard weak-duality inequality: for any feasible flow f and any s–t cut S, value f ≤ cutCapacity S. This is a small, self-contained lemma I extracted while working on larger graph-theoretic formalizations, in particular, results that will ultimately rely on a full max-flow/min-cut theorem. The full MFMC equality/existence statement is not included here. This is the weak-duality direction (∀ f S, value f ≤ cutCapacity S). | t-combinatorics new-contributor | 169/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/MaxFlowMinCut.lean | 2 | 13 | ['SnirBroshi', 'floor-licker', 'github-actions'] | kmill | 1 month ago | 36 days ago | 45 days |
| 32609 | PrParadoxy | feat(LinearAlgebra/PiTensorProduct): Relation between nested tensor products and tensor products indexed by dependent sums | Product tensors in `⨂ j : (Σ i, β i), s j.fst j.snd` can be mapped to product tensors in `⨂ i, ⨂ b : β i, s i b`. If the outer index type is finite, the two types are equivalent. This allows the definition of endomorphisms on PiTensorProducts by specifying them on disjoint subsets of the index set. Such constructions are common e.g. in quantum circuits, quantum cellular automata, and renormalization procedures. --- WIP. This PR contains two "requests for comments". Essentially: * Is a single complex-to-define linear equivalence preferable over several less complex ones, which might however be of limited interest by themselves? * Which trade-offs are appropriate to make things computable? - [ ] depends on: #32608 - [x] depends on: #32600 - [x] depends on: #32598 [](https://gitpod.io/from-referrer/) | new-contributor blocked-by-other-PR merge-conflict t-algebra | 683/0 | Mathlib.lean,Mathlib/Data/Sigma/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Nested.lean,Mathlib/LinearAlgebra/PiTensorProduct/Set.lean | 5 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 85 days ago | 10 minutes |
| 33520 | NoneMore | feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input | There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure. The other direction depends on #33458. --- [](https://gitpod.io/from-referrer/) | t-logic new-contributor | 55/0 | Mathlib/ModelTheory/ElementarySubstructures.lean | 1 | 3 | ['Citronhat', 'NoneMore', 'github-actions'] | awainverse | 1 month ago | 34 days ago | 59 days |
| 30260 | imbrem | feat(CategoryTheory/Monoidal): added CocartesianMonoidalCategory | As discussed in #21603 and #28718; this implements chosen finite coproducts on top of `AddMonoidalCategory` as defined in #30150 --- - [ ] depends on: #30150 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR large-import new-contributor t-category-theory | 839/125 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Cocartesian/Basic.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/Tactic/ToAdditive/GuessName.lean | 5 | 4 | ['github-actions', 'imbrem', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30258 | imbrem | feat(CategoryTheory/Monoidal): to_additive for proofs using `monoidal` | Building on #30150, this allows us to use `@[to_additive]` on proofs containing `monoidal`, by tagging the lemmas `monoidal` outputs with `@[to_additive]` as appropriate. Testing on my branch [`additive-monoidal-coherence`](https://github.com/imbrem/mathlib4/tree/additive-monoidal-coherence) shows that this works. It is still future work to have either the `monoidal` tactic or a new `add_monoidal` tactic work for `AddMonoidalCategory` instances directly. --- - [ ] depends on: #30150 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR large-import new-contributor t-category-theory | 524/140 | Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/MonoidalComp.lean,Mathlib/Tactic/ToAdditive/GuessName.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32608 | 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 [](https://gitpod.io/from-referrer/) | new-contributor awaiting-zulip t-algebra | 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 | 1 month ago | 71 days ago | 10 days |
| 32742 | 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). --- [](https://gitpod.io/from-referrer/) | new-contributor awaiting-zulip t-measure-probability | 4/0 | Mathlib/MeasureTheory/Constructions/Polish/Basic.lean | 1 | 9 | ['ADedecker', 'LTolDe', 'dupuisf', 'github-actions', 'jcommelin'] | PatrickMassot | 1 month ago | 56 days ago | 11 days |
| 33109 | felixpernegger | feat(Data/Nat/Choose): Binomial inversion | This PR adds binomial inversion (also called binomial transform), which is a useful method for proving binomial identities. It is tricky to find direct references to binomial inversion, but for example [this](https://en.wikipedia.org/wiki/Binomial_transform#Binomial_convolution) Wikipedia article mentions it ("The formula"). The first theorem ```alternating_sum_choose_mul_of_alternating_sum_choose_mul``` could be refined (we only need the hypothesis ```h``` up to some point), but this seems to needlessly complicate it. | awaiting-author new-contributor t-data | 107/0 | Mathlib.lean,Mathlib/Data/Nat/Choose/Inversion.lean | 2 | 6 | ['dagurtomas', 'felixpernegger', 'github-actions', 'thomaskwaring', 'wwylele'] | dagurtomas | 1 month ago | 40 days ago | 33 days |
| 30121 | idontgetoutmuch | feat(Mathlib/Geometry/Manifold): principal fiber bundle core | A structure capturing what it means to be a principal fibre bundle. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-differential-geometry new-contributor | 227/0 | Mathlib.lean,Mathlib/Geometry/Manifold/PrincipalFiberBundle/PrincipalGBundle.lean | 2 | 8 | ['github-actions', 'grunweg', 'idontgetoutmuch', 'mathlib4-merge-conflict-bot'] | hrmacbeth | 1 month ago | 127 days ago | 24 days |
| 31102 | JOSHCLUNE | feat: require LeanHammer | Experimenting with adding LeanHammer as a mathlib dependency --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor t-meta | 61/4 | Mathlib/Tactic/Common.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,MathlibTest/Hammer.lean,lake-manifest.json,lakefile.lean | 5 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33431 | gululu996-ui | feat(Combinatorics/SimpleGraph/Bipartite): characterize bipartite simple graphs by even cycles | Add the classical characterization of bipartite simple graphs: a simple graph is bipartite if and only if every cycle has even length. Previously, mathlib has the definition of `IsBipartite` for `SimpleGraph` and various lemmas about bipartite graphs, but it does not provide this equivalence in a single theorem, so users have to reprove or reassemble it from existing results. Prove the forward direction by showing a 2-coloring alternates along any walk, so every cycle must have even length. Prove the converse by showing that if an odd cycle exists then no bipartition is possible, hence if all cycles are even the graph admits a bipartition. | new-contributor t-combinatorics awaiting-author | 186/1 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean | 1 | 5 | ['NickAdfor', 'github-actions', 'jcommelin'] | kmill | 1 month ago | 32 days ago | 26 days |
| 34007 | martinwintermath | feat(Algebra/Module/Submodule/Dual): dual operator for submodules | Add new file `Dual.lean` that defines the dual operator for submodules. The main definition is * `Submodule.dual`: given a bilinear pairing `p` between two `R`-modules `M` and `N` and a set `s` in `M`, `Submodule.dual p s` is the submodule in `N` consisting of all points `y` such that `0 = p x y` for all `x ∈ s`. This implementation of the `dual` operator for submodules is written to parallel the implementation of `PointedCone.dual`. Include some additional results: * theorems that represent the dual as the kernel of a linear map * theorems for the relation between dual and the `dualAnnihilator` and `dualCoannihilator` of a submodule. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor awaiting-author | 236/0 | Mathlib.lean,Mathlib/Algebra/Module/Submodule/Dual.lean | 2 | 5 | ['github-actions', 'joelriou', 'martinwintermath'] | joelriou | 1 month ago | 32 days ago | 14 days |
| 34703 | martinwintermath | Generalizing orthogonalBilin | --- [](https://gitpod.io/from-referrer/) | new-contributor | 49/25 | Mathlib/Analysis/InnerProductSpace/Orthogonal.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean | 3 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 34375 | jvanwinden | feat(MeasureTheory/Function/AEEqOfLIntegral): introduce lemmas for rewriting a.e. inequalities | Introduce the following lemmas: - ae_le_const_iff_forall_gt_imp_ae_lt, - ae_const_le_iff_forall_lt_imp_ae_gt, - ae_le_const_iff_forall_gt_imp_ae_le, - ae_const_le_iff_forall_lt_imp_ae_ge, which can be used get an epsilon of room in a.e. inequalities, with the epsilon being outside the a.e. quantifier. The 'le/ge' variants require a dense ordering. --- [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 24/0 | Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean | 1 | 4 | ['github-actions', 'jvanwinden', 'urkud'] | kex-y | 1 month ago | 38 days ago | 38 days |
| 34291 | YellPika | feat(Data): a monad for partial computations | This is the code corresponding to [mathlib4 > A monad for partial computations](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/A.20monad.20for.20partial.20computations/with/569619800). Not currently intended to be merged. This PR depends on #33941. The only changes relevant to this discussion are in `OmegaPart.lean`, `OmegaProp.lean`, and `Quot.lean`. # Original Message Inspired by @**Aaron Liu**'s comments in #**mathlib4>deprecate Mathlib.Data.Nat.PartENat?@538009243** and #**Is there code for X?>Divergence monad@538020049** I made an attempt at constructing a monad for partial computations with a computable `OmegaCompletePartialOrder` instance (neither `Option` nor `Part` support this use case). My solution consists of three parts. **A computable version of `Quotient.choice`.** As mentioned in #**lean4>Quot.lift for dependent products@467436416** , the "obvious" computational interpretation of `Quotient.choice : (∀i:I, @Quotient (A i) …) → @Quotient (∀i:I, A i)` is not sound. However, we _can_ provide a sound computational interpretation when we restrict `I` to `ℕ`: ```lean unsafe def Quotient.countableChoice_impl {α : Nat → Type*} {S : ∀ i, Setoid (α i)} (f : ∀ i, Quotient (S i)) : @Quotient (∀ i, α i) (by infer_instance) := Quotient.lift₂ (fun z s ↦ ⟦fun | .zero => z | .succ n => s n⟧) (fun z₁ s₁ z₂ s₂ h₁ h₂ ↦ by apply sound rintro ⟨_|n⟩ · apply h₁ · apply h₂) (f 0) (countableChoice_impl (fun n ↦ f n.succ)) @[implemented_by Quotient.countableChoice_impl] def Quotient.countableChoice {α : Nat → Type*} {S : ∀ i, Setoid (α i)} (f : ∀ i, Quotient (S i)) : @Quotient (∀ i, α i) (by infer_instance) := Quotient.choice f ``` My justification for the soundness of this implementation comes from the fact that only uses existing (sound and computable) functions + general recursion. The implementation is found [here](https://github.com/YellPika/mathlib4/blob/99d38f164a97c7aa225283ef6016f0279419a994/Mathlib/Data/Quot.lean#L430) (it uses `unquot` instead of recursion for performance reasons, but should be equivalent). **A type of semi-computable propositions.** Next, I define a type of semi-computable propositions `ΩProp` as a quotient of the type of boolean sequences `(ℕ → Bool) / ≈`, where `p ≈ q ≝ (∃n, p n) ↔ (∃n, q n)`. A sequence is interpreted as "true" if at least one element in the sequence is `true`, and the quotient relation ensures that we cannot observe the difference between different "true" sequences. The `ΩProp` type has a (computable) `OmegaCompletePartialOrder`, and `Quotient.countableChoice` is used in the implementation of `ωSup`. The implementation of this type is [here](https://github.com/YellPika/mathlib4/blob/quot-choice-compute/Mathlib/Data/OmegaProp.lean). **A type of semi-computable computations.** Finally, I define the type `ΩPart A` of semi-computable computations returning a value of type `A`. The definition of `ΩPart` is the same as `Part` with `ΩProp` swapped for `Prop`. Again, `ΩPart A` has a (computable) `OmegaCompletePartialOrder` instance. The implementation can be found [here](https://github.com/YellPika/mathlib4/blob/quot-choice-compute/Mathlib/Data/OmegaPart.lean). This was mainly just a fun experiment and the code is not ready to be (or perhaps should not be) put in mathlib. I thought I should post it here to see if 1) there is any interest or 2) an implementation already exists that has escaped my notice. | new-contributor large-import merge-conflict | 1157/40 | Mathlib/Data/OmegaPart.lean,Mathlib/Data/OmegaProp.lean,Mathlib/Data/Quot.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/ScottContinuity.lean | 5 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 1 month ago | unknown | unknown |
| 32570 | ksenono | feat(Combinatorics/SimpleGraph): bipartite subgraphs and vertex-disjoint graphs for Konig's theorem | --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 22/0 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 2 | 19 | ['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono', 'vlad902'] | kmill | 1 month ago | 28 days ago | 80 days |
| 32555 | ksenono | feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem | --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 127/0 | Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean | 2 | 24 | ['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono'] | awainverse | 1 month ago | 28 days ago | 80 days |
| 34053 | christian-oudard | feat: Add error function (erf) and complementary error function (erfc) | ## Summary I was doing some finance math and needed the Error Function, so I thought I'd contribute it. ### Main definitions * `Real.erf`: The error function, defined as `(2/√π) ∫₀ˣ e^(-t²) dt` * `Real.erfc`: The complementary error function, defined as `1 - erf x` ### Main results * `Real.erf_zero`: `erf 0 = 0` * `Real.erf_neg`: `erf` is an odd function: `erf (-x) = -erf x` * `Real.erf_tendsto_one`: `erf x → 1` as `x → ∞` * `Real.erf_tendsto_neg_one`: `erf x → -1` as `x → -∞` * `Real.erf_le_one`: `erf x ≤ 1` for all `x` * `Real.neg_one_le_erf`: `-1 ≤ erf x` for all `x` * `Real.deriv_erf`: `deriv erf x = (2/√π) * exp(-x²)` * `Real.differentiable_erf`: `erf` is differentiable * `Real.continuous_erf`: `erf` is continuous * `Real.strictMono_erf`: `erf` is strictly monotone Also adds `erf` to `docs/overview.yaml` under Special Functions. --- - [x] Builds successfully - [x] `lake exe runLinter` passes - [x] `lake exe mk_all --check` passes | t-analysis new-contributor awaiting-author | 333/0 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Erf.lean,docs/overview.yaml | 3 | 18 | ['SnirBroshi', 'christian-oudard', 'github-actions', 'j-loreaux', 'plp127'] | j-loreaux | 1 month ago | 28 days ago | 14 days |
| 33599 | nielstron | feat(Computability/ContextFreeGrammar): closure under union | --- This PR picks up https://github.com/leanprover-community/mathlib4/pull/13514 and resolves the outstanding errors. - [ ] depends on: #33592 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-computability new-contributor | 498/0 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | YaelDillies | 27 days ago | 46 days ago | 10 days |
| 33601 | nielstron | feat(Computability/ContextFreeGrammar): Concatenation of CFGs is CFG | --- - [ ] depends on: #33599 - [ ] depends on: #33592 [](https://gitpod.io/from-referrer/) | t-computability new-contributor blocked-by-other-PR | 941/0 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 27 days ago | unknown | unknown |
| 33592 | nielstron | feat(Computability/ContextFreeGrammar): mapping between two types of nonterminal symbols | This PR picks up https://github.com/leanprover-community/mathlib4/pull/15895 and resolves the failing lemma by redefining Good symbols. --- I checked that https://github.com/leanprover-community/mathlib4/pull/13514 builds correctly when based on this build. PR for that is #33599 This is my first contribution please let me know of any changes I should outline. [](https://gitpod.io/from-referrer/) | awaiting-author t-computability new-contributor | 158/0 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 27 | ['YaelDillies', 'github-actions', 'madvorak', 'nielstron'] | nobody | 27 days ago | 46 days ago | 10 days |
| 34191 | IlPreteRosso | feat(Topology/Algebra/InfiniteSum): Discrete Convolution API 1st PR | Defines the very basics of the discrete convolution API. In analogy with [MeasureTheory.Convolution](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Convolution.html#MeasureTheory.convolution). Main definitions include - `mulFiber`, `convolution`, `ConvolutionExists`, `ConvolutionExists.add_distrib`, `ConvolutionExistsAt.smul_convolution`, `mulFiber_swapEquiv`, `convolution_comm` RM: - The main docstring is *as is* - Next step is triple sum intrastrcutre + `assoc` theorems for convolution (long) Continues the work from #33411 and #33410 (splitting into shorter PRs, carries over the modifications from previous reviews) | t-topology new-contributor | 277/0 | Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/DiscreteConvolution.lean | 2 | 18 | ['IlPreteRosso', 'github-actions', 'j-loreaux'] | PatrickMassot | 27 days ago | 27 days ago | 36 days |
| 34726 | GrigorenkoPV | feat(Analysis/SpecialFunctions/Trigonometric/Basic): sin and cos of multiples of π / 3 | --- Merge of https://github.com/leanprover-community/mathlib4/pull/26349 [](https://gitpod.io/from-referrer/) | new-contributor | 159/0 | Mathlib/Algebra/Order/Monoid/NatCast.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Data/Nat/Cast/Defs.lean,MathlibTest/trigonometry.lean | 4 | 1 | ['github-actions'] | nobody | 26 days ago | unknown | unknown |
| 34709 | dennj | feat(Analysis/ODE): add discrete Grönwall inequality | ## Summary Add discrete Grönwall inequality to `Mathlib/Analysis/ODE/DiscreteGronwall.lean` Provides bounds for recurrence inequalities of the form `u(n+1) ≤ c(n) * u(n) + b(n)` ### Main results - `discrete_gronwall_prod_general`: Product form working over any linearly ordered commutative ring - `prod_one_add_Ico_mono`: Auxiliary lemma for product comparisons over subintervals - `discrete_gronwall`: Classical exponential bound `u(n) ≤ (u(n₀) + ∑ b(k)) * exp(∑ c(i))` (ℝ-specific) - `discrete_gronwall_Ico`: Uniform bound over a finite interval (ℝ-specific) ## Related work Complements the continuous Grönwall inequality in `Mathlib.Analysis.ODE.Gronwall` ## References * Grönwall, T. H. (1919). "Note on the derivatives with respect to a parameter of the solutions of a system of differential equations". *Annals of Mathematics*, 20(4), 292–296. | t-analysis new-contributor | 174/0 | Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean | 2 | 1 | ['github-actions'] | ADedecker | 26 days ago | 30 days ago | 30 days |
| 34394 | Citronhat | feat(Algebra/Order/Ring): add constructors for linear ordered rings | Add constructors for ordered rings from `mul_nonneg` / `mul_pos` that derive `ZeroLEOneClass` from a linear order. | new-contributor t-algebra awaiting-author | 31/14 | Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/RingTheory/HahnSeries/Lex.lean | 2 | 6 | ['Citronhat', 'Vierkantor', 'github-actions', 'leanprover-radar'] | Vierkantor | 25 days ago | 25 days ago | 12 days |
| 34182 | IlPreteRosso | feat(Data/Finsupp/Single, Data/Finsupp/Indicator): Add set_indicator_singleton, indicator_singleton; golfed single_eq_set_indicator, single_eq_indicator | [Mathlib.Data.Finsupp.Single](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Single.html#Finsupp.single) - Add `set_indicator_singleton`, golfed `single_eq_set_indicator` [Mathlib.Data.Finsupp.Indicator](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Indicator.html#Finsupp.indicator_apply) - Add `indicator_singleton`, golfed `single_eq_indicator` Continues the work from #34095 | large-import t-data new-contributor | 17/17 | Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean | 2 | 29 | ['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] | eric-wieser and urkud | 25 days ago | 41 days ago | 42 days |
| 33493 | michelsol | feat(RingTheory/Polynomial): An explicit formula for the Chebyshev polynomials of the first kind | Adds the following explicit formula on the Chebyshev polynomial of the first kind of order n. ${ T_{n}(x)\ =\ \sum \limits _{k=0}^{\lfloor {\frac {n}{2}}\rfloor } {\binom {n}{2k}} \left(\ X^{2}-1\ \right)^{k}\ X^{n-2k}}$ This explicit formula can be found [here](https://en.wikipedia.org/wiki/Chebyshev_polynomials#Explicit_expressions). There is a proof using complex numbers but it only works if the ring R = ℂ. The proof here is by induction and works in a commutative ring R. Mathlib seems to extend the definition of Chebyshev polynomials for $n \in \mathbb{Z}$ but this would make the formula more cumbersome with `n.natAbs` in place of `n`'s, so I expressed it on `n : ℕ` directly. --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor awaiting-author | 51/1 | Mathlib/RingTheory/Polynomial/Chebyshev.lean | 1 | 8 | ['YuvalFilmus', 'erdOne', 'github-actions', 'metakunt', 'michelsol'] | chrisflav | 24 days ago | 24 days ago | 35 days |
| 34815 | Deep0Thinking | feat(Analysis/SpecialFunctions/ImproperIntegrals): Frullani integral | - [ ] depends on: #34966 --- Add a proof of **Frullani integral**. Main theorems: - `Frullani.integral_Ioi` - `IntegrableOn.tendsto_integral_Ioi` - `exists_integral_div_eq_mul_log` Supporting lemmas: - `Frullani.comp_mul_left_div` - `Frullani.intervalIntegrable_div` - `Frullani.exists_integral_div_eq_mul_log` - `Ioi_diff_Ioc` - `ContinuousOn.comp_mul_left_div`, `ContinuousOn.comp_mul_right_div` - `ContinuousOn.comp_mul_left`, `ContinuousOn.comp_mul_right` --- [](https://gitpod.io/from-referrer/) | new-contributor large-import t-analysis awaiting-author blocked-by-other-PR | 270/2 | Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean,Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/Monoid.lean | 6 | 6 | ['CoolRmal', 'Deep0Thinking', 'github-actions', 'mathlib-dependent-issues', 'sgouezel'] | nobody | 23 days ago | 26 days ago | 1 day |
| 34093 | YellPika | feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas | --- - [x] depends on: #33941 [](https://gitpod.io/from-referrer/) | t-order new-contributor | 297/0 | Mathlib.lean,Mathlib/Data/Option/Order.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean | 4 | 5 | ['YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | pechersky | 23 days ago | 27 days ago | 27 days |
| 34026 | SnkXyx | feat(Algebra/MvPolynomial): add mainVariable | Add `mainVariable` of `MvPolynomial`, the largest variable index appearing in the polynomial. Main Theorems: * `mainVariable_eq_bot_iff_eq_C` * `mainVariable_sum_le` * `mainVariable_prod_le` * `degreeOf_eq_zero_of_mainVariable_lt` The PR is upstreamized from [github.com/WuProver/lean_characteristic_set](https://github.com/WuProver/lean_characteristic_set) --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 147/0 | Mathlib.lean,Mathlib/Algebra/MvPolynomial/MainVariable.lean | 2 | 1 | ['github-actions'] | mattrobball | 22 days ago | 47 days ago | 47 days |
| 26985 | agjftucker | feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfProdDomain | This PR continues the work from #16743. Original PR: https://github.com/leanprover-community/mathlib4/pull/16743 --- - [x] depends on: #28352 [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 269/157 | Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean | 4 | 27 | ['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] | hrmacbeth | 21 days ago | 21 days ago | 84 days |
| 34934 | zorkary | feat(Data/List): add constructive split classifiers | ## Summary This PR adds a small constructive list-classification utility module: - `Mathlib/Data/List/SplitClassify.lean` (new file) - `Mathlib.lean` (one new public import) The goal is to provide reusable case-data classifiers for common split equalities, so downstream proofs can branch on explicit structure instead of repeatedly rebuilding list-shape arguments. ## Added API - `List.append_cons_eq_singleton` - `List.ConsSplit` - `List.classify_cons_vs_split` - `List.SwapSplit` - `List.classify_swap_vs_split` ## Scope and non-goals - No existing theorem statements were changed. - No existing proof logic was modified. - This is a narrow additive change (new module + one import). ## Build I verified: - `lake build Mathlib.Data.List.SplitClassify` ## Duplicate/overlap check Before opening this PR, I checked local mathlib sources and GitHub search for likely overlap, including targeted searches for: - `classify_cons_vs_split` - `classify_swap_vs_split` - `append_cons_eq_singleton` - open PRs/issues around list split/classification helpers I did not find direct existing equivalents or open PRs with the same API. ## AI usage disclosure I used AI assistance (Codex/LLM) for drafting and implementation support. I understand the high-level intent and have validated the module builds. I am opening this as a draft specifically to get maintainer review on technical details before marking it ready. | t-data new-contributor | 213/0 | Mathlib.lean,Mathlib/Data/List/SplitClassify.lean | 2 | 1 | ['github-actions'] | nobody | 21 days ago | unknown | unknown |
| 32744 | NoneMore | feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas | This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas. The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable. There are also some tool lemmas derived by the preimage lemma. --- [](https://gitpod.io/from-referrer/) | new-contributor t-logic | 147/0 | Mathlib/ModelTheory/Definability.lean | 1 | 59 | ['NoneMore', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] | awainverse | 21 days ago | 53 days ago | 74 days |
| 26986 | WangYiran01 | feat(Partition): add bijection for partitions with max part ≤ r | This PR adds a new theorem `partition_max_equals_bound` to `Mathlib.Combinatorics.Enumerative.Partition`. It constructs a bijection between: - The set of partitions of `n` in which `r ∈ π.parts` and all parts are `≤ r`, and - The set of partitions of `n - r` whose largest part is at most `r`. This provides a constructive proof via removing/adding `r` from/to the partition multiset, in line with classical enumerative combinatorics. Contributed by Yiran Wang. | awaiting-author t-combinatorics new-contributor merge-conflict | 92/0 | Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Data/Multiset/Lattice.lean | 2 | 20 | ['WangYiran01', 'github-actions', 'jcommelin', 'kckennylau', 'kim-em', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | b-mehta | 21 days ago | 54 days ago | 120 days |
| 26168 | oliver-butterley | feat(MeasureTheory.VectorMeasure): variation defined as a supremum is equal to variation defined using the Hahn-Jordan decomposition | Add `signedMeasure_totalVariation_eq`: if `μ` is a `SignedMeasure` then variation defined as a supremum is equal to variation defined using the Hahn-Jordan decomposition. Co-authored-by: @yoh-tanimoto - [ ] depends on: #26165 --- [](https://gitpod.io/from-referrer/) | blocked-by-other-PR new-contributor t-measure-probability merge-conflict | 916/0 | Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Integral.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Equiv.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Lemmas.lean | 5 | 4 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 21 days ago | 241 days ago | 15 days |
| 33463 | khwilson | feat(Mathlib/Analysis/Polynomial/MahlerMeasure): Mahler Measure for other rings | Define `mahlerMeasure'` which allows you specify a norm preserving map `v` from any `NormedRing A` (or more general) to `ℂ`. Also provide wrappers around the main `mahlerMeasure` lemmas that are used for estimation. --- [](https://gitpod.io/from-referrer/) | new-contributor t-analysis awaiting-author | 97/3 | Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/NumberTheory/MahlerMeasure.lean | 2 | 21 | ['github-actions', 'j-loreaux', 'khwilson', 'plp127', 'vlad902'] | nobody | 21 days ago | 21 days ago | 45 seconds |
| 34481 | DAE123456 | feat: Ore's Theorem | Ore Theorem : Let G be a graph of order n ≥ 3 that satisfies the Ore property. Then G has a Hamilton cycle. | t-combinatorics new-contributor | 3372/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Ore.lean | 2 | 25 | ['DAE123456', 'LLaurance', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'kim-em', 'tb65536', 'vlad902'] | b-mehta | 21 days ago | 29 days ago | 33 days |
| 34722 | GrigorenkoPV | feat(Data/Finset/RangeDistance): add | --- Rebase of https://github.com/leanprover-community/mathlib4/pull/26347 [](https://gitpod.io/from-referrer/) | new-contributor t-data | 34/0 | Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean | 3 | 4 | ['GrigorenkoPV', 'github-actions', 'joneugster', 'plp127'] | TwoFX | 21 days ago | 29 days ago | 29 days |
| 35122 | Marygold-Dusk | feat: define C^n submersions | This PR defines submersions between C^n manifolds. In the infinite-dimensional setting, submersions are defined via local normal forms rather than surjectivity of the mfderiv. A map f is a submersion at x if, in suitable charts around x and f x, it has the form (u, v) ↦ u after identifying the model space with a product.
We prove a few basic properties:
- being a submersion is a local property,
- products of submersions are submersions,
- the set of submersed points is open
Future PRs will prove that submersions are C^n and deduce equivalence with the standard definition in finite dimensions. From the path towards the regular value theorem.
This file was developed under the supervision of Michael Rothgang.
Co-authored-by: Michael Rothgang |
t-differential-geometry new-contributor | 596/0 | Mathlib.lean,Mathlib/Geometry/Manifold/Submersion.lean | 2 | 2 | ['github-actions'] | grunweg | 20 days ago | 20 days ago | 20 days |
| 32845 | jonasvanderschaaf | feat(CategoryTheory): `GrothendieckTopology.yoneda` preserves certain (co)limits | We prove that if every `J`-sheaf preserves limits of shape `Kᵒᵖ`, then `J.yoneda` preserves colimits of shape `K`, and the dual statement. We specialize to the case of finite products, and deduce that the inclusion of light profinite sets in light condensed sets preserves finite coproducts
From [LeanCondensed](https://github.com/dagurtomas/LeanCondensed)
---
Co-authored-by: Dagur Asgeirsson |
new-contributor t-category-theory t-condensed large-import awaiting-author | 107/5 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean,Mathlib/CategoryTheory/Sites/PreservesLimits.lean,Mathlib/Condensed/Functors.lean,Mathlib/Condensed/Light/Functors.lean | 5 | 5 | ['github-actions', 'jonasvanderschaaf', 'robin-carlier'] | nobody | 20 days ago | 32 days ago | 8 days |
| 33969 | goliath-klein | refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Currently, injectiveSeminorm = projectiveSeminorm | **WIP / RFC!** Arguably, `injectiveSeminorm` should be re-defined in Mathlib. See #34137 and [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798261) for context. In this file, we collect some results about the current definition and a possible alternative. Contents: * A theorem `injectiveSeminorm_eq_projectiveSeminorm` formalizing the equality of the current definitions. However, I think it is unlikely that keeping the alternative characterization would be worth the effort. The interesting direction `(L2') ≤ (L1)` follows from `norm_eval_le_projectiveSeminorm` which is still present. The converse direction is [somewhat tautological](https://github.com/leanprover-community/mathlib4/pull/34137). A proof of `(L2) = (L1)` (probably requiring Hahn-Banach) might be more interesting. * A preliminary implementation of the injective seminorm as commonly understood. * Sufficient conditions for the multiplicativity property `‖⨂ m i‖_∧ = ∏ ‖m i‖` to hold. This implements a TBD item. --- Co-authored-by: Davood H. H. Tehrani [](https://gitpod.io/from-referrer/) | WIP t-analysis new-contributor large-import merge-conflict | 774/387 | Mathlib.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/LeastReasonable.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Analysis/Normed/Operator/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean | 8 | 3 | ['github-actions', 'goliath-klein', 'mathlib-merge-conflicts'] | nobody | 20 days ago | unknown | unknown |
| 33233 | jazzits | feat(GroupTheory): add chosen group presentations and Tietze transformations (1) and (2) | Defines a notion of group presentation for G compatible with Mathlib.GroupTheory.PresentedGroup: generators `ι → G` whose range generates G, and relators `rels : Set (FreeGroup ι)` whose normal closure equals the kernel of `FreeGroup ι →* G`. Provides the canonical map `PresentedGroup P.rels →* G` and equivalences showing `PresentedGroup P.rels ≃* G` and invariance under changing presentations. Also formalizes Tietze moves (1)–(2) as equivalences of PresentedGroups: adding/removing a relator that lies in the normal closure of the others. TODO: moves (3)–(4) (add/remove generator with a defining relation). No existing definitions are modified | t-group-theory new-contributor awaiting-author | 328/0 | Mathlib.lean,Mathlib/GroupTheory/Presentation.lean | 2 | 15 | ['github-actions', 'homeowmorphism', 'jazzits', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536'] | tb65536 | 19 days ago | 64 days ago | 5 days |
| 34725 | GrigorenkoPV | feat(RingTheory/RootsOfUnity/LowDegree): quadratic, cubic, quartic, quintic roots of unity | Closes https://github.com/leanprover-community/mathlib4/pull/25907 --- Merge of https://github.com/leanprover-community/mathlib4/pull/25907 [](https://gitpod.io/from-referrer/) | new-contributor t-ring-theory awaiting-author | 247/0 | Mathlib.lean,Mathlib/Algebra/CharP/Invertible.lean,Mathlib/Algebra/QuadraticDiscriminant.lean,Mathlib/RingTheory/RootsOfUnity/LowDegree.lean | 4 | 22 | ['GrigorenkoPV', 'LLaurance', 'erdOne', 'github-actions', 'joneugster'] | nobody | 19 days ago | 24 days ago | 5 days |
| 33032 | ksenono | feat(Combinatorics/SimpleGraph): Konig’s theorem on bipartite graphs | --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor blocked-by-other-PR merge-conflict | 832/251 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Konig/Auxillary.lean,Mathlib/Combinatorics/SimpleGraph/Konig/Konig.lean,Mathlib/Combinatorics/SimpleGraph/Konig/KonigFin.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/VertexCover.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean | 12 | 8 | ['SnirBroshi', 'github-actions', 'ksenono', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vlad902'] | nobody | 19 days ago | unknown | unknown |
| 31662 | edwin1729 | feat(Topology/Order): topological basis of scott topology on Complete… | …PartialOrder --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) for this PR. (1/2) PRs in domain theory, proving that scott topologies over Algebraic DCPOs (`CompletePartialOrder`) are sober. The main reference is [Reneta, 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) - [ ] depends on: #33061 **The next PR is here:** #31670 [](https://gitpod.io/from-referrer/) | t-topology new-contributor awaiting-author merge-conflict | 281/1 | Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib | 4 | 42 | ['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] | b-mehta | 18 days ago | 38 days ago | 6 days |
| 31670 | edwin1729 | feat(Topology/Order): Scott Topology is Sober over Algebraic DCPO | --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) here (2/2) PR to prove result in Stone Duality. Here we prove that Scott Topologies over Algebraic DCPOs are sober. - [ ] depends on: #31662 [](https://gitpod.io/from-referrer/) | t-topology blocked-by-other-PR new-contributor merge-conflict | 473/1 | Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib | 4 | 4 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 18 days ago | unknown | unknown |
| 34159 | wangying11123 | feat(Geometry/Euclidean/Similarity): Add Triangle similarity on oangle | Add theorems about triangles similarity on oangle | t-euclidean-geometry new-contributor awaiting-author | 154/1 | Mathlib/Geometry/Euclidean/Similarity.lean | 1 | 8 | ['LLaurance', 'github-actions', 'jsm28', 'wangying11123'] | jsm28 | 18 days ago | 19 days ago | 7 days |
| 32692 | 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 awaiting-author | 229/0 | Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Tendsto.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean | 3 | 34 | ['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin'] | nobody | 18 days ago | 39 days ago | 9 days |
| 32807 | WilliamCoram | feat: Define the Gauss norm for MvPowerSeries | We adjust the current definition for Gauss norm on power series to work for multivariate power series. If this seems acceptable I can refactor the single variable case. --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor | 124/0 | Mathlib.lean,Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean | 2 | 25 | ['WilliamCoram', 'erdOne', 'fbarroero', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | alreadydone | 18 days ago | 18 days ago | 31 days |
| 34996 | homeowmorphism | feat(GroupTheory/FreeGroup/Basic): injection between types induces injection between free groups | feat(GroupTheory/FreeGroup/Basic): adds the theorem that if α and β are arbitrary types and there is a injection between them, then the induced FreeGroup.map is also injective. | new-contributor merge-conflict | 26/6 | Mathlib/FieldTheory/Minpoly/IsConjRoot.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean | 2 | 5 | ['copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 18 days ago | 23 days ago | 5 seconds |
| 31366 | FaffyWaffles | feat(Analysis/SpecialFunctions/StirlingRobbins): Robbins' sharp stepwise bound for stirlingSeq | Introduces `Mathlib.Analysis.SpecialFunctions.StirlingRobbins`, proving Robbins' sharp stepwise bound for the Stirling sequence. * Main theorem: `log_stirlingSeq_diff_le` * Improves the existing bound `1/(4k^2)` to the sharp `1/(12k(k+1))` * Adds helper lemmas on summability and geometric bounds * Complements `Stirling.lean` References: - https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/SpecialFunctions/Stirling.html - Robbins (1955), *A Remark on Stirling’s Formula* --- **Note for Transparency:** Assistance provided by AI tools (Claude and Aristotle) for drafting, text, and structure. [](https://gitpod.io/from-referrer/) | t-analysis new-contributor awaiting-author | 64/5 | Mathlib/Analysis/SpecialFunctions/Stirling.lean | 1 | 17 | ['FaffyWaffles', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'tb65536'] | nobody | 18 days ago | 98 days ago | 4 days |
| 35144 | daniel-carranza | feat(CategoryTheory/Enriched): tensor product of enriched categories | For a braided monoidal category `V`, defines the tensor product of `V`-categories `C` and `D`, and shows that the type of `V`-functors out of the tensor product `C \times D` is equivalent to the type of "enriched bifunctors" `EnrichedBifunctor V C D`. --- This work originates from infinity-cosmos project, where it is used to formalize the notion of cotensors in an enriched category. There are some additional coherence lemmas in a braided monoidal category which have been added. Currently, line 209 violates the style guideline that terminal simp calls should not be squeezed. When I tried to replace this with a single `simp`, I get an error message: `maximum recursion depth has been reached`. Any suggestions (either with this or anything else) are greatly appreciated - thank you! [](https://gitpod.io/from-referrer/) | new-contributor t-category-theory infinity-cosmos awaiting-author | 333/0 | Mathlib.lean,Mathlib/CategoryTheory/Enriched/TensorProductCategory.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean | 3 | 11 | ['daniel-carranza', 'emilyriehl', 'github-actions', 'robin-carlier'] | nobody | 17 days ago | unknown | unknown |
| 33050 | mkaratarakis | feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem | Lemmas missing for the formalisation of the proof of the Gelfond–Schneider theorem --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor WIP | 238/0 | Mathlib.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/Order.lean,Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart2.lean | 6 | 113 | ['SnirBroshi', 'github-actions', 'j-loreaux', 'mkaratarakis', 'riccardobrasca', 'vihdzp'] | riccardobrasca | 17 days ago | 27 days ago | 6 days |
| 34814 | GrigorenkoPV | feat(Tactic/ClearUnneeded): add `clear_unneeded` tactic | --- The simplest version suggested in https://github.com/leanprover-community/mathlib4/issues/25319 [](https://gitpod.io/from-referrer/) | t-meta new-contributor please-merge-master awaiting-author | 94/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ClearUnneeded.lean,Mathlib/Tactic/Common.lean,MathlibTest/ClearUnneeded.lean,scripts/noshake.json | 6 | 12 | ['BoltonBailey', 'GrigorenkoPV', 'github-actions', 'joneugster'] | joneugster | 17 days ago | 25 days ago | 2 days |
| 34876 | GrigorenkoPV | feat(Tactic/AssumptionQuestion): add `assumption?` tactic | --- As requested in #10361 TODO: maybe add some tests? [](https://gitpod.io/from-referrer/) | t-meta new-contributor awaiting-author | 85/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/AssumptionQuestion.lean,Mathlib/Tactic/Common.lean,MathlibTest/AssumptionQuestion.lean,scripts/noshake.json | 6 | 5 | ['GrigorenkoPV', 'SnirBroshi', 'github-actions', 'joneugster'] | joneugster | 17 days ago | 25 days ago | 22 hours |
| 33217 | Blackfeather007 | feat(Algebra): define associated graded structure for abelian group | In this PR we define the associated graded structure for abelian group when given a filtration and only give some basic lemmas about it. --- migrated from https://github.com/leanprover-community/mathlib4/pull/26857 | new-contributor t-ring-theory awaiting-author | 144/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean | 2 | 5 | ['erdOne', 'github-actions', 'urkud'] | erdOne | 17 days ago | 66 days ago | 4 days |
| 23791 | SEU-Prime | Create AmiceTrans.lean | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-number-theory new-contributor | 2963/0 | Mathlib.lean,Mathlib/Analysis/Normed/Ring/Lemmas2.lean,Mathlib/NumberTheory/Padics/AmiceTrans.lean,Mathlib/NumberTheory/Padics/PSAC.lean,Mathlib/NumberTheory/Padics/PSAC2.lean,Mathlib/NumberTheory/Padics/PSAC3.lean,Mathlib/NumberTheory/Padics/PiGammainPS.lean,Mathlib/NumberTheory/Padics/PsiandVar.lean,Mathlib/RingTheory/AdicCompletion/Lemma.lean,Mathlib/RingTheory/PowerSeries/Comp.lean,Mathlib/Topology/ContinuousMap/ZeroAtBot.lean | 11 | 5 | ['SEU-Prime', 'github-actions', 'leanprover-community-bot-assistant', 'urkud'] | nobody | 17 days ago | unknown | unknown |
| 35332 | yisiox | Add part of Kleene's Theorem: regular expressions match a regular language | This PR adds a proof that the language matched by a regular expression is a regular language. This is achieved by the following constructions and proofs of their correctness - A DFA `epsilon` which accepts the empty language - A DFA `char (a : α)` which accepts the language containing only a single symbol - An Epsilon-NFA `concat (M₁ : εNFA α σ₁) (M₂ : εNFA α σ₂)` which accepts the concatenation of the languages of two Epsilon-NFAs - An Epsilon-NFA `kstar (M : εNFA α σ)` which accepts the Kleene star of a language of an Epsilon-NFA The following theorems on closure are added - `IsRegular.zero` - `IsRegular.one` - `IsRegular.top` - `IsRegular.singleton` - `IsRegular.mul` - `IsRegular.kstar` which demonstrates - `IsRegular.matches` --- [](https://gitpod.io/from-referrer/) | t-computability new-contributor | 496/0 | Mathlib/Computability/DFA.lean,Mathlib/Computability/EpsilonNFA.lean | 2 | 2 | ['github-actions'] | nobody | 16 days ago | unknown | unknown |
| 33281 | michelsol | feat(Analysis/SpecialFunctions/Integrals): integral of 1/sqrt(1-x^2) and its integrability. | Add the integral of the derivative of arcsin and its integrability. --- - [ ] depends on: #33280 [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict t-analysis | 59/0 | Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 16 days ago | 68 days ago | 13 minutes |
| 29777 | yuanyi-350 | feat(Functional Analysis): closed Range Theorem | - [ ] depends on: #29151 [Corollary of Hahn-Banach theorem] - [ ] depends on: #29776 [refactor ContinuousLinearMap.isOpenMap by separating it into sublemmas] --- [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR new-contributor awaiting-author t-analysis merge-conflict | 237/25 | Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Analysis/Normed/Operator/ClosedRange.lean,Mathlib/Analysis/RCLike/Lemmas.lean,Mathlib/Topology/Order/OrderClosed.lean | 5 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | faenuccio | 16 days ago | unknown | unknown |
| 29151 | yuanyi-350 | feat: Corollary of Hahn–Banach theorem | In this PR, I have proved [Rudin, *Functional Analysis* (Theorem 3.7)][rudin1991] which is a step in proving the Closed Range Theorem. Also, I have added tags for the corresponding theorems in Rudin to mathlib.
3.7 Theorem. Suppose B is a convex, balanced, closed set in a locally convex space $X, x_0 \in X$, but $x_0 \notin B$. Then there exists $\Lambda \in X^*$ such that $|\Lambda x| \leq 1$ for all $x \in B$, but $\Lambda x_0>1$
proof. Since $B$ is closed and convex, we can apply (b) of Theorem 3.4, with $A=\{ x_0 \}$ , to obtain $\Lambda_1 \in X^*$ such that $\Lambda_1 x_0=r e^{i \theta}$ lies outside the closure $K$ of $\Lambda_1(B)$. Since $B$ is balanced, so is $K$. Hence there exists $s, 0 |
awaiting-author new-contributor large-import t-analysis merge-conflict | 70/1 | Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/RCLike/Lemmas.lean,Mathlib/Topology/Order/OrderClosed.lean | 3 | 17 | ['faenuccio', 'fpvandoorn', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mcdoll', 'themathqueen', 'yuanyi-350'] | faenuccio | 16 days ago | 163 days ago | 2 days |
| 32918 | michelsol | feat: define `supEdist` and `supDist` | Create a new file Topology.MetricSpace.SupDistance and define the supremal distance in (extended) metric spaces. The defined `supEdist` and `supDist` will have similar theory to the already existing `infEdist` and `infDist`. The motivation is to be able to define the radius of a minimal bounding sphere as the infimum of the supDist later. [zulip discussion here](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalizing.20Jung's.20theorem.20and.20minimal.20bounding.20spheres) | t-topology new-contributor merge-conflict | 75/0 | Mathlib.lean,Mathlib/Topology/MetricSpace/SupDistance.lean | 2 | 5 | ['github-actions', 'mathlib4-merge-conflict-bot', 'michelsol', 'urkud'] | RemyDegenne | 15 days ago | 57 days ago | 21 days |
| 35017 | robo7179 | feat(Combinatorics/SimpleGraph/Acyclic): add every nontrivial tree has atleast two leaves | Added two theorems to prove that every non trivial tree has atleast two leaves (one in Finite the other in Acyclic). --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 94/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean | 2 | 24 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'robo7179'] | nobody | 15 days ago | 15 days ago | 21 days |
| 34578 | dennj | feat: define Boolean circuits over abstract gate families | This PR introduces a foundation for Boolean circuits parameterized by abstract gate families. ## Main definitions - `GateEval`: typeclass for gate families with Boolean semantics - `GateHom`: arity-preserving maps between gate families - `Circuit`: inductive type representing circuit syntax trees - `AC0Gate`, `ACC0Gate`, `TC0Gate`: standard complexity-theoretic gate bases ## Design notes The key design choice is to keep **syntax** (gate labels `G : Nat → Type`) separate from **semantics** (`GateEval.eval`), allowing users to define custom gate families (e.g., MAJ, XOR, arbitrary threshold gates) without modifying core definitions. ### Tree vs DAG representation We evaluated two approaches for circuit representation: 1. **Tree-based** (this PR): Circuits as inductive syntax trees 2. **DAG-based**: Circuits as lists of gates with index-based references We chose tree-based circuits because: - **Compositionality**: Easy to build circuits via `gate g (fun i => subcircuit i)` - **Type safety**: Arity-indexed gates (`G : Nat → Type`) catch errors at compile time - **Manipulation**: Natural support for `mapGate`, `subst`, `mapInputs` - **Mathlib philosophy**: Aligns with structural/compositional reasoning patterns For use cases requiring explicit sharing (complexity analysis, evaluation efficiency), a separate `DAG` type can be added later with proven equivalence via `Circuit.toDAG`. The current representation serves as a minimal foundation for size/depth measures, circuit families, and complexity classes (AC0, ACC0, TC0). --- [](https://gitpod.io/from-referrer/) | new-contributor t-computability | 919/0 | Mathlib.lean,Mathlib/Computability/Circuit/Basic.lean,Mathlib/Computability/Formula/Basic.lean,Mathlib/Computability/Gate.lean | 4 | 18 | ['LLaurance', 'YuvalFilmus', 'dennj', 'github-actions'] | nobody | 15 days ago | 15 days ago | 22 days |
| 26413 | michaellee94 | feat: existence of maximal solutions for ODEs meeting Picard-Lindelöf conditions | Add existence proof for maximal solution of ODE using Picard-Lindelöf and a uniqueness theorem using Grönwall's lemma. --- - [x] depends on: #26382 - [ ] depends on: #29186 - [ ] depends on: #35043 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR new-contributor t-analysis merge-conflict | 1300/431 | Mathlib.lean,Mathlib/Analysis/ODE/Basic.lean,Mathlib/Analysis/ODE/ExistUnique.lean,Mathlib/Analysis/ODE/Gronwall.lean,Mathlib/Analysis/ODE/MaximalSolution.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean,docs/1000.yaml,docs/undergrad.yaml | 13 | 95 | ['botbaki-review', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'michaellee94', 'winstonyin'] | nobody | 14 days ago | unknown | unknown |
| 33712 | wangying11123 | feat(Geometry/Euclidean/Angle/Unoriented/Projection): Add sameray_orthogonalProjection_vsub_of_angle_lt | Add sameray_orthogonalProjection_vsub_of_angle_lt `sameray_orthogonalProjection_vsub_of_angle_lt` When an angle is acute, the vector to the orthogonal projection lies in the same ray as the given direction vector. | new-contributor t-euclidean-geometry awaiting-author | 20/0 | Mathlib/Geometry/Euclidean/Angle/Unoriented/Projection.lean | 1 | 4 | ['JovanGerb', 'github-actions', 'j-loreaux'] | JovanGerb | 14 days ago | 14 days ago | 39 days |
| 33786 | hdmkindom | feat(Analysis/Matrix): add Jacobian matrix for matrix-valued functions | This PR introduces the Jacobian matrix for matrix-valued functions `F : Matrix m n ℝ → Matrix p q ℝ`. The Jacobian matrix `jacobianMatrix F X` at point `X` is indexed by `(p × q) × (m × n)`, where each entry represents the partial derivative with respect to a basis element. To handle instance-mismatch issues with matrix norms, we use local Frobenius norm instances. mkdir Analysis/Matrix/Jacobian.lean ## Main definitions - `jacobianMatrix F X`: The Jacobian matrix at point `X`, defined by `jacobianMatrix F X (i, k) (j, l) = (fderiv ℝ F X (Matrix.single j l 1)) i k` ## Main theorems - `fderiv_eq_jacobian_mul`: Express the Fréchet derivative as a contraction with the Jacobian - `jacobianMatrix_comp`: Chain rule for Jacobian matrices - `jacobianMatrix_linear`, `jacobianMatrix_id`, `jacobianMatrix_const`: Basic properties - `jacobianMatrix_add`, `jacobianMatrix_smul`: Linearity properties | t-analysis new-contributor awaiting-author | 219/0 | Mathlib.lean,Mathlib/Analysis/Matrix/Jacobian.lean | 2 | 11 | ['erdOne', 'github-actions', 'jcommelin'] | sgouezel | 14 days ago | 14 days ago | 39 days |
| 30667 | FrederickPu | feat(Mathlib/Algebra/Group/Subgroup/Pointwise): subgroup mul | Title: feat: pointwise products for subgroups Description: showed the point-wise product of disjoint subgroups is equivalent to their Cartesian product. Based on https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/useful.20group.20theory.20lemmas/with/546738566. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 28/0 | Mathlib/Algebra/Group/Subgroup/Pointwise.lean | 1 | 23 | ['FrederickPu', 'eric-wieser', 'github-actions', 'plp127', 'tb65536'] | nobody | 14 days ago | 14 days ago | 1 day |
| 35448 | mathlib-splicebot | chore(Mathlib/Tactic/Linter/GlobalSyntax.lean): automated extraction | This PR was automatically created from a review comment on PR #34019. | t-linter new-contributor | 138/0 | Mathlib/Tactic/Linter/GlobalSyntax.lean | 1 | 2 | ['github-actions'] | nobody | 14 days ago | unknown | unknown |
| 33793 | LTolDe | feat(MeasureTheory/Constructions/Polish/Basic): add lemma AnalyticSet.inter_nonempty_of_nowhereMeagre | add lemma AnalyticSet.inter_nonempty_of_nowhereMeagre, the main ingredient for the proof of the **Effros' Theorem**, see [#mathlib4 > Effros Theorem](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Effros.20Theorem/with/566543328) introduce definition of a nowhere meagre set --- [](https://gitpod.io/from-referrer/) | t-measure-probability new-contributor awaiting-author | 37/0 | Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Topology/GDelta/Basic.lean | 3 | 8 | ['MichaelStollBayreuth', 'erdOne', 'github-actions', 'j-loreaux'] | kex-y | 14 days ago | 14 days ago | 39 days |
| 32881 | foderm | feat(AlgebraicTopology/SimplicialObject): define simplicial homotopy | This file defines the notion of a combinatorial simplicial homotopy between two morphisms of simplicial objects. A first step towards proving homotopy invariance of simplicial homotopy. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/335062-homology/topic/Homotopy.20invariance.20of.20singular.20homology/with/562221688). I left in most of my comments to make it easier to understand what indices I used, since I had to shift most of them by 1 to avoid proofs of neq 0 or similar things. I guess they can be removed once we know that the equations are the correct ones. Additionally I added some simp lemmas and an identity, I hope this is more or less how this is usually done. --- [](https://gitpod.io/from-referrer/) | new-contributor t-algebraic-topology awaiting-author | 567/0 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialObject/ChainHomotopy.lean,Mathlib/AlgebraicTopology/SimplicialObject/SimplicialHomotopy.lean,Mathlib/AlgebraicTopology/SingularHomology/HomotopyInvariance.lean | 4 | 17 | ['foderm', 'github-actions', 'joelriou'] | nobody | 14 days ago | 79 days ago | 2 hours |
| 34851 | dennj | feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations | This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization: - `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i` - `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x` - `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i` These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). | t-data new-contributor | 22/0 | Mathlib/Data/Matrix/Mul.lean | 1 | 5 | ['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] | pechersky | 14 days ago | 18 days ago | 27 days |
| 28546 | Sfgangloff | feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… | This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`. Summary of additions: - **Full shift and shift action** - `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type). - Right shift `shift g x` with convention `(shift g x) h = x (h * g)`. - **Cylinders and topology** - `cylinder U x : Set (G → A)` for finite `U : Finset G`. - Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed. - Equality with dependent products: `cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API. - **Patterns, occurrences, and subshifts** - `Pattern A G` with finite `support : Finset G` and `data : support → A`. - `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law. - `forbids F` and `Subshift A G` (closed, shift-invariant subsets). - `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness. - **Language on finite shapes and counting** - `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`. - **Entropy along a shape sequence** - `limsupAtTop` (as an `sInf` of eventual upper bounds). - `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)` for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`). - **Specializations** - `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`. - `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`. Mathematical remarks: - The API is **shape-parametric**: entropy is defined along user-provided finite shapes. - On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss). This PR does not assume amenability; the family of shapes is an explicit input. Motivation: Provide a clean, reusable base for symbolic dynamics on groups in mathlib. Future work: - Add a Følner predicate and prove shape-independence / limit existence on amenable groups. - Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors). - Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch). | t-dynamics new-contributor | 746/0 | Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean | 3 | 180 | ['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 14 days ago | 14 days ago | 109 days |
| 35313 | LexinonCraft | feat: IMO 2025 Q4 | This adds a solution for problem 4 from the International Math Olympiad 2025. --- | IMO new-contributor awaiting-author | 631/0 | Archive.lean,Archive/Imo/Imo2025Q4.lean | 2 | 4 | ['LexinonCraft', 'github-actions', 'jsm28'] | jsm28 | 14 days ago | 14 days ago | 3 days |
| 35316 | mkaratarakis | feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 4/5) | --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor blocked-by-other-PR | 86/0 | Mathlib/NumberTheory/Transcendental/AnalyticPart.lean | 1 | 5 | ['SnirBroshi', 'github-actions', 'mathlib-dependent-issues'] | nobody | 14 days ago | unknown | unknown |
| 33276 | NicolaBernini | feat: Rename List.reverse_perm to List.reverse_perm_self and List.reverse_perm' to List.reverse_perm_iff | --- [](https://gitpod.io/from-referrer/) | new-contributor awaiting-author t-data merge-conflict | 17/15 | Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Data/Finset/Dedup.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Defs.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/List/Permutation.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/NumberTheory/Divisors.lean | 8 | 5 | ['Ruben-VandeVelde', 'github-actions', 'mathlib-merge-conflicts'] | kim-em | 13 days ago | 64 days ago | 3 days |
| 34551 | IlPreteRosso | refactor(Data.Finset.*Antidiagonal): rename defs to `set*Antidiagonal` and deprecate old names in namespace Finset | Main file is [Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html). Adds `Finset.HasMulAntidiagonal`, the multiplicative counterpart to `HasAntidiagonal`, linked via `@[to_additive existing]`. Split PR (current changes): This PR renames the set-based antidiagonal definitions to have a `set` prefix, distinguishing them from the typeclass-based API in `Prod.lean`. **Only definitions are renamed in this PR.** Theorem/lemma renames will follow in a subsequent PR. [MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean) - `mulAntidiagonal` → `setMulAntidiagonal` - `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`) [SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean) - `SMulAntidiagonal` → `setSMulAntidiagonal` - `VAddAntidiagonal` → `setVAddAntidiagonal` (via `@[to_additive]`) Propagates to: - `Mathlib/RingTheory/HahnSeries/Multiplication.lean` - `Mathlib/RingTheory/HahnSeries/Summable.lean` --- Added deprecation aliases for the renamed definitions. [Finset/MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean) ``` @[to_additive (attr := deprecated setAddAntidiagonal (since := "2026-01-31")), deprecated setMulAntidiagonal (since := "2026-01-31")] alias mulAntidiagonal := setMulAntidiagonal ``` [Finset/SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean) ``` @[to_additive (attr := deprecated setVAddAntidiagonal (since := "2026-01-31")), deprecated setSMulAntidiagonal (since := "2026-01-31")] alias smulAntidiagonal := setSMulAntidiagonal ``` Propagates: [PointwiseSMul.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finsupp/PointwiseSMul.lean) - updated to use Set.vaddAntidiagonal (the original Set name) --- Full changes to be made: For a monoid `M`, `mulAntidiagonal n` returns the finset of pairs `(i, j)` such that `i * j = n`. [MulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/MulAntidiagonal.html) - `mulAntidiagonal` → `setMulAntidiagonal` - `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`) - All related theorems renamed accordingly: - `mem_setMulAntidiagonal` - `setMulAntidiagonal_mono_left`/`setMulAntidiagonal_mono_right` - `swap_mem_setMulAntidiagonal` - `support_setMulAntidiagonal_subset_mul` - `isPWO_support_setMulAntidiagonal` - `setMulAntidiagonal_min_mul_min` [SMulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/SMulAntidiagonal.html) - `setSMulAntidiagonal` (lowercase `set` prefix) - `setVAddAntidiagonal` (via `@[to_additive setVAddAntidiagonal ...]`) - All related theorems use lowercase `set` prefix: - `mem_setSMulAntidiagonal` / `mem_setVAddAntidiagonal` - `setSMulAntidiagonal_mono_left`/`setSMulAntidiagonal_mono_right` / `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right` - `support_setSMulAntidiagonal_subset_smul` / `support_setVAddAntidiagonal_subset_vadd` - `isPWO_support_setSMulAntidiagonal` / `isPWO_support_setVAddAntidiagonal` - `setSMulAntidiagonal_min_smul_min` / `setVAddAntidiagonal_min_vadd_min` [Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html) - Added explicit `@[to_additive]` target names: - `@[to_additive antidiagonal_congr ...]` for `mulAntidiagonal_congr` - `@[to_additive (attr := ext) antidiagonal_subtype_ext ...]` for `mulAntidiagonal_subtype_ext` - `@[to_additive antidiagonal_congr' ...]` for `mulAntidiagonal_congr'` - `@[to_additive (attr := simps) sigmaAntidiagonalEquivProd ...]` for `sigmaMulAntidiagonalEquivProd` [Multiplication.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Multiplication.html) - Updated all VAdd antidiagonal references to use lowercase `set` prefix: - `setVAddAntidiagonal` - `mem_setVAddAntidiagonal` - `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right` - `isPWO_support_setVAddAntidiagonal` - `support_setVAddAntidiagonal_subset_vadd` - `setVAddAntidiagonal_min_vadd_min` - Updated all Add antidiagonal references: - `mem_setAddAntidiagonal` - `swap_mem_setAddAntidiagonal` [Summable.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Summable.html) - `setVAddAntidiagonal` references updated - `mem_setAddAntidiagonal` references updated [PowerSeries.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/PowerSeries.html) - `mem_addAntidiagonal` → `mem_setAddAntidiagonal` | t-algebra new-contributor awaiting-author | 67/47 | Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/Set/MulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/Summable.lean | 6 | 7 | ['IlPreteRosso', 'Ruben-VandeVelde', 'github-actions', 'jcommelin', 'kim-em', 'mathlib-merge-conflicts'] | jcommelin | 13 days ago | 13 days ago | 18 days |
| 34674 | Citronhat | feat(Algebra/Order/Ring): replace ENNReal lemmas with WithTop versions | * Add `WithTop` versions of basic multiplicative order lemmas. * Use the new `WithTop` lemmas to replace `ENNReal` proofs and address six TODOs. * Fix a typo in the `pos_of_ne_zero` alias name. | new-contributor t-algebra merge-conflict | 46/15 | Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Data/ENNReal/Operations.lean | 3 | 5 | ['Citronhat', 'Ruben-VandeVelde', 'github-actions', 'mathlib-merge-conflicts'] | Ruben-VandeVelde | 13 days ago | 13 days ago | 16 days |
| 35472 | rao107 | feat(Probability): add `CharacteristicFunction` section to binomial distribution | Adds characteristic function, mgf, and cgf of the binomial distribution. Also adds Integrable lemmas for binomial. This commit based heavily off of the CharacteristicFunction section for the Gaussian distribution. This PR is an alteration of #34866 which would have added similar theorems and lemmas. However, this PR builds on top of the API that @YaelDillies wrote in #28248. To be forthcoming, I used Claude Code to help with the proofs of `complexMGF_id_binomialReal` and `integrable_exp_mul_binomialReal`. The proofs are structured how I would want them and I would vouch for them. Any comments or suggestions for improvements are very welcome, thanks! --- - [ ] depends on: #28248 [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability blocked-by-other-PR | 367/0 | Mathlib.lean,Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/Probability/Distributions/Binomial.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 13 days ago | 13 days ago | 4 seconds |
| 32891 | felixpernegger | feat(Topology/EMetricSpace): Introduction of ```Weak(Pseudo)EMetricSpace``` | This PR introduces Weak(Pseudo)EMetric spaces, some basic properties and the fact that the One-Point Compactification of a Weak(Pseudo)EMetricSpace again has a Weak(Pseudo)EMetricSpace structure. This is inspired by discussion at [this](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/EMetricSpace.20is.20broken/near/530540916) and based on #27756. In short, types like ```ENNReal``` and ```ENat``` have a very "metric-like" structure, but are not yet a ```WeakPseudoEMetricSpace``` (which is the weakest form of a metric-like structure in mathlib). Therefore, the class```WeakEMetricSpace``` could be used to make more definitions applicable to ```ENNReal```, for instance EVartiationOn ([this](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/EMetricSpace/BoundedVariation.html#eVariationOn)). As of now, this PR is still missing important properties like products and induced (and therefore subtypes) of ```Weak(Pseudo)EMetricSpace```'s and instances ```ENNReal``` and ```ENat``` (which should be rather easy however with the one-point compactification property). | awaiting-author new-contributor t-topology merge-conflict | 453/10 | Mathlib.lean,Mathlib/Topology/EMetricSpace/Defs.lean,Mathlib/Topology/EMetricSpace/Weak.lean | 3 | 30 | ['felixpernegger', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'plp127'] | j-loreaux | 12 days ago | 42 days ago | 12 days |
| 34954 | brianrabern | feat(Combinatorics/SimpleGraph/Acyclic): add colorable and chromaticN… | …umber bridges for acyclic and tree graphs Add thin bridge lemmas expressing that acyclic graphs (forests) and trees are 2-colorable, and that their chromatic number is at most 2, directly in terms of `Colorable` and `chromaticNumber`. The existing `IsAcyclic.isBipartite` already proves this via the definitional equality `IsBipartite = Colorable 2`, but these bridges improve discoverability for users who reason about `Colorable` or `chromaticNumber` without passing through `IsBipartite`. This is a first step toward building out the graph coloring API. New declarations: - `IsAcyclic.colorable_two` - `IsTree.colorable_two` - `IsAcyclic.chromaticNumber_le_two` - `IsTree.chromaticNumber_le_two` All are one-line proofs reusing existing results; no new imports needed. --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 16/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 1 | ['github-actions'] | b-mehta | 12 days ago | 24 days ago | 24 days |
| 35473 | mike1729 | feat(Analysis/Normed/Module): Schauder bases, basic sequences, and the Eberlein–Šmulian theorem | This PR develops the theory of Schauder bases and basic sequences in Banach spaces, culminating in a proof of the **Eberlein–Šmulian theorem**: in a Banach space, a weakly countably compact set is weakly compact (and weakly sequentially compact). **Note:** This PR is too large to review in one go. It will be split into smaller parts and merged incrementally. The first part is already under review: The proof follows the basic-sequence approach of Pełczyński, as presented in Albiac–Kalton *Topics in Banach Space Theory* (2016). The main line of argument is: 1. Define generalized Schauder bases (indexed by arbitrary types with a summation filter) and the classical sequential Schauder basis as a special case. 2. Introduce basic sequences and their characterization via the Grünblum condition. 3. Prove the **selection principle**: extract basic sequences from sets where the weak and norm closures disagree (via a perturbation/finite-dimensional compactness argument in the dual). 4. Show that a bounded set containing no basic sequence has relatively weakly compact closure. 5. Combine these ingredients to prove both directions of the Eberlein–Šmulian theorem. ## Main definitions * `GeneralSchauderBasis β 𝕜 X L`: A Schauder basis for a normed space `X` over `𝕜`, indexed by a type `β` with a `SummationFilter L`. Unifies classical (sequential) and unconditional bases. * `BasicSequence 𝕜 X`: A bundled ℕ-indexed sequence forming a Schauder basis for its closed linear span. ## Main results * `isBasicSequence_of_Grunblum_with_bound`: A nonzero sequence satisfying the Grünblum condition is a basic sequence, with explicit basis constant bound. * `basic_sequence_selection_dual`: Extracts a basic sequence from a set that is weak*-dense near 0 but norm-separated from 0. * `exists_basicSequence_of_weakClosure_not_normClosure`: If 0 is in the weak closure of `S` but not its norm closure, then `S` contains a basic sequence. * `schauderBasisOfClosure`: Constructs a Schauder basis for the topological closure from a basis on a subspace. * `no_basic_sequence_implies_relatively_weakly_compact`: A bounded set with no basic sequence has weakly compact closure. * `eberlein_smulian_isSeqCompact`: A weakly countably compact set in a Banach space is weakly sequentially compact. * `eberlein_smulian`: **Eberlein–Šmulian theorem.** A weakly countably compact set in a Banach space is weakly compact. * `IsCompact.frechetUrysohnSpace`: Weakly compact subsets of a Banach space are Fréchet–Urysohn (angelic). ## References * [F. Albiac, N.J. Kalton, *Topics in Banach Space Theory*, Springer, 2016][albiac2016] * I. Singer, *Bases in Banach Spaces*, 1970. --- - [ ] depends on: #34209 - [ ] depends on: #35559 [](https://gitpod.io/from-referrer/) | t-analysis new-contributor blocked-by-other-PR | 2691/0 | Mathlib.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Basic.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequence.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequenceSelection.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Closure.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/CountablyCompact.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/EberleinSmulian.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/NoBasicSequence.lean | 8 | 6 | ['CoolRmal', 'github-actions', 'mathlib-dependent-issues', 'mike1729'] | nobody | 11 days ago | unknown | unknown |
| 28246 | Sebi-Kumar | feat(AlgebraicTopology/FundamentalGroupoid): the n-sphere is simply connected for n > 1 | Prove that the `n`-dimensional sphere (i.e., the unit sphere centered at the origin in `(n + 1)`-dimensional real Euclidean space) is a simply connected space for `n > 1`. This proof follows Hatcher's "Algebraic Topology"; we first prove a general lemma about decomposing loops and then exploit the fact that non-surjective loops in the sphere are homotopically trivial. Note: To get this file to build, I edited `Mathlib/Tactic/Linter/DirectoryDependency.lean` to remove the restrictions on AlgebraicTopology files importing Geometry, NumberTheory, and FieldTheory files. Thank you to those who shared their expertise [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Warning.20that.20AlgebraicTopology.20can't.20import.20SetTheory/with/533833638). As I understand it, this is just a short-term solution, so I would appreciate feedback on what to do about this situation. Note: I am unsure where exactly the file `SimplyConnectedSphere.lean` should go or whether that is an appropriate name for the file, so feedback there would be appreciated. --- To provide additional context, this code was written as a part of the Fields Undergraduate Summer Research Program at the University of Western Ontario under the supervision of Chris Kapulkin and Daniel Carranza. - [x] depends on: #28208 - [x] depends on: #28198 - [x] depends on: #28185 [](https://gitpod.io/from-referrer/) | t-algebraic-topology new-contributor awaiting-author | 343/3 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnectedSphere.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 3 | 17 | ['dagurtomas', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | robin-carlier | 11 days ago | 11 days ago | 13 days |
| 35568 | goliath-klein | refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): switch NormedSpace instance to `projectiveSeminorm` | We switch the `NormedSpace` instance on `PiTensorProduct`s from `injectiveSeminorm` to `projectiveSeminorm` and update all follow-up results. The signature of `norm_eval_le_projectiveSeminorm` is changed to match the one of `norm_eval_le_injectiveSeminorm`. This is the second in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633). --- - [ ] depends on: #35567 Co-authored-by: Davood H. H. Tehrani [](https://gitpod.io/from-referrer/) | blocked-by-other-PR new-contributor | 108/173 | Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 11 days ago | 11 days ago | 14 minutes |
| 35421 | farmanb | feat(CategoryTheory): preradicals in abelian categories | Following Stenström's development, define preradicals on an abelian category, together with the quotient and colon constructions, and characterize radical preradicals via vanishing on quotients. This provides infrastructure for torsion theories in abelian categories. --- [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor awaiting-author | 463/0 | Mathlib.lean,Mathlib/CategoryTheory/Preradical/Basic.lean,Mathlib/CategoryTheory/Preradical/CokernelConstruction.lean,Mathlib/CategoryTheory/Preradical/Colon.lean,Mathlib/CategoryTheory/Preradical/Radical.lean | 5 | 11 | ['farmanb', 'github-actions', 'joelriou'] | nobody | 11 days ago | 13 days ago | 11 hours |
| 35451 | samueloettl | feat(MeasureTheory.Function): compMeasurePreserving_iterate | --- These are useful for dynamics/ergodic theory. Possibly some of these could be simp lemmas but I'm not confident enough to say that they are so I didn't mark them as such. [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 32/0 | Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean | 2 | 2 | ['github-actions'] | RemyDegenne | 11 days ago | 14 days ago | 14 days |
| 34054 | YellPika | feat(Order/OmegaCompletePartialOrder): OmegaCompletePartialOrder instance for `Sigma` with basic `ωScottContinuous` lemmas | This PR adds an `OmegaCompletePartialOrder` instance for `Sigma` along with `ωScottContinuous` lemmas for basic operations (`mk`, `fst`, `snd`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sigma`s. --- - [x] depends on: #33941 [](https://gitpod.io/from-referrer/) | new-contributor t-order please-merge-master awaiting-author | 172/0 | Mathlib/Data/Sigma/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean | 2 | 28 | ['Vierkantor', 'YellPika', 'github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | grunweg | 11 days ago | 11 days ago | 16 days |
| 35600 | yisiox | Add implementation of Kleene's algorithm to show each regular language has a regex matching it | This PR adds a proof that every regular language has some regular expression matching it. This was achieved by the following constructions and proofs of their correctness - Define `toSingleεNFA` to transform any epsilon-NFA to an equivalent one with only a single start and accept state (and the type is `ExtendedState`) - Define a bijection between `ExtendedState` and `Fin (FinEnum.card (ExtendedState σ))` to index the states - Define `pathRegex` which implements Kleene's algorithm - Define `toRegex` which takes an epsilon-NFA, applies `toSingleεNFA` on it, and computes the corresponding regex using `pathRegex` The proofs of correctness chain together to yield `(toRegex M).matches' = M.accepts` which asserts the direction of Kleene's theorem required. --- [](https://gitpod.io/from-referrer/) | t-computability new-contributor | 495/0 | Mathlib/Computability/EpsilonNFA.lean | 1 | 2 | ['github-actions'] | nobody | 10 days ago | unknown | unknown |
| 34966 | Deep0Thinking | feat(MeasureTheory): add `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` and `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` | This PR proves: - `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` - `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` - `integral_Ioi_sub_Ioi`, `integral_Ioi_sub_Ioi'`, `integral_Iio_sub_Iio`, `integral_Iio_sub_Iio'` - `Ioi_diff_Ioc` --- [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 125/1 | Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean | 3 | 14 | ['CoolRmal', 'Deep0Thinking', 'github-actions'] | RemyDegenne | 10 days ago | 10 days ago | 22 days |
| 35620 | inaciovasquez2020 | feat(Fintype): choose element from nonempty finite type | This PR adds a noncomputable choice function for finite types with nonzero cardinality. * `Fintype.chooseOfCardNeZero` provides a witness of `α` from `[Fintype α]` assuming `Fintype.card α ≠ 0`. * A regression test is included in `MathlibTest/Fintype/ChooseOfCardNeZero.lean`. The construction follows existing mathlib choice patterns and is explicitly marked `noncomputable`. | t-data new-contributor | 21/0 | Mathlib.lean,Mathlib/Data/Fintype/Choose.lean,MathlibTest/Fintype/ChooseOfCardNeZero.lean | 3 | 4 | ['github-actions', 'plp127', 'vihdzp'] | nobody | 10 days ago | unknown | unknown |
| 34937 | tannerduve | feat(Computability): semilattice instance on Turing degrees | This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory. The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows ``` turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g ``` and prove it is a least upper bound: * `left_le_join`, `right_le_join` * `join_le` * monotonicity and congruence lemmas (`join_mono`, `join_congr`) We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le` ``` instance : SemilatticeSup TuringDegree ``` **New additions to `RecursiveIn.lean`:** - `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`. - `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`. - `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable - `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set. Small addition to `Partrec` we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond` ## TODO Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library by essentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec` ## Note: AI Usage [Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files | t-computability new-contributor large-import | 644/63 | Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean | 3 | 14 | ['eric-wieser', 'github-actions', 'plp127', 'tannerduve', 'vihdzp'] | nobody | 9 days ago | 9 days ago | 23 days |
| 35504 | 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 | 9 days ago | 12 days ago | 13 days |
| 27953 | CoolRmal | feat(ProbabilityTheory): Conditional Jensen's Inequality | This PR adds conditional Jensen's inequality. I made some changes to Mathlib/Analysis/Convex/Approximation.lean because I need the sequence of affine functions to be bouneded above at each point. --- - [x] depends on: #31411 - [x] depends on: #31399 [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 137/20 | Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean | 4 | 8 | ['CoolRmal', 'EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | sgouezel | 9 days ago | 10 days ago | 32 days |
| 33746 | ster-oc | feat(Algebra/Module/ZLattice): align `ZSpan.floor` to `Int.floor` API | This PR adds some of the existent lemmas about `Int.floor`, `Int.ceil` and `Int.fract` to the `ZSpan` namespace. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor merge-conflict | 353/145 | Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Topology/Algebra/Order/Floor.lean | 3 | 8 | ['github-actions', 'joelriou', 'mathlib-merge-conflicts', 'ster-oc'] | joelriou | 8 days ago | 8 days ago | 30 days |
| 35011 | whocares-abt | feat(Combinatorics/SimpleGraph/Copy): add degree of copy less than original | add two theorems relating degree of a graph and it's copy | t-combinatorics new-contributor | 17/0 | Mathlib/Combinatorics/SimpleGraph/Copy.lean | 1 | 12 | ['SnirBroshi', 'github-actions', 'themathqueen', 'vihdzp'] | nobody | 8 days ago | 8 days ago | 22 days |
| 34830 | parabamoghv | feat(CategoryTheory/Monoidal): add definition of categorical groups | This PR defines of categorical groups, also known as coherent 2-groups, in mathlib. Motivation: Categorical groups are well-studied structures in monoidal category theory, but are not currently available in mathlib. The definitions in this PR follow the existing design patterns used for Category, MonoidalCategory, and BraidedCategory. This PR focuses on setting up the core structure and notation. Basic lemmas and further developments will be provided in a subsequent PR. --- [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor WIP | 163/0 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/CategoricalGroups/Basic.lean | 2 | 26 | ['dagurtomas', 'github-actions', 'parabamoghv', 'robin-carlier'] | robin-carlier | 8 days ago | 11 days ago | 5 days |
| 33688 | Citronhat | feat(PMF): add expectation lemmas for Poisson PMF | This PR adds some basic results about the Poisson distribution, its `PMF`, and its expectation. **New lemmas:** * `poissonPMF_apply` — an unfolding lemma for `poissonPMF`. * `poissonPMFReal_mul_eq_succ_mul` — the standard recursion identity for the Poisson mass function. * `poissonPMFReal_hasSum_nmul` — shows that `fun n ↦ poissonPMFReal r n * n` has sum `r`. * `poissonPMF_tsum_nmul` — the corresponding identity at the level of the `PMF`. * `poissonPMF_coe_tsum_nmul` — the same result after coercion to `ℝ`. Both `ℝ`-valued and `ℝ≥0∞`-valued formulations are included so that these results can be used conveniently in both Lebesgue and Bochner integration contexts. | new-contributor t-measure-probability awaiting-author | 21/0 | Mathlib/Probability/Distributions/Poisson.lean | 1 | 10 | ['Citronhat', 'DavidLedvinka', 'github-actions', 'urkud'] | urkud | 8 days ago | 8 days ago | 47 days |
| 31766 | SuccessMoses | feat(Topology/EMetricSpace): continuity of arc length | fixes half of #31751 --- [](https://gitpod.io/from-referrer/) | new-contributor t-topology awaiting-author merge-conflict | 396/0 | Mathlib.lean,Mathlib/Topology/EMetricSpace/ArcLength.lean,Mathlib/Topology/EMetricSpace/BoundedVariation.lean | 3 | 40 | ['SnirBroshi', 'SuccessMoses', 'alreadydone', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts'] | nobody | 8 days ago | 84 days ago | 2 days |
| 33257 | NickAdfor | feat(Combinatorics/SimpleGraph/Bipartite): Odd Cycle Theorem (A Solution to TODO) | Prove bipartite iff all cycles are even
This PR formalizes the classical graph theory theorem: a graph is bipartite if and only if all its cycles have even length.
Co-authored-by: Nick Adfor |
t-combinatorics new-contributor | 164/8 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean | 2 | 70 | ['IvanRenison', 'NickAdfor', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'kmill', 'mitchell-horner', 'vihdzp', 'vlad902'] | kmill | 8 days ago | 24 days ago | 32 days |
| 34599 | cameronfreer | feat(Logic/Equiv/Fintype): generalize toCompl and exists_extending_pair to finite source | Generalize the Equiv subtype-extension API so it only needs finiteness of
the source subtype, then use that to drastically simplify
`Equiv.Perm.isMultiplyPretransitive`.
### Changes to `Logic/Equiv/Fintype.lean`
* **`Equiv.toCompl`**: generalize from `[Finite α]` to `[Finite {x | p x}]`.
New proof (due to tb65536) uses finset symmetric differences to avoid
needing finiteness of the ambient type.
* **`Equiv.extendSubtype`** and related lemmas: adapt to `[Finite {x | p x}]`.
* **`Equiv.Perm.exists_extending_pair`**: strengthen from `[Finite β]` to
`[Finite α]`. Given two injective functions `f, g : α → β` where `α` is
finite, there exists `σ : Perm β` with `σ ∘ f = g`. The target `β` can
now be infinite.
### Changes to `MultipleTransitivity.lean`
* **`Equiv.Perm.isMultiplyPretransitive`**: replace ~70-line manual
bijectivity construction with a two-line proof via
`exists_smul_eq_embedding`.
* **`exists_smul_eq_embedding`**: rewire to use `exists_extending_pair`
directly (removing the old cardinal-arithmetic proof
`exists_extending_pair_of_finite_source`).
### Application
Used in formalizing de Finetti's theorem (exchangeability ⇒ contractability):
https://github.com/cameronfreer/exchangeability/blob/03a854a2/Exchangeability/Contractability.lean#L459
Co-authored-by: tb65536 |
t-group-theory new-contributor | 49/77 | Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/Logic/Equiv/Fintype.lean | 2 | 24 | ['LLaurance', 'cameronfreer', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] | mattrobball | 8 days ago | 8 days ago | 17 days |
| 34419 | ster-oc | feat(RCLike): add `Continuous.re` and similar | This PR adds dot notation for `re`, `im`, `conj` and `ofReal` for `Continuous`, `LipschitzWith` and `Memℓp`. Given `hf : Continuous f` it allows to use `hf.re` to express `Continuous (fun x ↦ (f x).re)`, similarly to the usual `hf.add hg`. I also can add the same features for `Summable` but I am not sure where to place them, suggestions are appreciated! --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor awaiting-author | 186/41 | Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/RCLike/Basic.lean | 3 | 14 | ['github-actions', 'j-loreaux', 'ster-oc'] | j-loreaux | 7 days ago | 7 days ago | 8 days |
| 26479 | thefundamentaltheor3m | feat(Analysis/Complex/CauchyIntegral): Cauchy–Goursat for Unbounded Rectangles | In this PR, we prove versions of the Cauchy-Goursat theorem where the contours in question are rectangular and unbounded (ie, where the contours look like the $\bigsqcup$ symbol). I am not sure if I have formalised these in the best way, or if `Analysis.Complex.CauchyIntegral` is the best place for them (it might be prudent to reorganise the file into multiple files at some point), but I believe this is a useful result. Suggestions welcome. --- [](https://gitpod.io/from-referrer/) | new-contributor t-analysis sphere-packing awaiting-author | 205/0 | Mathlib/Analysis/Complex/CauchyIntegral.lean | 1 | 6 | ['github-actions', 'j-loreaux', 'loefflerd', 'mathlib4-merge-conflict-bot', 'thefundamentaltheor3m', 'wwylele'] | urkud | 7 days ago | 7 days ago | 34 days |
| 35582 | nielsvoss | feat(Analysis/InnerProductSpace): add theorems about the adjoint, kernel, range, and orthogonal complement | Add theorems about the interaction between the adjoint, kernel, range, and orthogonal complement from Linear Algebra Done Right 4th edition. This includes theorems from the singular value decomposition section which are needed for #33731. - `LinearMap.orthogonal_ker` and `LinearMap.orthogonal_range` are inherited from the `ContinuousLinearMap` versions. - `ker_adjoint_comp_self` and `adjoint_comp_self_injective_iff` are new theorems for both `ContinuousLinearMap` and finite-dimensional `LinearMap`. - `LinearMap.range_adjoint_comp_self` and `LinearMap.finrank_range_adjoint` apply to only finite-dimensional `LinearMap`. --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor awaiting-author | 52/0 | Mathlib/Analysis/InnerProductSpace/Adjoint.lean | 1 | 7 | ['github-actions', 'j-loreaux', 'themathqueen'] | j-loreaux | 7 days ago | 7 days ago | 4 days |
| 33247 | sun123zxy | feat(Mathlib/RingTheory/Ideal/Cotangent): dimension of cotangent spaces | It is shown that the span rank of the maximal ideal of a local ring equals the dimension of the cotangent space if the maximal ideal is finitely generated. To avoid unnecessary imports, the original `Mathlib/RingTheory/Nakayama` is now moved to `Mathlib/RingTheory/Nakayama/Basic`. --- - [ ] depends on: #33359 - [ ] depends on: #33361 - [ ] depends on: #35651 [](https://gitpod.io/from-referrer/) | file-removed new-contributor t-ring-theory WIP blocked-by-other-PR merge-conflict | 140/27 | Mathlib.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/LocalRing/Module.lean,Mathlib/RingTheory/LocalRing/Quotient.lean,Mathlib/RingTheory/Nakayama/Basic.lean,Mathlib/RingTheory/Nakayama/SpanRank.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/Support.lean | 10 | 13 | ['erdOne', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sun123zxy'] | nobody | 7 days ago | 66 days ago | 3 days |
| 34853 | GrigorenkoPV | feat(Combinatorics/Enumerative/Catalan): ratio of subsequent Catalan numbers | --- Should I split this into 2 PRs? Otherwise it'll get squashed & be less concise. UPD: ok, I've opened #34854 [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict | 305/195 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/Combinatorics/Enumerative/Catalan/Basic.lean,Mathlib/Combinatorics/Enumerative/Catalan/Ratio.lean,Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean | 7 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | nobody | 7 days ago | 25 days ago | 1 day |
| 34854 | GrigorenkoPV | chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` | --- Split off from #34853 [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict | 228/195 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/Combinatorics/Enumerative/Catalan/Basic.lean,Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean | 6 | 5 | ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | thorimur | 7 days ago | 13 days ago | 13 days |
| 33731 | nielsvoss | feat(Analysis/InnerProductSpace): definition of singular values for finite-dimensional inner product spaces | This PR defines the singular values for linear maps between finite-dimensional inner product spaces. The API is designed in a way that allows it to be generalized to the approximation numbers, as defined in #32126. See the discussion on Zulip: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Singular.20Value.20Decomposition/with/558914024 --- - [x] depends on: #34362 - [x] depends on: #34660 - [ ] depends on: #35174 - [x] depends on: #35236 - [ ] depends on: #35582 [](https://gitpod.io/from-referrer/) | t-analysis new-contributor WIP blocked-by-other-PR | 267/0 | Mathlib/Analysis/InnerProductSpace/SingularValues.lean,docs/references.bib | 2 | 23 | ['b-mehta', 'dupuisf', 'eric-wieser', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'nielsvoss', 'themathqueen'] | nobody | 7 days ago | unknown | unknown |
| 35696 | GrigorenkoPV | fix(Data/Rel): change what `image_eq_cod_of_dom_subset` states | It used to be identical to its neighbor, `preimage_eq_dom_of_cod_subset`. Both lemmas seem to have been introduced in #25587. --- I think this is technically a breaking change? Not sure what has to be done here. [](https://gitpod.io/from-referrer/) | t-data new-contributor | 1/1 | Mathlib/Data/Rel.lean | 1 | 2 | ['github-actions', 'vihdzp'] | nobody | 7 days ago | unknown | unknown |
| 33985 | YellPika | feat(Order/OmegaCompletePartialOrder): `OmegaCompletePartialOrder` instance for `Sum` with basic `ωScottContinuous` lemmas | This PR adds an `OmegaCompletePartialOrder` instance for `Sum`, along with `ωScottContinuous` lemmas for basic operations (`inl`, `inr`, `elim`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sum`s (e.g. see the proof of `Sum.ωScottContinuous_map`). --- - [x] depends on: #33941 [](https://gitpod.io/from-referrer/) | new-contributor large-import t-order | 191/1 | Mathlib/Data/Sum/Basic.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/ScottContinuity.lean | 4 | 20 | ['Vierkantor', 'YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | bryangingechen | 7 days ago | 15 days ago | 27 days |
| 35481 | FrankieeW | chore(NumberTheory/Zsqrtd): inline duplicated order lemmas into instances | This PR follows reviewer feedback by removing duplicated order/additive wrapper theorems in `Zsqrtd` and inlining the proofs into the corresponding typeclass instances. Changes include: - remove redundant wrappers such as `Zsqrtd.le_total`, `Zsqrtd.add_le_add_left`, `Zsqrtd.le_of_add_le_add_left`, `Zsqrtd.add_lt_add_left`, and `Zsqrtd.le_antisymm` - keep the canonical API through `LinearOrder` / ordered additive structure fields - update downstream use in `PellMatiyasevic` to the canonical theorem (`_root_.le_antisymm`) This reduces namespace-level duplicate APIs and keeps proofs aligned with standard typeclass lemmas. --- [](https://gitpod.io/from-referrer/) | new-contributor t-number-theory | 26/10 | Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean | 2 | 8 | ['FrankieeW', 'github-actions', 'vihdzp'] | MichaelStollBayreuth | 7 days ago | 10 days ago | 13 days |
| 35735 | mkaratarakis | feat(NumberTheory): analytical properties and lower bounds for Gelfond-Schneider auxiliary function | This PR is the third component in the formalization of the Gelfond-Schneider Theorem (Hilbert's Seventh Problem). It connects the algebraically constructed auxiliary function `R(x)` to its analytical properties, establishing the exact order of vanishing and the fundamental lower bound on the norm of its non-zero derivative evaluation. Following the argument in Loo-Keng Hua's *Introduction to Number Theory* (Chapter 17.9, equations (4) and (5)), we define the minimal non-vanishing derivative order $r$ and scale the evaluation to an algebraic integer to compute its norm. 1. (`iteratedkDeriv_R_eq_zero` & `order_geq_n`): We verify that the coefficient vector $\eta$ (chosen via Siegel's lemma in the previous PR) forces the first $n$ derivatives of the auxiliary function $R(x)$ to vanish at the points $x \in \{1, 2, \dots, m\}$. Consequently, the analytical order of $R(x)$ at these points is at least $n$. 2. We extract $r$, the exact minimal order of vanishing of $R(x)$ among all points $1 \le l \le m$, and prove that $n \le r$. 3. We define the non-zero algebraic number $\rho = (\log \alpha)^{-r} R^{(r)}(l_0)$. 4. We prove the crucial textbook step that scaling $\rho$ by $c_1^{r+2mq}$ (formalized here as `cρ`) results in an algebraic integer in $\mathcal{O}_K$. 5. Because $c_1^{r+2mq} \rho$ is a non-zero algebraic integer, the absolute value of its norm is at least $1$. We use this to formally prove the strict lower bound on the absolute norm of the unscaled $\rho$: $|N(\rho)| > c_1^{-h(r+2mq)} > c_5^{-r}$. --- - [ ] depends on: #35734 [optional extra text] [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor blocked-by-other-PR | 1141/0 | Mathlib.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlgSetup.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainOrder.lean | 4 | 3 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 7 days ago | unknown | unknown |
| 35280 | khwilson | feat(Mathlib/Analysis/Polynomial/MahlerMeasure): Mahler Measure estimate in terms of supNorm | The Mahler measure of a polynomial is bounded above by `√(p.natDegree + 1) * p.supNorm`. This is a tighter estimate than `(p.natDegree + 1) * p.supNorm`, which is implied by `mahlerMeasure_le_sum_norm_coeff`. AI Usage: Claude Code (Opus 4.6) provided first drafts for several sorries in the main calc block. Gemini Pro was used for one-off looks ups of lemma names like `ae_restrict_iff'`. The final code was edited by me. [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 67/0 | Mathlib/Analysis/Polynomial/MahlerMeasure.lean | 1 | 12 | ['github-actions', 'j-loreaux', 'khwilson', 'mathlib-merge-conflicts'] | j-loreaux | 7 days ago | 7 days ago | 17 days |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 13158 | erdOne | refactor(RingTheory/OreLocalization/Module): remove `LocalizedModule.mk`. | --- - [x] depends on: #13151 - [ ] depends on: #13156 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR | 49/48 | Mathlib/RingTheory/OreLocalization/Basic.lean,Mathlib/RingTheory/OreLocalization/Module.lean | 2 | 2 | ['leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Approval(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12608 | eric-wieser | feat: allow `nsmul` / `zsmul` to be omitted again, with a warning | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra t-meta | 118/2 | Mathlib.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Tactic.lean,Mathlib/Tactic/DefaultFieldLinter.lean,scripts/noshake.json,test/default_field_linter.lean | 6 | 12 | ['YaelDillies', 'eric-wieser', 'fpvandoorn', 'github-actions'] | nobody | 1 | 1 year ago | unknown | unknown |
| 8519 | eric-wieser | refactor(LinearAlgebra/TensorProduct): golf using `liftAddHom` | This new `TensorProduct.liftAddHom` doesn't require bilinearity, only that scalar multiplication can be moved between the arguments. While in theory we only need the `AddMonoidHom` version as it offers exactly the same generality, we first provide an unbundled `liftFun` as this seems to give a sizeable performance boost if used in downstream `lift` variants. --- - [x] depends on: #8571 - [x] depends on: #8584 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 53/50 | Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean,Mathlib/LinearAlgebra/TensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean | 3 | 28 | ['bustercopley', 'eric-wieser', 'jcommelin', 'jjaassoonn', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib-bors'] | nobody | 1 | 1 year ago | unknown | unknown |
| 9146 | laughinggas | feat(Data/ZMod/Defs): Topological structure on `ZMod` | Added a discrete topology structure to `ZMod n` for all `n` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-topology | 55/3 | Mathlib.lean,Mathlib/Topology/Algebra/Constructions.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Instances/ZMod.lean,Mathlib/Topology/Maps.lean | 5 | 61 | ['YaelDillies', 'eric-wieser', 'github-actions', 'jcommelin', 'laughinggas', 'mo271', 'urkud'] | nobody | 1 | 1 year ago | unknown | unknown |
| 6777 | adomani | chore(Co*variantClass): replace eta-expanded (· * ·), (· + ·), (· ≤ ·), (· < ·) | Replace `CovariantClass X X (· * ·) (· ≤ ·)` with -> `CovariantClass X X HMul.hMul LE.le` and similarly for `HAdd`, `LT`, `Contravariant`.
This PR is inspired by [Issue #6646](https://github.com/leanprover-community/mathlib4/issues/6646) and, more specifically, [this comment](https://github.com/leanprover-community/mathlib4/issues/6646#issuecomment-1692792066).
Note that https://github.com/leanprover/lean4/pull/2267 would make this unnecessary
---
```bash
# First sed command:
# the first captured pattern is `Co*variantClass |
merge-conflict | 703/678 | Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean,Mathlib/Algebra/BigOperators/Basic.lean,Mathlib/Algebra/Bounds.lean,Mathlib/Algebra/CovariantAndContravariant.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/Group/UniqueProds.lean,Mathlib/Algebra/GroupPower/Order.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/Archimedean.lean,Mathlib/Algebra/Order/Group/Abs.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/DenselyOrdered.lean,Mathlib/Algebra/Order/Group/MinMax.lean,Mathlib/Algebra/Order/Group/OrderIso.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/Algebra/Order/LatticeGroup.lean,Mathlib/Algebra/Order/Module.lean,Mathlib/Algebra/Order/Monoid/Basic.lean,Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/Lemmas.lean,Mathlib/Algebra/Order/Monoid/MinMax.lean,Mathlib/Algebra/Order/Monoid/NatCast.lean,Mathlib/Algebra/Order/Monoid/OrderDual.lean,Mathlib/Algebra/Order/Monoid/Prod.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/Algebra/Order/Monoid/WithZero/Basic.lean,Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Pointwise.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Lemmas.lean,Mathlib/Algebra/Order/Sub/Basic.lean,Mathlib/Algebra/Order/Sub/Canonical.lean,Mathlib/Algebra/Order/Sub/Defs.lean,Mathlib/Algebra/Order/WithZero.lean,Mathlib/Algebra/Parity.lean,Mathlib/Algebra/Star/Order.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/Normed/Order/Lattice.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/List/BigOperators/Basic.lean,Mathlib/Data/List/BigOperators/Lemmas.lean,Mathlib/Data/Multiset/Basic.lean,Mathlib/Data/Nat/Cast/Order.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/Real/ENNReal.lean,Mathlib/Data/Real/NNReal.lean,Mathlib/Data/Set/Semiring.lean,Mathlib/Data/Sign.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/VectorMeasure.lean,Mathlib/Order/ConditionallyCompleteLattice/Group.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Probability/Martingale/Basic.lean,Mathlib/Probability/Process/Stopping.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Game/Basic.lean,Mathlib/SetTheory/Game/PGame.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/NaturalOps.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Topology/ContinuousFunction/Algebra.lean,lean-toolchain,test/Recall.lean,test/propose.lean | 81 | 36 | ['adomani', 'alreadydone', 'digama0', 'eric-wieser', 'ericrbg', 'jcommelin', 'leanprover-bot', 'sgouezel'] | nobody | 1 | 1 year ago | unknown | unknown |
| 6403 | astrainfinita | chore: change instance priorities of `Ordered*` hierarchy | --- [](https://gitpod.io/from-referrer/) | t-algebra t-order merge-conflict slow-typeclass-synthesis awaiting-author | 253/79 | Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Field/Canonical/Defs.lean,Mathlib/Algebra/Order/Field/Defs.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Monoid/Basic.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Star.lean,Mathlib/Algebra/Order/WithZero.lean,Mathlib/Analysis/InnerProductSpace/Orientation.lean,Mathlib/LinearAlgebra/Orientation.lean,Mathlib/RingTheory/HahnSeries.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean | 18 | 39 | ['Vierkantor', 'astrainfinita', 'digama0', 'eric-wieser', 'j-loreaux', 'leanprover-bot'] | nobody | 1 | 1 year ago | unknown | unknown |
| 12751 | Command-Master | feat: add lemmas for Nat/Bits, Nat/Bitwise and Nat/Size | Remove `@[simp]` from `Nat.bit_false` and `Nat.bit_true`, as `bit0` and `bit1` are deprecated, and add some lemmas to `Bits`, `Bitwise` and `Size`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 66/7 | Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Nat/Size.lean | 4 | 26 | ['Command-Master', 'Rida-Hamadani', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'jcommelin'] | nobody | 1 | 1 year ago | unknown | unknown |
| 15448 | urkud | chore(*): deprecate `Option.elim'` | Use `Option.elim` instead. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author tech debt | 54/50 | Mathlib/Algebra/BigOperators/Option.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/Calculus/LagrangeMultipliers.lean,Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/TMToPartrec.lean,Mathlib/Data/Option/Defs.lean,Mathlib/LinearAlgebra/Basis.lean,Mathlib/Logic/Embedding/Set.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/NumberTheory/Dioph.lean,Mathlib/Topology/Compactness/Paracompact.lean,Mathlib/Topology/LocallyFinite.lean | 17 | 12 | ['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'grunweg', 'urkud'] | nobody | 1 | 1 year ago | unknown | unknown |
| 13514 | madvorak | feat(Computability/ContextFreeGrammar): closure under union | - [ ] depends on: #15895 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability blocked-by-other-PR | 448/4 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 50 | ['Rida-Hamadani', 'YaelDillies', 'github-actions', 'leanprover-community-mathlib4-bot', 'madvorak'] | nobody | 1 | 1 year ago | unknown | unknown |
| 12133 | ADedecker | feat: generalize instIsLowerProd to arbitrary products | Also change a bit the proof of the product case to match my own taste, feel free to tell if you prefer the old one. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology t-order | 34/14 | Mathlib/Topology/Constructions.lean,Mathlib/Topology/Order/LowerUpperTopology.lean | 2 | 13 | ['Ruben-VandeVelde', 'TwoFX', 'github-actions', 'jcommelin', 'mans0954', 'mathlib-bors', 'riccardobrasca'] | nobody | 2 | 1 year ago | unknown | unknown |
| 18461 | hannahfechtner | feat: left and right common multiples mixins | add mixins for left and right common multiples. These carry the data of what factors are used to create the common multiples --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 78/0 | Mathlib/Algebra/Group/Defs.lean | 1 | 13 | ['github-actions', 'hannahfechtner', 'jcommelin', 'kbuzzard', 'kim-em', 'trivial1711'] | nobody | 1 | 1 year ago | unknown | unknown |
| 2605 | eric-wieser | chore: better error message in linarith | On this mwe: ```lean import Mathlib.Tactic.Linarith example (s : Set ℕ) (h : s = s) : 0 ≤ 1 := by linarith ``` this now indicates where the internal error is coming from. Is there a better way of chaining errors than this? --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 12/1 | Mathlib/Tactic/Linarith/Preprocessing.lean | 1 | 3 | ['Vierkantor', 'harahu', 'kim-em', 'mo271'] | nobody | 1 | 1 year ago | unknown | unknown |
| 19189 | YnirPaz | feat(SetTheory/Ordinal/Arithmetic): order isomorphism between omega and the natural numbers | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-set-theory | 44/0 | Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean | 2 | 21 | ['YaelDillies', 'YnirPaz', 'github-actions', 'vihdzp'] | nobody | 1 | 11 months ago | unknown | unknown |
| 19275 | eric-wieser | fix: if nolint files change, do a full rebuild | Otherwise CI will succeed when removing entries from the file, but fail later when someone changes something unrelated. --- [](https://gitpod.io/from-referrer/) | merge-conflict delegated | 8/0 | lakefile.lean | 1 | 20 | ['YaelDillies', 'adomani', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-bors'] | nobody | 1 | 10 months ago | unknown | unknown |
| 19425 | hrmacbeth | perf: gcongr forward-reasoning adjustment | This PR changes the "forward-reasoning" component of `gcongr`, rendering it more efficient, particularly in problems with a large number of variables/hypotheses in the context.
Previously `gcongr` attempted to match *every* `LocalDecl` against *every* node in the parse tree using *each* of the five implemented `@[gcongr_forward]` mini-tactics: matching directly, matching after applying `symm`, matching after applying `le_of_lt`, etc etc.
The new algorithm filters out the non-Prop `LocalDecl`s, and also adjusts the `@[gcongr_forward]` extensions so that, rather than re-apply the relevant lemmas (`symm`, `le_of_lt`, etc) at every node in the parse tree, the lemmas are applied in advance to the `LocalDecl`s and the result (if successful) stored.
The performance effect on mathlib as a whole is miniscule, but it speeds up the profiler's count of "tactic execution of Mathlib.Tactic.GCongr" in the newly-added test from 257 ms to 47 ms, and has a similar effect on real-life examples in an analysis project of mine.
Co-authored-by: Mario Carneiro |
merge-conflict awaiting-author | 130/59 | Mathlib/Order/Lattice.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GCongr/ForwardAttr.lean,MathlibTest/GCongr/inequalities.lean | 4 | 17 | ['Vierkantor', 'github-actions', 'hrmacbeth', 'leanprover-bot', 'leanprover-community-bot-assistant'] | Vierkantor | 1 | 10 months ago | unknown | unknown |
| 8370 | 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) --- [](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 | 1 | 10 months ago | unknown | unknown |
| 19315 | quangvdao | feat(Data/Finsupp/Fin): Add `Finsupp` operations on `Fin` tuple | This PR adds more analogues of operations on `Fin` tuples to the `Finsupp` setting. Before, there were only `Finsupp.cons` and `Finsupp.tail`. Now there are also `Finsupp.snoc`, `Finsupp.insertNth`, `Finsupp.init`, and `Finsupp.removeNth`. These all come with supporting lemmas. I also removed the porting comment about `succAboveCases` in `Data/Fin/Basic`, and added a lemma about `succAbove` in `Data/Fin/Tuple/Basic`. --- - [x] depends on: #20361 - [x] depends on: #20771 - [x] depends on: #20770 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 193/16 | Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finsupp.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Data/Finsupp/Fin.lean,Mathlib/RingTheory/MvPolynomial/Homogeneous.lean,scripts/nolints_prime_decls.txt | 6 | 44 | ['YaelDillies', 'github-actions', 'j-loreaux', 'kbuzzard', 'mathlib4-dependent-issues-bot', 'quangvdao'] | nobody | 1 | 9 months ago | unknown | unknown |
| 21276 | GabinKolly | feat(ModelTheory/Substructures): define equivalences between equal substructures | Define first-order equivalences between equal substructures, and prove related properties. --- This is some preparatory work for #18876 [](https://gitpod.io/from-referrer/) | awaiting-author t-logic | 62/0 | Mathlib/ModelTheory/Substructures.lean | 1 | 19 | ['GabinKolly', 'YaelDillies', 'fpvandoorn', 'github-actions', 'grunweg'] | nobody | 1 | 9 months ago | unknown | unknown |
| 17627 | hrmacbeth | feat: universal properties of vector bundle constructions | Characterizations for the smoothness of maps into the total spaces of (1) the direct sum of two vector bundles; (2) the pullback of a vector bundle. This gap in the library was exposed by #17358. --- - [x] depends on: #22804 [](https://gitpod.io/from-referrer/) | merge-conflict t-differential-geometry delegated | 311/9 | Mathlib/Data/Bundle.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean,Mathlib/Topology/FiberBundle/Constructions.lean | 4 | 24 | ['PatrickMassot', 'github-actions', 'grunweg', 'hrmacbeth', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'sgouezel'] | grunweg | 1 | 7 months ago | unknown | unknown |
| 25401 | digama0 | feat(Util): SuppressSorry option | See also leanprover/lean4#8611 and [#lean4 > Silent sorry @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Silent.20sorry/near/503537964). This is a stop-gap solution while leanprover/lean4#8611 is underway, but it works about as well as any other built in option. Hooking declaration elaborators turns out to be a very powerful technique. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 342/0 | Mathlib.lean,Mathlib/Util/CommandElabHook.lean,Mathlib/Util/SuppressSorry.lean,MathlibTest/suppressSorry.lean | 4 | 15 | ['digama0', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | alexjbest | 1 | 6 months ago | unknown | unknown |
| 26078 | kckennylau | feat(AlgebraicGeometry): add x, y, px, py for points on elliptic curves | --- Split from #25218. [](https://gitpod.io/from-referrer/) | awaiting-author t-algebraic-geometry | 44/0 | Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean | 1 | 12 | ['MichaelStollBayreuth', 'Multramate', 'acmepjz', 'dagurtomas', 'github-actions', 'kckennylau'] | dagurtomas | 1 | 6 months ago | 194 days ago | 64 days |
| 28150 | Equilibris | chore: clean up proofs typevec proofs | While adding variable universe corecs I found a lot of theorems in typevec that could do with a bit of a clean-up --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 24/26 | Mathlib/Data/TypeVec.lean | 1 | 7 | ['Equilibris', 'alexkeizer', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 | 6 months ago | 193 days ago | 13 days |
| 26462 | PSchwahn | feat(LinearAlgebra/Projection): add results about inverse of `Submodule.prodEquivOfIsCompl` | Add two theorems `Submodule.prodEquivOfIsCompl_symm_apply` and `Submodule.prodEquivOfIsCompl_symm_add`, which are API for `Submodule.prodEquivOfIsCompl`. We believe these theorems are useful; for example, we have used their statements in a [classification formalization project](https://github.com/LieLean/LowDimSolvClassification). Co-authored by: - [Viviana del Barco](https://github.com/vdelbarc) - [Gustavo Infanti](https://github.com/GuQOliveira) - [Exequiel Rivas](https://github.com/erivas) --- I am not sure whether the `prodEquivOfIsCompl_symm_apply` theorem should be tagged with `@[simp]`; this might lead to confluence issues. Opinions are welcome! [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 10/0 | Mathlib/LinearAlgebra/Projection.lean | 1 | 7 | ['PSchwahn', 'github-actions', 'joelriou', 'kckennylau'] | joelriou | 1 | 5 months ago | 176 days ago | 73 days |
| 27937 | madvorak | feat(Logic/Basic): `congr_heq₂` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-logic | 6/0 | Mathlib/Logic/Basic.lean | 1 | 8 | ['YaelDillies', 'fpvandoorn', 'github-actions', 'madvorak', 'vihdzp'] | fpvandoorn | 1 | 5 months ago | 193 days ago | 17 days |
| 21950 | erdOne | feat(NumberTheory/Padics): the completion of `ℚ` at a finite place is `ℚ_[p]` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-number-theory | 253/1 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/NumberTheory/Padics/HeightOneSpectrum.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean,Mathlib/Topology/Algebra/WithZeroMulInt.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean | 7 | 33 | ['Ruben-VandeVelde', 'erdOne', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'pechersky', 'smmercuri', 'xroblot'] | nobody | 1 | 5 months ago | unknown | unknown |
| 26330 | Timeroot | feat: "Junk value" test file | This PR continues the work from #25173. Original PR: https://github.com/leanprover-community/mathlib4/pull/25173 | awaiting-author t-data | 360/0 | MathlibTest/Junk.lean | 1 | 17 | ['SnirBroshi', 'Timeroot', 'bryangingechen', 'github-actions', 'leanprover-community-bot-assistant', 'madvorak', 'pechersky', 'vihdzp'] | pechersky | 2 | 5 months ago | 155 days ago | 33 days |
| 27302 | tristan-f-r | feat(Fintype/Quotient): finLiftOn₂ | The combination of [`Quotient.finLiftOn`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Fintype/Quotient.html#Quotient.finLiftOn) and [`liftOn₂`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Quotient.liftOn%E2%82%82). --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data | 19/0 | Mathlib/Data/Fintype/Quotient.lean | 1 | 12 | ['github-actions', 'kckennylau', 'pechersky', 'tristan-f-r', 'vihdzp'] | pechersky | 2 | 4 months ago | 139 days ago | 5 days |
| 28925 | 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! [](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 | 1 | 4 months ago | unknown | unknown |
| 28737 | astrainfinita | refactor: deprecate `MulEquivClass` | This PR continues the work from #18806. Original PR: https://github.com/leanprover-community/mathlib4/pull/18806 | merge-conflict awaiting-author t-algebra | 67/77 | Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Group/Equiv/Basic.lean,Mathlib/Algebra/Group/Equiv/Defs.lean,Mathlib/Algebra/Group/Irreducible/Lemmas.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/Units/Equiv.lean,Mathlib/Algebra/GroupWithZero/Equiv.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Prime/Lemmas.lean,Mathlib/Algebra/Ring/Divisibility/Basic.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/Star/MonoidHom.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean,Mathlib/GroupTheory/GroupExtension/Defs.lean,Mathlib/GroupTheory/Submonoid/Center.lean,Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/Multiplicity.lean,Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean,Mathlib/Topology/Algebra/ContinuousMonoidHom.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean | 26 | 20 | ['Vierkantor', 'alreadydone', 'astrainfinita', 'github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] | Vierkantor | 1 | 4 months ago | 190 days ago | 2 days |
| 27180 | ADedecker | feat: quotient of a monoid with zero by a multiplicative congruence | --- My motivation is getting a more conceptual construction of [ValuativeRel.ValueGroupWithZero](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Valuation/ValuativeRel.html#ValuativeRel.ValueGroupWithZero), but I think this is of independent interest. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra delegated | 141/26 | Mathlib.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/GroupWithZero.lean | 5 | 32 | ['ADedecker', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mathlib4-merge-conflict-bot', 'ocfnash'] | ocfnash | 1 | 4 months ago | 202 days ago | 27 days |
| 9352 | chenyili0818 | feat: arithmetic lemmas for `gradient` | This file is based on Mathlib.Analysis.Calculus.Gradient.Basic, and describes the calculation properties Co-authored-by: Ziyu Wang [tropicalfish910@gmail.com](mailto:tropicalfish910@gmail.com) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 404/0 | Mathlib.lean,Mathlib/Analysis/Calculus/Gradient/Lemmas.lean | 2 | 31 | ['chenyili0818', 'github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot', 'sgouezel', 'winstonyin'] | nobody | 1 | 3 months ago | unknown | unknown |
| 11890 | adomani | feat: the terminal refine linter | A linter that warns on usages of `refine` and `refine'` as a finishing tactic. See this [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Usage.20of.20refine'). ### Conclusion of the experiment Systematic replacements of terminal `refine` with `exact` leads to an overall slow-down. --- - [ ] depends on: #15616 (disable the linter in downstream projects) [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 77/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/TerminalRefineLinter.lean | 3 | 15 | ['adomani', 'github-actions', 'grunweg', 'joneugster', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 1 | 3 months ago | unknown | unknown |
| 20924 | tomaz1502 | feat(Computability/QueryComplexity): Oracle-based computation | This PR adds the types and lemmas for oracle-based computation. In this model, computations are run on a monad which also counts the number of oracle queries executed. With it, it becomes possible to reason about the upper bound of the query complexity of algorithms. In the future, we could extend this work to include the necessary bits from information theory and probability to also reason about lower bounds on query complexity, like the work in https://github.com/girving/debate.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2318629.20runtime.20complexity.20of.20sorting.20a.20list
Co-authored-by: Geoffrey Irving |
merge-conflict t-computability | 305/0 | Mathlib.lean,Mathlib/Computability/QueryComplexity/Basic.lean,Mathlib/Computability/QueryComplexity/Defs.lean | 3 | 60 | ['eric-wieser', 'girving', 'github-actions', 'mathlib4-merge-conflict-bot', 'quangvdao', 'tomaz1502'] | nobody | 1 | 3 months ago | unknown | unknown |
| 21624 | sinhp | feat(CategoryTheory): The (closed) monoidal structure on the product category of families of (closed) monoidal categories | Given a family of closed monoidal categories, we show that the product of these categories is a closed monoidal category with the pointwise monoidal structure. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 144/0 | Mathlib.lean,Mathlib/CategoryTheory/Pi/Basic.lean,Mathlib/CategoryTheory/Pi/Monoidal.lean,Mathlib/CategoryTheory/Pi/MonoidalClosed.lean | 4 | 20 | ['TwoFX', 'YaelDillies', 'b-mehta', 'github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot', 'sinhp'] | nobody | 1 | 3 months ago | unknown | unknown |
| 22159 | shetzl | feat: add definition of pushdown automata | Add the definition of pushdown automata and their two acceptance conditions: acceptance based on empty stack and acceptance based on final state.
Co-authored-by: Tobias Leichtfried |
merge-conflict t-computability awaiting-author new-contributor | 70/0 | Mathlib.lean,Mathlib/Computability/PDA.lean | 2 | 35 | ['YaelDillies', 'github-actions', 'madvorak', 'mathlib4-merge-conflict-bot', 'shetzl'] | nobody | 1 | 3 months ago | unknown | unknown |
| 22919 | plp127 | feat(Data/Fintype/Pi): Make `Fintype` instance for `RelHom`s computable | Makes the `Fintype` instance for rel homs computable. See this [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Classical.20vs.20constructive.20logic.20in.20computation/near/496220816) message. --- - [x] depends on: #24748 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 178/44 | Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Data/Fintype/CardEmbedding.lean,Mathlib/Data/Fintype/Pi.lean | 5 | 31 | ['IvanRenison', 'b-mehta', 'eric-wieser', 'fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] | b-mehta | 1 | 3 months ago | unknown | unknown |
| 26914 | quangvdao | feat(Data/PFunctor/Univariate): more definitions for univariate `PFunctor` | This PR defines several basic definitions of `PFunctor`, including zero, one, constants, monomials, coproduct (sum), product, sigma, pi, tensor product, universe lifting, and equivalence. We also add: (1) simple lemmas connecting the basic definitions, (2) an automatically derived ext lemma for `PFunctor` via `@[ext]` attribute Some things I'm not clear on: - I define `HAdd` and `HMul` instances for coproduct and product of poly functors having different universe levels. Should I also define `Add` and `Mul` instances for poly functors having the same universe level? - Is it ok to define notation for tensor product, i.e. `@[inherit_doc] scoped infixr:80 " ⊗ " => tensor`? I'm worried it might clash with other notation. - Need a double-check on the priority of notation. Some future definitions to add: - Various equivalences arising from arithmetic identities, e.g., `P + 0 ≃ₚ P`. - Definitions of Lenses and Charts (each of them will be a file or even a folder) - Exponential objects (corresponding to both `prod` and `tensor`) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 144/5 | Mathlib/Data/PFunctor/Univariate/Basic.lean | 1 | 20 | ['alexkeizer', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'quangvdao'] | eric-wieser | 1 | 3 months ago | 104 days ago | 133 days |
| 27163 | pechersky | feat(Topology/ValuativeRel): of and to basis of compatible valuations | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #30262 | t-number-theory t-algebra merge-conflict awaiting-author t-topology | 229/62 | Mathlib/NumberTheory/LocalField/Basic.lean,Mathlib/Order/Filter/Bases/Basic.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean | 3 | 73 | ['erdOne', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky', 'smmercuri'] | alreadydone | 1 | 3 months ago | 106 days ago | 62 days |
| 27534 | PierreQuinton | feat: a typeclass for `sSup`/`sInf` to be lawful | Adds lawful infima and suprema type classes. A preorder with lawful suprema: whenever a set has a least upper bound, `sSup` returns a least upper bound for that set. A preorder with lawful infima: whenever a set has a greatest lower bound, `sInf` returns a greastest lower bound for that set. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-order | 121/8 | Mathlib.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/LawfulSupInf.lean | 3 | 26 | ['PierreQuinton', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | YaelDillies | 1 | 3 months ago | 104 days ago | 114 days |
| 28325 | pechersky | feat(WithZeroTopology): `locallyCompactSpace_iff_locallyFiniteOrder_units` | On the way to golf/generalize the proof that locally compact valued fields have locally finite valuation groups as embodied in `Valued.integer.locallyFiniteOrder_units_mrange_of_isCompact_integer` ] --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-order large-import | 81/2 | Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean,Mathlib/Topology/Compactness/Compact.lean | 3 | 13 | ['erdOne', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'ocfnash'] | PatrickMassot | 1 | 3 months ago | 109 days ago | 93 days |
| 28871 | JaafarTanoukhi | feat(Combinatorics/Digraph): Tournaments | Define orientations and tournaments. Related to #26771.
Co-authored-by: Rida Hamadani |
merge-conflict t-combinatorics new-contributor | 62/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Digraph/Tournament.lean | 3 | 6 | ['JaafarTanoukhi', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'mathlib4-merge-conflict-bot'] | kmill | 1 | 3 months ago | 104 days ago | 71 days |
| 11800 | 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. --- [](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 | 1 | 3 months ago | unknown | unknown |
| 26310 | kckennylau | feat: binary forms | This PR provides the basic definition of binary forms, which are homogeneous polynomials in two variables. --- - [ ] depends on: #26312 - [ ] depends on: #26313 - [ ] depends on: #26314 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 73/0 | Mathlib.lean,Mathlib/RingTheory/MvPolynomial/BinaryForm.lean | 2 | 14 | ['MichaelStollBayreuth', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] | ocfnash | 1 | 3 months ago | 196 days ago | 7 days |
| 24514 | b-mehta | chore(Int/GCD): use fuel in xgcd | Modify the definition of xgcd to use fuel recursion, to allow it to be reduced in the kernel. As a consequence, this means the evaluation of field operations in ZMod p become provable by `rfl` and `decide`. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/opaque.20recursion.20definitions.20break.20mergeSort.20decidability --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data merge-conflict | 44/22 | Mathlib/Data/Int/GCD.lean | 1 | 6 | ['astrainfinita', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'nomeata', 'urkud'] | nobody | 1 | 3 months ago | unknown | unknown |
| 31242 | plp127 | feat: express filter as supremum of principal filter and free filter | Prove a filter is free iff it is smaller than the cofinite filter. Prove that every filter decomposes as the disjoint supremum of a principal filter and a free filter. --- - [ ] depends on: #31264 [](https://gitpod.io/from-referrer/) | t-order awaiting-author merge-conflict | 55/0 | Mathlib/Order/Filter/Cofinite.lean,Mathlib/Order/Lattice.lean | 2 | 7 | ['github-actions', 'jcommelin', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] | bryangingechen | 1 | 2 months ago | 92 days ago | 24 days |
| 31597 | grunweg | chore(AtLocation): allow throwing a warning when no progress is being made | A future PR will use this to make `by_contra!` and friends warn if the `push_neg` step makes no progress.
Co-authored by: Jovan Gerbscheid |
awaiting-author t-meta merge-conflict | 46/28 | Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Field.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/ReduceModChar.lean,Mathlib/Tactic/Ring/RingNF.lean,Mathlib/Util/AtLocation.lean,MathlibTest/FieldSimp.lean,MathlibTest/abel.lean | 10 | 7 | ['JovanGerb', 'fpvandoorn', 'github-actions', 'mathlib4-merge-conflict-bot', 'thorimur'] | thorimur | 2 | 2 months ago | 102 days ago | 7 days |
| 28057 | plp127 | feat(SuccOrder): simp lemma to refold `Order.succ` and `Order.pred` | Adds `SuccOrder.succ_eq_succ` and `PredOrder.pred_eq_pred` to refold `SuccOrder.succ` and `PredOrder.pred` into `Order.succ` and `Order.pred`. These lemmas are marked `@[simp]`. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-order merge-conflict | 8/2 | Mathlib/Order/SuccPred/Basic.lean | 1 | 4 | ['YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | bryangingechen | 1 | 2 months ago | 165 days ago | 44 days |
| 26912 | pechersky | chore(Algebra/Ring/Subring): simp tag `Subring.smul_def` | s-multiplying by a subtype is easiest to manipulate when both terms are in the ambient type. Many places that had to use the _def lemma for a rewrite, or to include it in a simp set, no longer have to. Ported from #25308 --- [](https://gitpod.io/from-referrer/) I found this being not-simp frustrating when talking about submodules over a valuation subring. | merge-conflict t-algebra | 67/66 | Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/Group/Subgroup/Actions.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/Algebra/Module/LocalizedModule/Exact.lean,Mathlib/Algebra/Module/LocalizedModule/IsLocalization.lean,Mathlib/Algebra/Module/LocalizedModule/Submodule.lean,Mathlib/Algebra/Ring/Periodic.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/LinearAlgebra/RootSystem/Irreducible.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/RingTheory/Etale/Kaehler.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/LocalProperties/Projective.lean,Mathlib/RingTheory/Localization/InvSubmonoid.lean,Mathlib/RingTheory/OreLocalization/Basic.lean | 25 | 26 | ['artie2000', 'eric-wieser', 'github-actions', 'j-loreaux', 'kckennylau', 'leanprover-bot', 'leanprover-radar', 'linesthatinterlace', 'mathlib4-merge-conflict-bot', 'pechersky'] | joelriou | 1 | 2 months ago | 99 days ago | 60 days |
| 32889 | artie2000 | feat(Algebra): forgetful lemmas for `map` and `comap` on substructures | * Standardise the form of forgetful lemmas for `map` and `comap` (ie, `(co)map_toSubfoo`) * Add missing lemmas of this form * Mark all such lemmas as `simp` --- - [ ] depends on: #21031 [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author blocked-by-other-PR merge-conflict | 72/17 | Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/Subalgebra.lean | 6 | 30 | ['YaelDillies', 'artie2000', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vihdzp'] | nobody | 1 | 2 months ago | 76 days ago | 2 days |
| 33381 | urkud | feat: add a version of the Schwarz lemma | Add a version of the Schwarz lemma that is midway between the original lemma and Pick's version. Use it to show that a function that is separately holomorphic on a polydisc and is bounded on this polydisc must be continuous on it. --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #33368 - [x] depends on: #33362 | t-analysis blocked-by-other-PR merge-conflict | 475/91 | Mathlib.lean,Mathlib/Analysis/Complex/Schwarz.lean,Mathlib/Analysis/Complex/UnitDisc/Basic.lean,Mathlib/Analysis/Complex/UnitDisc/Schwarz.lean,Mathlib/Analysis/Complex/UnitDisc/Shift.lean | 5 | 22 | ['girving', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 1 | 2 months ago | 64 days ago | 38 seconds |
| 32991 | artie2000 | chore(Algebra/Algebra): remove `Algebra.cast` coercion | See discussion at https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Algebra.2Ecast/with/564501144 --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 32/125 | Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Field.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/BigOperators/Expect.lean,Mathlib/Analysis/Normed/Algebra/Ultra.lean,Mathlib/FieldTheory/Differential/Liouville.lean,Mathlib/LinearAlgebra/Ray.lean,Mathlib/RingTheory/Localization/FractionRing.lean | 9 | 11 | ['Vierkantor', 'artie2000', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | Vierkantor | 1 | 1 month ago | unknown | unknown |
| 17176 | arulandu | feat: integrals and integrability with .re | Lemmas for swapping order of .re and integration/integrability. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-measure-probability please-adopt | 49/0 | Mathlib/MeasureTheory/Function/L1Space.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral.lean,Mathlib/MeasureTheory/Integral/SetIntegral.lean | 4 | 32 | ['EtienneC30', 'arulandu', 'github-actions', 'loefflerd'] | nobody | 1 | 1 month ago | unknown | unknown |
| 32165 | yuanyi-350 | feat(Real/Trigonometric): Add `sum_cos_arith_progression` and prepare for Dirichlet kernel | --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author merge-conflict | 68/0 | Mathlib.lean,Mathlib/Analysis/Fourier/DirichletKernel.lean | 2 | 8 | ['BoltonBailey', 'github-actions', 'mathlib4-merge-conflict-bot', 'urkud', 'yuanyi-350'] | fpvandoorn | 1 | 1 month ago | 93 days ago | 3 days |
| 32401 | ADedecker | feat: monotonicity of D^n(U) in n and in U as CLMs | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis delegated | 170/3 | Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean | 2 | 19 | ['ADedecker', 'faenuccio', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | nobody | 1 | 1 month ago | 62 days ago | 16 days |
| 25905 | mans0954 | feat(RingTheory/Polynomial/SmallDegreeVieta): polynomial versions of results in Algebra.QuadraticDiscriminant | This PR continues the work from #25605. Original PR: https://github.com/leanprover-community/mathlib4/pull/25605 | merge-conflict t-ring-theory please-adopt | 77/8 | Mathlib/Algebra/Polynomial/Coeff.lean,Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean | 2 | 47 | ['chrisflav', 'github-actions', 'kckennylau', 'mans0954', 'mathlib4-merge-conflict-bot', 'ocfnash'] | chrisflav | 1 | 1 month ago | 178 days ago | 81 days |
| 12934 | grunweg | chore: replace more uses of > or ≥ by < or ≤ | These were flagged by the linter in https://github.com/leanprover-community/mathlib4/pull/12879: it is easy to simple avoid > or ≥ in hypotheses or haves. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author help-wanted | 41/42 | Archive/Imo/Imo1962Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2019Q4.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib/Tactic/Linarith/Datatypes.lean,test/cancel_denoms.lean,test/congr.lean,test/interval_cases.lean,test/observe.lean | 15 | 12 | ['YaelDillies', 'adomani', 'github-actions', 'grunweg', 'jcommelin', 'urkud'] | nobody | 1 | 1 month ago | unknown | unknown |
| 32880 | 0xTerencePrime | feat(Analysis/Asymptotics): define subpolynomial growth | ## Main definitions * `Asymptotics.IsSubpolynomial l f g`: A function `f` has subpolynomial growth with respect to `g` along filter `l` if `f = O(1 + ‖g‖^k)` for some natural `k`. ## Main results * `IsSubpolynomial.const`: Constant functions have subpolynomial growth * `IsSubpolynomial.id`: Identity has subpolynomial growth * `IsSubpolynomial.add`: Closure under addition * `IsSubpolynomial.neg`: Closure under negation * `IsSubpolynomial.sub`: Closure under subtraction * `IsSubpolynomial.mul`: Closure under multiplication * `IsSubpolynomial.pow`: Closure under powers * `isSubpolynomial_iff_one_add`: Equivalence with `(1 + ‖g‖)^k` formulation * `IsSubpolynomial.uniform`: Uniform bounds for finite families ## Implementation notes The definition uses `1 + ‖g‖^k` rather than `(1 + ‖g‖)^k` as the primary form, with the equivalence established in `isSubpolynomial_iff_one_add`. Four private auxiliary lemmas handle the key inequalities needed for closure proofs. Closes #32658 | awaiting-author t-analysis new-contributor | 185/0 | Mathlib.lean,Mathlib/Analysis/Asymptotics/Subpolynomial.lean | 2 | 28 | ['0xTerencePrime', 'ADedecker', 'github-actions', 'j-loreaux'] | ADedecker | 1 | 1 month ago | 51 days ago | 22 days |
| 29610 | llllvvuu | feat(LinearAlgebra): define LinearMap.Eigenbasis | Some theorems are left TODO for follow-up work.
The definition is from @eric-wieser ([#Is there code for X? > diagonalizable linear maps @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/diagonalizable.20linear.20maps/near/539163222)).
Co-authored-by: Aristotle Harmonic |
merge-conflict t-algebra awaiting-author | 455/5 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/LinearAlgebra/Eigenbasis.lean,Mathlib/LinearAlgebra/FreeModule/PID.lean,Mathlib/Order/CompleteLattice/Basic.lean | 5 | 31 | ['github-actions', 'joelriou', 'kckennylau', 'llllvvuu', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | joelriou | 1 | 1 month ago | 104 days ago | 20 days |
| 20719 | gio256 | feat(AlgebraicTopology): delaborators for truncated simplicial notations | We add delaborators for the following notations, introduced in #20688: - `⦋m⦌ₙ`, which denotes the `m`-dimensional simplex in the `n`-truncated simplex category. - `X _⦋m⦌ₙ`, which denotes the `m`-th term of an `n`-truncated simplicial object `X`. - `X ^⦋m⦌ₙ`, which denotes the `m`-th term of an `n`-truncated cosimplicial object `X`. If `pp.proofs` is set to `true`, we also pretty-print the proof `p : m ≤ n` for all three notations as `⦋m, p⦌ₙ`, `X _⦋m, p⦌ₙ`, and `X ^⦋m, p⦌ₙ`, respectively. Credit to @kmill for one piece of code and much metaprogramming inspiration. --- - [x] depends on: #20688 - [x] depends on: #23018 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-topology infinity-cosmos t-meta | 525/33 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SimplexCategory.lean,Mathlib/Util/Superscript.lean,MathlibTest/SimplexCategory.lean,MathlibTest/SimplicialObject.lean,MathlibTest/superscript.lean,scripts/noshake.json | 11 | 23 | ['eric-wieser', 'gio256', 'github-actions', 'joneugster', 'kim-em', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | joneugster | 1 | 1 month ago | unknown | unknown |
| 28796 | 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) [](https://gitpod.io/from-referrer/) | t-differential-geometry merge-conflict awaiting-author | 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 | 55 | ['chrisflav', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | PatrickMassot | 1 | 1 month ago | unknown | unknown |
| 33504 | ldct | feat: Add lemmas for DihedralGroup.fintypeHelper | Using `fin_cases` to reason about `DihedralGroup` elements exposes the internal `fintypeHelper` instances, which has no exported API ``` example (g : DihedralGroup 3) : (g^6 = 1) := by fin_cases g <;> dsimp -- 6 goals case «0» ⊢ DihedralGroup.fintypeHelper✝ (Sum.inl 0) ^ 6 = 1 ... ``` this PR adds simp lemma that convert them to constructors, which do have API ``` 6 goals case «0» ⊢ 1 ^ 6 = 1 case «1» ⊢ DihedralGroup.r 1 ^ 6 = 1 case «2» ⊢ DihedralGroup.r 2 ^ 6 = 1 ``` --- [](https://gitpod.io/from-referrer/) | awaiting-author t-group-theory | 8/0 | Mathlib/GroupTheory/SpecificGroups/Dihedral.lean | 1 | 3 | ['Komyyy', 'github-actions', 'tb65536'] | nobody | 1 | 1 month ago | 40 days ago | 19 days |
| 32828 | Hagb | feat(Algebra/Order/Group/Defs): add `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid'` | It is similar to `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid`, while with different hypotheses. The conclusion `IsOrderedCancelMonoid α` on `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid` still holds when the hypothesis `CommGroup α` is weakened to `CancelCommMonoid α` while `PartialOrder α` is strengthened to `LinearOrder α`. --- [`IsOrderedAddMonoid.toIsOrderedCancelAddMonoid`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsOrderedAddMonoid.toIsOrderedCancelAddMonoid#doc) and `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid'`: https://github.com/leanprover-community/mathlib4/blob/97f78b1a4311fed1844b94f1c069219a48a098e1/Mathlib/Algebra/Order/Group/Defs.lean#L52-L62 [](https://gitpod.io/from-referrer/) | awaiting-zulip t-algebra | 4/0 | Mathlib/Algebra/Order/Group/Defs.lean | 1 | 8 | ['Garmelon', 'Vierkantor', 'artie2000', 'github-actions', 'leanprover-radar'] | eric-wieser | 2 | 1 month ago | 40 days ago | 40 days |
| 21476 | grunweg | feat(lint-style): enable running on downstream projects | Enable lint-style to run on downstream projects, by making the following modifications: - allow passing an explicit list of libraries to lint: if nothing is passed, it lints `Mathlib`, `Archive` and `Counterexamples` (as before); otherwise, it lints precisely the passed modules - only check init imports, undocumented scripts and the errors from `lint-style.py` when linting Mathlib - make the style exceptions file configurable and optional: using the `nolints-file` flag, the exceptions file can be configured. If the flag is omitted, we try to find a file at `scripts/nolints-style.txt` --- and otherwise proceed with no style exceptions. This means mathlib can continue unchanged, and downstream projects can either add an explicit exceptions file, or proceed without any exceptions. After this PR, one should be able to run lint-style on a downstream project by `lake exe lint-style ProjectName`. Prompted by [this zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/lint-style.20for.20downstream.20libraries). --- - [x] depends on: #24570 - [x] depends on: #24953 (I did not test the last part.) [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 58/19 | Mathlib/Tactic/Linter/TextBased.lean,scripts/lint-style.lean | 2 | 20 | ['Vierkantor', 'adomani', 'github-actions', 'grunweg', 'joneugster', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | joneugster | 1 | 1 month ago | unknown | unknown |
| 33052 | JovanGerb | feat: replace `rw??` tactic with `#infoview_search` command | This PR introduces the `#infoview_search` command. It gives an improved way of interacting with the library search from `rw??`, and hence this PR also deprecates `rw??` (`rw??` still works, but it displays a warning message suggesting to use `#infoview_search` instead). The difference is that `#infoview_search` is a command, so you type it once, and then you can use rewrite search in any tactic state in any place. This is more convenient than having to write out `rw??` every time. I have many improvements planned for `#infoview_search`, but this PR simply gives it the same capabilities that `rw??` currently has. One of those improvements is to also do `apply` search, and `apply at` search. That is why the name doesn't contain `rw` anymore. To prepare for more code developments around `#infoview_search`, I've moved the relevant files into a new folder `Mathlib.Tactic.InfoviewSearch`. Note that one annoyance with writing `#infoview_search` is that there is a linter warning. Should I remove the `#` from the command, or are we happy with this? ``` `#`-commands, such as '#infoview_search', are not allowed in 'Mathlib' Note: This linter can be disabled with `set_option linter.hashCommand false` ``` --- [](https://gitpod.io/from-referrer/) | large-import delegated t-meta file-removed merge-conflict | 100/59 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/InfoviewSearch/InteractiveUnfold.lean,Mathlib/Tactic/InfoviewSearch/LibraryRewrite.lean,MathlibTest/LibraryRewrite.lean | 6 | 6 | ['JovanGerb', 'fpvandoorn', 'github-actions', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | adamtopaz | 1 | 1 month ago | 53 days ago | 21 days |
| 34092 | staroperator | feat(SetTheory/ZFC): properties of `ZFSet.omega` | --- [](https://gitpod.io/from-referrer/) | t-set-theory | 77/10 | Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/PSet.lean | 3 | 25 | ['Komyyy', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator', 'vihdzp'] | alreadydone | 1 | 1 month ago | 33 days ago | 44 days |
| 33044 | bryangingechen | ci: also get cache for parent commit | cf. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib.20has.20moved.20to.20the.20new.20module.20system/near/563452000 --- [](https://gitpod.io/from-referrer/) | awaiting-author CI merge-conflict | 84/8 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml | 4 | 10 | ['bryangingechen', 'github-actions', 'jcommelin', 'joneugster', 'mathlib-bors', 'mathlib-merge-conflicts'] | joneugster | 1 | 1 month ago | 48 days ago | 26 days |
| 32570 | ksenono | feat(Combinatorics/SimpleGraph): bipartite subgraphs and vertex-disjoint graphs for Konig's theorem | --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 22/0 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 2 | 19 | ['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono', 'vlad902'] | kmill | 1 | 1 month ago | 28 days ago | 80 days |
| 33592 | nielstron | feat(Computability/ContextFreeGrammar): mapping between two types of nonterminal symbols | This PR picks up https://github.com/leanprover-community/mathlib4/pull/15895 and resolves the failing lemma by redefining Good symbols. --- I checked that https://github.com/leanprover-community/mathlib4/pull/13514 builds correctly when based on this build. PR for that is #33599 This is my first contribution please let me know of any changes I should outline. [](https://gitpod.io/from-referrer/) | awaiting-author t-computability new-contributor | 158/0 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 27 | ['YaelDillies', 'github-actions', 'madvorak', 'nielstron'] | nobody | 1 | 27 days ago | 46 days ago | 10 days |
| 33493 | michelsol | feat(RingTheory/Polynomial): An explicit formula for the Chebyshev polynomials of the first kind | Adds the following explicit formula on the Chebyshev polynomial of the first kind of order n. ${ T_{n}(x)\ =\ \sum \limits _{k=0}^{\lfloor {\frac {n}{2}}\rfloor } {\binom {n}{2k}} \left(\ X^{2}-1\ \right)^{k}\ X^{n-2k}}$ This explicit formula can be found [here](https://en.wikipedia.org/wiki/Chebyshev_polynomials#Explicit_expressions). There is a proof using complex numbers but it only works if the ring R = ℂ. The proof here is by induction and works in a commutative ring R. Mathlib seems to extend the definition of Chebyshev polynomials for $n \in \mathbb{Z}$ but this would make the formula more cumbersome with `n.natAbs` in place of `n`'s, so I expressed it on `n : ℕ` directly. --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor awaiting-author | 51/1 | Mathlib/RingTheory/Polynomial/Chebyshev.lean | 1 | 8 | ['YuvalFilmus', 'erdOne', 'github-actions', 'metakunt', 'michelsol'] | chrisflav | 1 | 24 days ago | 24 days ago | 35 days |
| 34573 | Kha | chore(Analysis/Normed/Lp/SmoothApprox): shake public imports | `lake shake --keep-implied --keep-prefix --fix --only Mathlib.Analysis.Normed.Lp.SmoothApprox`, using a dev version of `shake` | 7/2 | Mathlib/Analysis/Normed/Lp/SmoothApprox.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean | 2 | 15 | ['Garmelon', 'JovanGerb', 'Kha', 'YaelDillies', 'github-actions', 'jcommelin', 'leanprover-radar'] | nobody | 1 | 23 days ago | 23 days ago | 10 days | |
| 26985 | agjftucker | feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfProdDomain | This PR continues the work from #16743. Original PR: https://github.com/leanprover-community/mathlib4/pull/16743 --- - [x] depends on: #28352 [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 269/157 | Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean | 4 | 27 | ['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] | hrmacbeth | 1 | 21 days ago | 21 days ago | 84 days |
| 32744 | NoneMore | feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas | This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas. The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable. There are also some tool lemmas derived by the preimage lemma. --- [](https://gitpod.io/from-referrer/) | new-contributor t-logic | 147/0 | Mathlib/ModelTheory/Definability.lean | 1 | 59 | ['NoneMore', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] | awainverse | 1 | 21 days ago | 53 days ago | 74 days |
| 30431 | kckennylau | feat(RingTheory): a homogeneous submodule is the span of its homogeneous elements | --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 22/0 | Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean | 2 | 8 | ['alreadydone', 'github-actions', 'kckennylau', 'mariainesdff'] | mariainesdff | 1 | 21 days ago | 120 days ago | 23 days |
| 31141 | peabrainiac | feat(Analysis/Calculus): parametric integrals over smooth functions are smooth | Show that for any smooth function `f : H × ℝ → E`, the parametric integral `fun x ↦ ∫ t in a..b, f (x, t) ∂μ` is smooth too. The argument proceeds inductively, using the fact that derivatives of parametric integrals can themselves be computed as parametric integrals. The necessary lemmas on derivatives of parametric integrals already existed, but took some work to apply due to their generality; we state some convenient special cases. --- - [x] depends on: #31077 [](https://gitpod.io/from-referrer/) | t-analysis maintainer-merge awaiting-author | 470/12 | Mathlib/Analysis/Calculus/ParametricIntegral.lean,Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/Topology/NhdsWithin.lean,Mathlib/Topology/Separation/Regular.lean | 5 | 36 | ['fpvandoorn', 'github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'peabrainiac', 'sgouezel'] | j-loreaux | 1 | 20 days ago | 20 days ago | 22 days |
| 33944 | artie2000 | feat(Algebra/Ring): formally real rings | * Define formally real rings
* Prove basic inductive facts about them
Co-authored-by: Violeta Hernández Palacios |
t-algebra | 160/0 | Mathlib.lean,Mathlib/Algebra/Ring/IsFormallyReal.lean | 2 | 24 | ['artie2000', 'github-actions', 'vihdzp'] | mariainesdff | 1 | 18 days ago | 18 days ago | 29 days |
| 11500 | mcdoll | refactor(Topology/Algebra/Module/WeakDual): Clean up | - Move `Dual` and `dualPairing` lower in the import-hierachy - deduplicate `dualPairing` - Bundle continuity statements to `CLM`s. - Make `WeakDual` and `WeakSpace` reducible - Remove `refine'` in favor of `refine` --- Cleaning up `Analysis/NormedSpace/WeakDual` will be done in a second PR [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 227/179 | Mathlib.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/Dual.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/NormedSpace/Dual.lean,Mathlib/Analysis/NormedSpace/WeakDual.lean,Mathlib/Analysis/VonNeumannAlgebra/Basic.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/Algebra/Module/Dual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,docs/overview.yaml,docs/undergrad.yaml | 15 | 16 | ['ADedecker', 'grunweg', 'j-loreaux', 'kkytola', 'mathlib-bors', 'mcdoll', 'urkud'] | nobody | 2 | 16 days ago | unknown | unknown |
| 35134 | fpvandoorn | feat(translate): print constant names with hover info | Part of #34846. --- [](https://gitpod.io/from-referrer/) | t-meta awaiting-author merge-conflict | 46/28 | Mathlib/Tactic/Translate/Core.lean,MathlibTest/toAdditive.lean | 2 | 6 | ['JovanGerb', 'github-actions', 'mathlib-merge-conflicts'] | JovanGerb | 1 | 16 days ago | 18 days ago | 2 days |
| 34601 | themathqueen | feat(Combinatorics/SimpleGraph/AdjMatrix): adjacency matrix API | --- [](https://gitpod.io/from-referrer/) | t-combinatorics large-import | 117/19 | Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean | 1 | 21 | ['b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] | kmill | 1 | 15 days ago | 15 days ago | 32 days |
| 34025 | lua-vr | feat(Integral.Bochner.Set): add `tendsto_setIntegral_of_monotone₀` | Adds the lemma `tendsto_setIntegral_of_monotone₀`, a version of `tendsto_setIntegral_of_monotone` requiring only `AEMeasurableSet` in the hypotheses. The previous version is redefined as a specialization. Also renames `integral_union_ae` to `setIntegral_union₀` for consistency with the rest of the library (it matches the existing `setIntegral_union`). --- [](https://gitpod.io/from-referrer/) Re-opened from #33206 and now taking respect for Windows users (thanks @ADedecker :). | t-measure-probability delegated | 27/13 | Mathlib/MeasureTheory/Integral/Bochner/Set.lean | 1 | 5 | ['github-actions', 'mathlib-bors', 'ocfnash'] | kex-y | 1 | 14 days ago | 14 days ago | 32 days |
| 24965 | erdOne | refactor: Make `IsLocalHom` take unbundled map | Under the current definition, `IsLocalHom f` and `IsLocalHom f.toMonoidHom` are not defeq, which causes quite some annoyances. We also have a consensus to not use `*HomClass` in definitions. As a result, we change `IsLocalHom` to take an unbundled function instead of a funlike. --- [](https://gitpod.io/from-referrer/) | t-algebra delegated merge-conflict | 18/9 | Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean,Mathlib/Geometry/RingedSpace/OpenImmersion.lean,Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean | 5 | 15 | ['adomani', 'alreadydone', 'erdOne', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp'] | mattrobball | 1 | 14 days ago | 105 days ago | 14 days |
| 34245 | staroperator | feat(Data/Set): add `Set.Uncountable` | There are `Set` specialized shortcuts `Set.Finite`, `Set.Infinite` and `Set.Countable`, but lacking `Set.Uncountable`. I find this useful in #34246. --- [](https://gitpod.io/from-referrer/) | t-data awaiting-zulip | 82/4 | Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Data/Set/Countable.lean,Mathlib/SetTheory/Cardinal/Basic.lean | 3 | 16 | ['github-actions', 'joneugster', 'staroperator', 'vihdzp'] | joneugster | 1 | 13 days ago | 28 days ago | 12 days |
| 35277 | marcelolynch | ci: remove outdated logic in workflows | Remove outdated code in workflows: - a step used in an investigation - should not be needed in any case with ephemeral runners - merge_group triggers: we don't use them anymore - outdated commented steps - stale.yml, an experimental unused pipeline | file-removed CI awaiting-author | 0/48 | .github/workflows/actionlint.yml,.github/workflows/build.yml,.github/workflows/build_template.yml,.github/workflows/stale.yml | 4 | 3 | ['bryangingechen', 'github-actions', 'joneugster'] | bryangingechen and joneugster | 1 | 12 days ago | unknown | unknown |
| 30666 | erdOne | feat(NumberTheory): every number field has a ramified prime | --- [](https://gitpod.io/from-referrer/) | t-number-theory awaiting-author t-algebra | 220/20 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/Action/TransferInstance.lean,Mathlib/Algebra/Ring/Int/Field.lean,Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/Discriminant/Different.lean,Mathlib/NumberTheory/NumberField/ExistsRamified.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean | 9 | 24 | ['erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'tb65536', 'xroblot'] | jcommelin | 1 | 12 days ago | 115 days ago | 13 days |
| 35524 | grunweg | feat: text-based linter against \t followed by tactic mode | Wait for the zulip discussion to converge. **If** there is consensus in favour of this change, summarise the motivation here. [zulip discuss](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/proposal.3A.20no.20more.20use.20of.20.60.E2.96.B8.60.20in.20Mathlib.3F/with/574680826) --- There are currently 80 remaining exceptions in mathlib: ideally, these would get fixed before merging this. Works best when combined with #35523. [](https://gitpod.io/from-referrer/) | t-linter awaiting-zulip | 23/2 | Mathlib/Tactic/Linter/TextBased.lean | 1 | 4 | ['github-actions', 'grunweg', 'joneugster', 'vihdzp'] | nobody | 1 | 11 days ago | unknown | unknown |
| 34249 | xyzw12345 | feat(GroupTheory/GroupAction/Hom): connect existing definitions `MulDistribMulActionHom` and `DistribMulActionHom` using `to_additive` | In this PR, we defined `MulDistribMulActionHom` corresponding to `DistribMulActionHom`, which will be used in the multiplicative version of non-Abelian group cohomology. --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 174/69 | Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean | 2 | 7 | ['github-actions', 'mathlib-bors', 'ocfnash'] | ocfnash | 1 | 11 days ago | 11 days ago | 29 days |
| 34315 | LessnessRandomness | feat(Combinatorics/SimpleGraph/Bipartite): Prove upper bound of edge set cardinality of bipartite graph | Two ways to express upper bound of the edge set of bipartite graph: 1) If the cardinalities of both parts/sets, that make bipartite graph, are known, then the upper bound is equal to product of the cardinalities of both parts; 2) Four times of the cardinality of the edge set is less or equal to squared cardinality of vertex set. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 53/0 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean | 1 | 55 | ['LessnessRandomness', 'SnirBroshi', 'b-mehta', 'github-actions', 'vlad902'] | awainverse | 1 | 10 days ago | 10 days ago | 34 days |
| 30526 | SnirBroshi | chore(Logic/Relation): use `≤` to spell subrelation | Replace every `∀ x y, r x y → r' x y` with `r ≤ r'` --- [](https://gitpod.io/from-referrer/) | t-logic | 161/136 | Mathlib.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/ConnectedComponents.lean,Mathlib/CategoryTheory/Filtered/Connected.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean,Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/TMConfig.lean,Mathlib/Data/PFunctor/Multivariate/M.lean,Mathlib/Data/Quot.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Defs/Prop.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/Topology/Gluing.lean | 25 | 14 | ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] | thorimur | 1 | 10 days ago | 10 days ago | 39 days |
| 35622 | SnirBroshi | feat(Logic/Function/Basic): `onFun` and `swap` preserve relation properties | --- [](https://gitpod.io/from-referrer/) | t-logic | 105/1 | Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Function/Defs.lean,Mathlib/Order/Defs/Unbundled.lean | 3 | 4 | ['SnirBroshi', 'github-actions', 'vihdzp'] | nobody | 1 | 9 days ago | 9 days ago | 10 days |
| 35295 | Rida-Hamadani | feat(SimpleGraph): `dropLast` of a cycle is a path | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 18/1 | Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 2 | 6 | ['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'vlad902'] | nobody | 1 | 9 days ago | 9 days ago | 10 days |
| 22366 | kim-em | feat: `check_equalities` tactic for diagnosing defeq problems | The `check_equalities` tactic, which checks the typing of equalities in the goal, reporting discrepancies between the implicit type argument of the equality, and the inferred types of the left and right hand sides, at "instances and reducible" transparency. Reports from this tactic do not necessarily indicate a problem, although typically `simp` should reduce rather than increase the reported discrepancies. `check_equalities` may be useful in diagnosing uses of `erw`. | delegated t-meta | 123/4 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/CheckCompositions.lean,Mathlib/Tactic/CheckEqualities.lean,Mathlib/Tactic/Common.lean,MathlibTest/check_equalities.lean | 7 | 19 | ['adomani', 'b-mehta', 'eric-wieser', 'github-actions', 'grunweg', 'kim-em', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | nobody | 1 | 9 days ago | unknown | unknown |
| 33972 | YuvalFilmus | feat(Analysis/Polynomial/Order): polynomial has fixed sign beyond largest root | We prove that a polynomial has fixed sign beyond its largest root. One could also prove similar results about the smallest root, but they will be more awkward since they will depend on the parity of the (natural) degree; suggestions welcome (perhaps for a future PR). --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-zulip | 134/0 | Mathlib.lean,Mathlib/Analysis/Polynomial/Order.lean | 2 | 13 | ['YuvalFilmus', 'artie2000', 'github-actions', 'mathlib-merge-conflicts', 'urkud', 'vihdzp'] | ADedecker and urkud | 1 | 8 days ago | 8 days ago | 38 days |
| 31766 | SuccessMoses | feat(Topology/EMetricSpace): continuity of arc length | fixes half of #31751 --- [](https://gitpod.io/from-referrer/) | new-contributor t-topology awaiting-author merge-conflict | 396/0 | Mathlib.lean,Mathlib/Topology/EMetricSpace/ArcLength.lean,Mathlib/Topology/EMetricSpace/BoundedVariation.lean | 3 | 40 | ['SnirBroshi', 'SuccessMoses', 'alreadydone', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts'] | nobody | 1 | 8 days ago | 84 days ago | 2 days |
| 34599 | cameronfreer | feat(Logic/Equiv/Fintype): generalize toCompl and exists_extending_pair to finite source | Generalize the Equiv subtype-extension API so it only needs finiteness of
the source subtype, then use that to drastically simplify
`Equiv.Perm.isMultiplyPretransitive`.
### Changes to `Logic/Equiv/Fintype.lean`
* **`Equiv.toCompl`**: generalize from `[Finite α]` to `[Finite {x | p x}]`.
New proof (due to tb65536) uses finset symmetric differences to avoid
needing finiteness of the ambient type.
* **`Equiv.extendSubtype`** and related lemmas: adapt to `[Finite {x | p x}]`.
* **`Equiv.Perm.exists_extending_pair`**: strengthen from `[Finite β]` to
`[Finite α]`. Given two injective functions `f, g : α → β` where `α` is
finite, there exists `σ : Perm β` with `σ ∘ f = g`. The target `β` can
now be infinite.
### Changes to `MultipleTransitivity.lean`
* **`Equiv.Perm.isMultiplyPretransitive`**: replace ~70-line manual
bijectivity construction with a two-line proof via
`exists_smul_eq_embedding`.
* **`exists_smul_eq_embedding`**: rewire to use `exists_extending_pair`
directly (removing the old cardinal-arithmetic proof
`exists_extending_pair_of_finite_source`).
### Application
Used in formalizing de Finetti's theorem (exchangeability ⇒ contractability):
https://github.com/cameronfreer/exchangeability/blob/03a854a2/Exchangeability/Contractability.lean#L459
Co-authored-by: tb65536 |
t-group-theory new-contributor | 49/77 | Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/Logic/Equiv/Fintype.lean | 2 | 24 | ['LLaurance', 'cameronfreer', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] | mattrobball | 1 | 8 days ago | 8 days ago | 17 days |
| 30982 | jsm28 | feat(Geometry/Euclidean/Angle/Incenter): angle bisection and the incenter | Add lemmas relating the incenter and excenters of a simplex to angle bisection, both generally for a simplex and more specifically with oriented angles for a triangle. More specific lemmas for a simplex (identifying exactly which excenter corresponds to which bisectors) will require various additional API for bisectors of angles betweeen oriented affine subspaces (but for the most common applications to typical plane geometry problems, I expect the triangle lemmas with oriented angles to be more useful). --- - [ ] depends on: #30474 - [ ] depends on: #30477 - [ ] depends on: #30600 - [ ] depends on: #30703 - [ ] depends on: #30938 - [ ] depends on: #30981 [](https://gitpod.io/from-referrer/) | t-euclidean-geometry | 269/0 | Mathlib.lean,Mathlib/Geometry/Euclidean/Angle/Incenter.lean | 2 | 6 | ['Parcly-Taxel', 'github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] | JovanGerb | 2 | 8 days ago | 8 days ago | 21 days |
| 35642 | SnirBroshi | feat(SimpleGraph/Walks/Operations): `p.dropLast.length` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 12/1 | Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 1 | 1 | ['github-actions', 'vlad902'] | nobody | 1 | 7 days ago | 9 days ago | 9 days |
| 35631 | SnirBroshi | feat(SimpleGraph/Walks/Operations): `p.dropLast.support` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 9/0 | Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 1 | 2 | ['github-actions', 'vlad902'] | nobody | 1 | 7 days ago | 7 days ago | 9 days |
| 35494 | Timeroot | feat(Topology/Perfect): simp frontier_singleton | Add simp lemma ``` theorem frontier_singleton {X : Type*} [TopologicalSpace X] [T1Space X] [PerfectSpace X] (p : X) : frontier {p} = {p} ``` --- [](https://gitpod.io/from-referrer/) | t-topology awaiting-author | 4/0 | Mathlib/Topology/Perfect.lean | 1 | 4 | ['Timeroot', 'github-actions', 'urkud', 'vihdzp'] | urkud | 1 | 7 days ago | 8 days ago | 5 days |
| 34805 | DavidLedvinka | feat(Tactic): generalize ofScientific NormNum extension to `DivisionSemiring` | Co-authored-by: @hrmacbeth | t-meta awaiting-author merge-conflict | 68/20 | Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/OfScientific.lean,MathlibTest/norm_num.lean | 3 | 25 | ['DavidLedvinka', 'JovanGerb', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'thorimur'] | JovanGerb | 1 | 7 days ago | 7 days ago | 20 days |
| 35292 | Rida-Hamadani | feat(SimpleGraph): taking twice from a walk equals taking the minimum | this is an analogue to `List.take_take`. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 5/0 | Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 1 | 2 | ['SnirBroshi', 'github-actions'] | nobody | 1 | 7 days ago | 17 days ago | 17 days |
| 35696 | GrigorenkoPV | fix(Data/Rel): change what `image_eq_cod_of_dom_subset` states | It used to be identical to its neighbor, `preimage_eq_dom_of_cod_subset`. Both lemmas seem to have been introduced in #25587. --- I think this is technically a breaking change? Not sure what has to be done here. [](https://gitpod.io/from-referrer/) | t-data new-contributor | 1/1 | Mathlib/Data/Rel.lean | 1 | 2 | ['github-actions', 'vihdzp'] | nobody | 1 | 7 days ago | unknown | unknown |
| 35481 | FrankieeW | chore(NumberTheory/Zsqrtd): inline duplicated order lemmas into instances | This PR follows reviewer feedback by removing duplicated order/additive wrapper theorems in `Zsqrtd` and inlining the proofs into the corresponding typeclass instances. Changes include: - remove redundant wrappers such as `Zsqrtd.le_total`, `Zsqrtd.add_le_add_left`, `Zsqrtd.le_of_add_le_add_left`, `Zsqrtd.add_lt_add_left`, and `Zsqrtd.le_antisymm` - keep the canonical API through `LinearOrder` / ordered additive structure fields - update downstream use in `PellMatiyasevic` to the canonical theorem (`_root_.le_antisymm`) This reduces namespace-level duplicate APIs and keeps proofs aligned with standard typeclass lemmas. --- [](https://gitpod.io/from-referrer/) | new-contributor t-number-theory | 26/10 | Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean | 2 | 8 | ['FrankieeW', 'github-actions', 'vihdzp'] | MichaelStollBayreuth | 1 | 7 days ago | 10 days ago | 13 days |
| 35239 | JohnnyTeutonic | feat(Logic/Function): add Lawvere fixed-point theorem | Adds Lawvere's fixed-point theorem. This is the classical diagonal argument that generalizes \cantor_surjective\ and \cantor_injective\ (both already in Mathlib). The proof is a two-line term-mode construction. | t-logic awaiting-author merge-conflict | 12/3 | Mathlib/Logic/Function/Basic.lean | 1 | 8 | ['JohnnyTeutonic', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier', 'vihdzp'] | nobody | 1 | 6 days ago | 18 days ago | 8 hours |
| 33479 | zcyemi | feat(Geometry/Euclidean/Sphere/Power): Add theorem about cospherical points on two intersecting lines | --- Add `cospherical_of_mul_dist_eq_mul_dist_of_angle_eq_pi`. ~~This theorem is the converse of `EuclideanGeometry.mul_dist_eq_mul_dist_of_cospherical_of_angle_eq_pi`. However, the ambient type is required to be two-dimensional, i.e. `Fact (finrank ℝ V = 2)`. I don‘t think (not entirely sure) that lifting the ambient space from dimension 2 to arbitrary dimension is reasonable for this theorem, since the proof is entirely carried out in a two-dimensional plane. Therefore, I place this theorem in `Euclidean/Angle/Sphere` rather than `Euclidean/Sphere/Power`.~~ Deps: - [ ] depends on: #33365 | large-import t-euclidean-geometry delegated | 109/4 | Mathlib/Geometry/Euclidean/Sphere/Basic.lean,Mathlib/Geometry/Euclidean/Sphere/Power.lean | 2 | 18 | ['github-actions', 'jsm28', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'ocfnash', 'zcyemi'] | JovanGerb | 1 | 5 days ago | 5 days ago | 8 days |
| 30872 | 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 [](https://gitpod.io/from-referrer/) | t-computability new-contributor awaiting-author | 104/7 | Mathlib/Computability/NFA.lean | 1 | 67 | ['YaelDillies', 'ctchou', 'eric-wieser', 'github-actions', 'lambda-fairy', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'rudynicolop'] | YaelDillies | 2 | 5 days ago | 33 days ago | 59 days |
| 35654 | euprunin | chore: golf using `grind` | The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `CochainComplex.HomComplex.mem_coboundaries_iff`: unchanged 🎉 * `integral_cos_mul_complex`: unchanged 🎉 * `List.next_getLast_cons`: unchanged 🎉 * `foldl_argAux_mem`: unchanged 🎉 * `Equiv.Perm.support_swap`: unchanged 🎉 * `Fermat42.mul`: unchanged 🎉 * `Filter.high_scores`: 155 ms before, 108 ms after 🎉 * `IocProdIoc_preimage`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 11/65 | Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/MinMax.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/NumberTheory/FLT/Four.lean,Mathlib/Order/Filter/AtTopBot/Finite.lean,Mathlib/Probability/Kernel/IonescuTulcea/Maps.lean | 8 | 3 | ['euprunin', 'github-actions', 'vihdzp'] | kex-y | 1 | 5 days ago | 9 days ago | 9 days | |
| 34932 | erdOne | feat(AlgebraicGeometry): formally etale morphisms | --- [](https://gitpod.io/from-referrer/) | t-algebraic-geometry merge-conflict delegated | 163/12 | Mathlib.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Morphisms/FormallyEtale.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/RingTheory/RingHom/Etale.lean | 5 | 17 | ['chrisflav', 'erdOne', 'github-actions', 'joneugster', 'mathlib-bors', 'mathlib-merge-conflicts', 'ocfnash'] | nobody | 1 | 5 days ago | 7 days ago | 11 days |
| 35656 | euprunin | chore(ModelTheory): golf proofs | This PR removes unused `have`/`haveI`/`let`/`letI` calls. The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `FirstOrder.Field.realize_genericMonicPolyHasRoot`: unchanged 🎉 * `FirstOrder.Language.exists_cg_is_age_of`: unchanged 🎉 * `FirstOrder.Language.Theory.models_formula_iff_onTheory_models_equivSentence`: unchanged 🎉 * `FirstOrder.Language.Sentence.realize_cardGe`: unchanged 🎉 * `FirstOrder.Language.Ultraproduct.boundedFormula_realize_cast`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | t-logic | 3/16 | Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/Satisfiability.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Ultraproducts.lean | 5 | 6 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | nobody | 1 | 4 days ago | 8 days ago | 9 days |
| 35677 | euprunin | chore(SetTheory): golf proofs | This PR removes unused `have`/`haveI`/`let`/`letI` calls + some small similar cleanups. The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Cardinal.mul_eq_self`: unchanged 🎉 * `Cardinal.succ_natCast`: unchanged 🎉 * `Ordinal.exists_fundamental_sequence`: unchanged 🎉 * `Cardinal.mk_subtype_le_of_countable_eventually_mem`: unchanged 🎉 * `Nat.card_image_of_injOn`: unchanged 🎉 * `mul_le_of_limit_aux`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | t-set-theory | 2/11 | Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/CountableCover.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/ZFC/PSet.lean | 7 | 4 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | nobody | 1 | 4 days ago | 8 days ago | 8 days |
| 35446 | kbuzzard | perf: try lowering prio for A(0) instances, A a graded object | If Lean is looking for `Mul X` where `X` is coincidentally of the form `A 0` then the first thing it tries is `GradedMonoid.GradeZero.mul` which, if wrong, can take a long time to fail. In this PR I steer typeclass inference away from "A(0)-instances" by lowering their priority. Benchmarking is 100% green indicating that this decision is not hurting us. --- [](https://gitpod.io/from-referrer/) See [#mathlib4 > Typeclass Synthesis Regression @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Typeclass.20Synthesis.20Regression/near/564417997) I initiated a new discussion about this PR here [#mathlib4 > priority hacks @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/priority.20hacks/near/574353616) | t-algebra delegated | 14/13 | Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/GradedMonoid.lean | 2 | 11 | ['Vierkantor', 'eric-wieser', 'github-actions', 'kbuzzard', 'leanprover-radar', 'mathlib-bors'] | jcommelin | 1 | 4 days ago | 6 days ago | 7 days |
| 34583 | adomani | feat: basic properties of subnormal subgroups | This is a follow up to #34284.
Co-authored-by: Inna Capdeboscq |
large-import t-group-theory | 107/3 | Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/GroupTheory/IsSubnormal.lean | 3 | 38 | ['LLaurance', 'adomani', 'github-actions', 'tb65536'] | mattrobball | 1 | 4 days ago | 4 days ago | 20 days |
| 35423 | Rob23oba | feat: add congruence lemmas for `Function.update` and `Pi.single` | Adds `simp` congruence lemmas to `Function.update` and `Pi.single` that are specialized for the non-dependent case. See also [#mathlib4 > Simp fails to apply with `Function.update`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Simp.20fails.20to.20apply.20with.20.60Function.2Eupdate.60/with/573889929). --- [](https://gitpod.io/from-referrer/) | t-algebra | 29/6 | Mathlib/Algebra/Notation/Pi/Basic.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/NumberTheory/ModularForms/QExpansion.lean,Mathlib/RepresentationTheory/Tannaka.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean | 5 | 9 | ['Rob23oba', 'eric-wieser', 'github-actions', 'joneugster', 'loefflerd'] | thorimur | 1 | 4 days ago | 14 days ago | 15 days |
| 35649 | JovanGerb | feat(Order/GaloisConnection/Defs): use `to_dual` for `GaloisInsertion`/`GaloisCoinsertion` | This PR uses `to_dual` to generate declarations about `GaloisCoinsertion` from those for `GaloisInsertion`. - An entry is added to the name translation dictionary for this particular name translation. - One lemma in another file had to be tagged. - Some uses of `to_dual` have been replaced with `to_dual none`, because I had written them before `to_dual none` existed. --- [](https://gitpod.io/from-referrer/) | t-order | 35/78 | Mathlib/Order/GaloisConnection/Defs.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/Tactic/Translate/ToDual.lean | 3 | 2 | ['github-actions', 'vihdzp'] | nobody | 1 | 4 days ago | unknown | unknown |
| 35250 | vlad902 | feat(SimpleGraph): redefine `cycleGraph` independent of `circulantGraph` | Right now the `cycleGraph` definition relies on `circulantGraph` which requires importing Group definitions from the algebra hierarchy. This causes large-imports for me in later PRs where I try to make more widespread use of cycleGraphs, so here I redefine it to be its own independent object, and leave moving it from `Circulant.lean` to another PR (this is parallel to #35084.) --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 10/10 | Mathlib/Combinatorics/SimpleGraph/Circulant.lean | 1 | 4 | ['SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] | kmill | 2 | 4 days ago | 17 days ago | 18 days |
| 35592 | SnirBroshi | chore(Order/Defs/Unbundled): deprecate `def Transitive` in favor of `class IsTrans` | --- [`def Transitive`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Transitive) [`class IsTrans`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#IsTrans) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270) [](https://gitpod.io/from-referrer/) | t-order | 141/110 | Mathlib/Algebra/Group/Semiconj/Defs.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/List/MinMax.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/WSeq/Relation.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/Logic/Relation.lean,Mathlib/ModelTheory/Order.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/Quotient.lean,Mathlib/Order/RelClasses.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/Metrizable/Uniformity.lean | 20 | 1 | ['github-actions', 'vihdzp'] | pechersky | 1 | 4 days ago | 10 days ago | 11 days |
| 35840 | SnirBroshi | feat(SetTheory/Ordinal/Arithmetic): `typein (· < ·) = natCast` for `ℕ` and `Fin n` | Co-authored-by: Matt Diamond |
t-set-theory | 25/0 | Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean | 2 | 16 | ['SnirBroshi', 'github-actions', 'vihdzp'] | vihdzp | 1 | 3 days ago | 3 days ago | 4 days |
| 35716 | IvanRenison | feat(Combinatorics/SimpleGraph/Connectivity): add lemmas about reachable, degree and neighbor set | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 28/6 | Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean | 1 | 10 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] | nobody | 1 | 3 days ago | 3 days ago | 7 days |
| 34922 | vasnesterov | feat(Tactic/ComputeAsymptotics/Multiseries): Multiseries definition and structural lemmas | Define `Multiseries` and `MultiseriesExpansion` and restate some `Seq` API for `Multiseries`. --- This is a part of the `compute_asymptotics` tactic (#28291). [](https://gitpod.io/from-referrer/) | t-data t-meta awaiting-author | 399/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean | 3 | 10 | ['Vierkantor', 'github-actions', 'joneugster', 'mathlib-merge-conflicts'] | Vierkantor and joneugster | 1 | 3 days ago | 4 days ago | 21 days |
| 34440 | grunweg | feat: linter for name components in uppercase | Per the naming convention, these are errors (unless they are an abbreviation). Mathlib has *many* violations at the moment: for this reason, we add this as an environment linter and automatically add all current exceptions. Once these have been fixed, converting to a syntax linter is desirable. Until then, track the number of such exceptions as technical debt. --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/naming.20convention.20linter/with/570617527) Note to self: wait for CI, then do a final nolints update. and try to implement the follow-up soon [](https://gitpod.io/from-referrer/) | t-linter large-import awaiting-author merge-conflict | 1018/9 | Mathlib/Tactic/Linter/Style.lean,MathlibTest/DoubleUnderscore.lean,MathlibTest/HashLint.lean,MathlibTest/Lint.lean,MathlibTest/LintStyle.lean,scripts/nolints.json,scripts/technical-debt-metrics.sh | 7 | 27 | ['Vierkantor', 'github-actions', 'grunweg', 'joneugster', 'mathlib-merge-conflicts'] | joneugster | 1 | 3 days ago | 13 days ago | 13 days |
| 35072 | vasnesterov | feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for `Seq`: `FriendlyOperation` API | This is a continuation of #34311. This PR adds more API about friendly operations: * `FriendlyOperation.destruct`: a "coinductive destructor" for `FriendlyOperation` * `FriendlyOperation.coind`: a coinductive principle for proving that operation is friendly * `FriendlyOperationClass.eq_of_bisim`: a generalisation of `Seq.eq_of_bisim'` for proving two sequences are equal. --- This is a part of the `compute_asymptotics` tactic (#28291). [](https://gitpod.io/from-referrer/) | t-data t-meta awaiting-author | 299/0 | Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean | 1 | 27 | ['Vierkantor', 'github-actions', 'joneugster'] | joneugster | 1 | 3 days ago | 3 days ago | 13 days |
| 35774 | astrainfinita | chore: use `IsLUB` `IsGLB` in `ConditionallyCompleteLattice` | --- [](https://gitpod.io/from-referrer/) | t-order | 142/197 | Mathlib/Algebra/Tropical/Lattice.lean,Mathlib/Data/Int/ConditionallyCompleteOrder.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Copy.lean | 9 | 8 | ['astrainfinita', 'github-actions', 'vihdzp'] | nobody | 1 | 3 days ago | 3 days ago | 6 days |
| 34621 | homeowmorphism | feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ` | feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ`. Originally, the PR showed that `FreeGroup Empty ≃* Unit` and `FreeGroup α ≃* Multiplicative ℤ`. During the review process, I was asked to generalized `Unit` to any `Unique` type and `Empty` to `IsEmpty`. Through working on this, it has been realized that the pre-existing `FreeGroup Empty ≃ Unit` should be deprecated using `Equiv.ofUnique` and a multiplicative version `FreeGroup Empty ≃* Unit` can be obtained similarly using `MulEquiv.ofUnique` and there was no need to explicitly upgrade the equivalence. The title has been changed to reflect this. This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236. --- [](https://gitpod.io/from-referrer/) | t-group-theory new-contributor | 45/6 | Mathlib/GroupTheory/FreeGroup/Basic.lean | 1 | 39 | ['b-mehta', 'copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'kbuzzard', 'tb65536'] | riccardobrasca | 1 | 3 days ago | 15 days ago | 22 days |
| 35528 | euprunin | chore: golf using `grind` | The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <20 ms considered measurement noise): * `CochainComplex.HomComplex.mem_coboundaries_iff`: <20 ms before, 43 ms after * `Affine.Simplex.Scalene.dist_ne`: unchanged 🎉 * `List.next_getLast_cons`: unchanged 🎉 * `AbsolutelyContinuousOnInterval.biUnion_uIoc_subset_of_mem_disjWithin`: unchanged 🎉 * `Filter.high_scores`: 109 ms before, 139 ms after This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 9/55 | Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/Data/List/Cycle.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/Order/Filter/AtTopBot/Finite.lean | 6 | 1 | ['github-actions', 'vihdzp'] | adamtopaz | 1 | 3 days ago | 12 days ago | 12 days | |
| 35567 | goliath-klein | refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Golfs | This PR cleans up the proofs in Analysis/Normed/Module/PiTensorProduct/{InjectiveSeminorm.lean, ProjectiveSeminorm.lean} In addition, it performs the following minor structural changes: * Weaken assumptions from `NontriviallyNormedField 𝕜` to `NormedField 𝕜` where possible * The proofs showing that `projectiveSeminorm` actually defines a `Seminorm` are split off into separate lemmas. This mimics the idiom used e.g. in `Analysis.Normed.Modula.Operator.Basic` to define the operator norm. * Register a `Nonempty x.lifts` instance in PiTensorProduct.lean, to avoid creating a half-dozen local instances. This is the first 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). --- Co-authored-by: Davood H. T. Tehrani [](https://gitpod.io/from-referrer/) | maintainer-merge new-contributor | 101/158 | Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean | 3 | 10 | ['github-actions', 'goliath-klein', 'leanprover-radar', 'tb65536'] | sgouezel | 1 | 3 days ago | 11 days ago | 11 days |
| 35771 | euprunin | chore: golf using `exact` | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `IsBaseChange.comp`: 132 ms before, 98 ms after 🎉 * `Cardinal.powerlt_aleph0`: unchanged 🎉 * `ONote.fastGrowing_one`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 3/11 | Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Notation.lean | 3 | 1 | ['github-actions', 'vihdzp'] | EtienneC30 | 1 | 3 days ago | 6 days ago | 6 days | |
| 34875 | banrovegrie | feat(LinearAlgebra/Matrix): add Sherman-Morrison formula | Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap. - Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}` - Add `Matrix.inv_sub_vecMulVec`: subtraction variant - Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses ## Test plan - [x] `lake build` passes - [x] Lines within 100 char limit - [x] All declarations have docstrings | t-algebra new-contributor | 135/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean | 2 | 11 | ['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] | kim-em | 1 | 2 days ago | 24 days ago | 26 days |
| 35639 | vihdzp | chore(Order/SuccPred/Limit): use `to_dual` on everything that was missing | --- - [x] depends on: #34882 [](https://gitpod.io/from-referrer/) | maintainer-merge | 36/135 | Mathlib/Data/Fintype/Card.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/SuccPred/Limit.lean | 3 | 4 | ['JovanGerb', 'github-actions', 'mathlib-dependent-issues'] | adamtopaz | 1 | 2 days ago | 9 days ago | 9 days |
| 35772 | euprunin | chore: golf using `grind` | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `CategoryTheory.Precoverage.toGrothendieck_toCoverage`: unchanged 🎉 * `Int.nonneg_or_nonpos_of_mul_nonneg`: unchanged 🎉 * `Associated.separable`: 113 ms before, 67 ms after 🎉 * `ModelWithCorners.isInteriorPoint_disjointUnion_left`: unchanged 🎉 * `ModelWithCorners.isInteriorPoint_disjointUnion_right`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 5/49 | Mathlib/CategoryTheory/Sites/Coverage.lean,Mathlib/Data/Int/Order/Basic.lean,Mathlib/FieldTheory/Separable.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean | 4 | 1 | ['github-actions', 'vihdzp'] | nobody | 1 | 2 days ago | 6 days ago | 6 days | |
| 31891 | jsm28 | feat(Geometry/Euclidean/Sphere/OrthRadius): lemmas for setting up and using polars | Add further lemmas about `orthRadius` that are of use in setting up and using poles and polars. In particular, `ncard_inter_orthRadius_eq_two_of_dist_lt_radius` is the key part of showing that, in two dimensions, there are exactly two tangents to a circle from a point outside that circle (where the points of tangency lie on the polar of the point from which the two tangents are drawn). --- Feel free to golf the proof of `ncard_inter_orthRadius_eq_two_of_dist_lt_radius`, it could probably be rather shorter. --- - [ ] depends on: #32296 [](https://gitpod.io/from-referrer/) | t-euclidean-geometry | 265/7 | Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean | 2 | 28 | ['Parcly-Taxel', 'eric-wieser', 'github-actions', 'jsm28', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | JovanGerb | 1 | 2 days ago | 13 days ago | 101 days |
| 32987 | kim-em | feat: pipeline downloads and decompression in `cache get` | This PR modifies `lake exe cache get` to decompress files as they download, rather than waiting for all downloads to complete first. Previously the cache system had two sequential phases: download all files using `curl --parallel`, then decompress all files using a single `leantar` call. Now a background task spawns sequential batched `leantar` calls to decompress files as downloads complete, pipelining network I/O and disk I/O. 🤖 Prepared with Claude Code - [x] depends on: #34667 | t-meta maintainer-merge | 190/35 | Cache/IO.lean,Cache/Requests.lean | 2 | 65 | ['Vierkantor', 'eric-wieser', 'github-actions', 'joneugster', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | joneugster | 2 | 1 day ago | 2 days ago | 60 days |
| 35947 | euprunin | chore: replace `aesop` with `grind` where the latter is significantly faster | This experiment investigates the impact of replacing particularly heavy `aesop` calls with `grind`, specifically how this change affects the instruction count as measured by the benchmarking infrastructure. Trace profiling results (differences <30 ms considered measurement noise): * `Submonoid.mem_closure_image_one_lt_iff`: 125 ms before, 61 ms after 🎉 * `SimpleGraph.Connected.connected_delete_edge_of_not_isBridge`: 230 ms before, 51 ms after 🎉 * `SimpleGraph.Subgraph.IsMatching.exists_of_disjoint_sets_of_equiv`: 899 ms before, 666 ms after 🎉 * `SimpleGraph.IsCycles.existsUnique_ne_adj`: 855 ms before, 599 ms after 🎉 * `SimpleGraph.Walk.IsPath.isCycles_spanningCoe_toSubgraph_sup_edge`: 962 ms before, 619 ms after 🎉 * `SimpleGraph.IsAlternating.sup_edge`: 2854 ms before, 1615 ms after 🎉 * `SimpleGraph.Subgraph.IsPerfectMatching.symmDiff_of_isAlternating`: 3103 ms before, 1734 ms after 🎉 * `SimpleGraph.edgeSet_replaceVertex_of_not_adj`: 1525 ms before, 933 ms after 🎉 * `SimpleGraph.edgeSet_replaceVertex_of_adj`: 2194 ms before, 1605 ms after 🎉 * `SimpleGraph.tutte_exists_isPerfectMatching_of_near_matchings`: 3161 ms before, 1652 ms after 🎉 * `RootPairing.Base.sub_notMem_range_root`: 1025 ms before, 978 ms after 🎉 * `RootPairing.EmbeddedG2.mem_allRoots`: 3832 ms before, 3255 ms after 🎉 * `RootSystem.GeckConstruction.Lemmas.0.RootPairing.chainBotCoeff_mul_chainTopCoeff.aux_2`: 3572 ms before, 2631 ms after 🎉 * `isCompact_generateFrom`: 1987 ms before, 763 ms after 🎉 * `IsCompactOpenCovered.of_isCompact_of_forall_exists_isCompactOpenCovered`: 2279 ms before, 2009 ms after 🎉 * `UniformContinuousOn.comp_tendstoUniformly_eventually`: 416 ms before, 151 ms after 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 27/27 | Mathlib/Algebra/Group/Irreducible/Indecomposable.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/LinearAlgebra/RootSystem/Base.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Sets/CompactOpenCovered.lean,Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean | 11 | 4 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | nobody | 1 | 1 day ago | 2 days ago | 2 days | |
| 35850 | vihdzp | refactor: nicer definition for ordinal logarithm | By leveraging the API on `Order.IsNormal`, we can define the ordinal logarithm in a way that more immediately proves the characterizing Galois connection. Note that this removes `Ordinal.log_def` and `Ordinal.succ_log_def` without deprecation - these are auxiliary results that should have been private and are tedious to re-prove. --- - [x] depends on: #35849 [](https://gitpod.io/from-referrer/) | t-set-theory maintainer-merge | 40/69 | Mathlib/SetTheory/Ordinal/Exponential.lean | 1 | 8 | ['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'vihdzp'] | nobody | 1 | 1 day ago | 1 day ago | 2 days |
| 35637 | vihdzp | chore(Topology/Order/LeftRight): use `to_dual` | This overlaps with #35635, but the overlap is small (and that PR still needs some work, so I'd rather get this out of the way first). --- [](https://gitpod.io/from-referrer/) | maintainer-merge | 32/26 | Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Tactic/Translate/ToDual.lean,Mathlib/Topology/Order/LeftRight.lean | 3 | 8 | ['JovanGerb', 'github-actions', 'vihdzp'] | jcommelin | 1 | 1 day ago | 1 day ago | 9 days |
| 34624 | homeowmorphism | feat(GroupTheory/FreeGroup/Basic): surjection between types induces surjection between free groups on those types | feat(GroupTheory/FreeGroup/Basic): adds the theorem that if `α` and `β` are arbitrary types and there is a surjection between them, then the induced FreeGroup.map is also surjective. This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236. --- [](https://gitpod.io/from-referrer/) | t-group-theory new-contributor | 14/3 | Mathlib/GroupTheory/FreeGroup/Basic.lean | 1 | 24 | ['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'mathlib-merge-conflicts', 'tb65536', 'vlad902'] | riccardobrasca | 1 | 1 day ago | 15 days ago | 25 days |
| 33129 | Paul-Lez | feat(Tactic/Simproc/VecPerm): add simproc for permuting entries of a vector | --- [](https://gitpod.io/from-referrer/) | t-meta | 160/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/VecPerm.lean,MathlibTest/Simproc/VecPerm.lean | 4 | 83 | ['JovanGerb', 'Paul-Lez', 'b-mehta', 'eric-wieser', 'github-actions', 'ocfnash'] | JovanGerb | 1 | 1 day ago | 1 day ago | 53 days |
| 32989 | kim-em | fix(Tactic/Simps): skip @[defeq] inference for non-exposed definitions | This PR makes `@[simps]` check whether the source definition's body is exposed before calling `inferDefEqAttr`. When the body is not exposed, we skip the `@[defeq]` inference to avoid validation errors. Without this fix, using `@[simps]` on a definition that is not `@[expose]`d produces an error like: ``` Theorem Foo_bar has a `rfl`-proof and was thus inferred to be `@[defeq]`, but validating that attribute failed: Not a definitional equality: the left-hand side ... is not definitionally equal to the right-hand side ... Note: This theorem is exported from the current module. This requires that all definitions that need to be unfolded to prove this theorem must be exposed. ``` The fix checks `(← getEnv).setExporting true |>.find? cfg.srcDeclName |>.any (·.hasValue)` to determine if the definition body is visible in the public scope, and only calls `inferDefEqAttr` if it is. 🤖 Prepared with Claude Code | t-meta awaiting-author merge-conflict | 51/3 | Mathlib/CategoryTheory/Galois/EssSurj.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean,Mathlib/Tactic/Simps/Basic.lean,MathlibTest/SimpsModule.lean | 4 | 16 | ['JovanGerb', 'Vierkantor', 'github-actions', 'joneugster', 'kim-em', 'mathlib-merge-conflicts'] | joneugster | 1 | 1 day ago | 39 days ago | 37 days |
| 29909 | Vierkantor | feat(CI): add build output to CI workflows | This PR uses the Zulip build report script (originally developed for the nightly-regression-report workflow) to add a summary of build output to other Zulip posts about workflow results. This allows us to more easily see the origin of a failure. This requires redoing the script a little to make it a bit more flexible, and the output is slightly reformatted to become consistent across the various workflows (4 of them that post to Zulip). We don't do so for the nightly-testing failures, since those run in a different workflow, and it would be a lot of work to access the command output from another workflow. --- [](https://gitpod.io/from-referrer/) | CI delegated merge-conflict | 55/35 | .github/workflows/nightly-docgen.yml,.github/workflows/nightly-regression-report.yml,scripts/zulip_build_report.sh | 3 | 11 | ['Vierkantor', 'adomani', 'github-actions', 'joneugster', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | joneugster | 1 | 1 day ago | 4 days ago | 48 days |
| 34204 | loefflerd | feat(LinearAlgebra/QuadraticForm): Sylvester's law of inertia | Prove the uniqueness part of Sylvester's law of inertia (we already have the existence part, but the uniqueness is a long-standing TODO). This PR is based on work carried out by Sina Keller, Philipp Schumann, and Nicolas Trutmann in the course of their studies at ETH Zürich. --- - [x] depends on: #34110 - [x] depends on: #34309 - [x] depends on: #34493 | t-algebra | 265/0 | Mathlib.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/QuadraticForm/Signature.lean | 3 | 38 | ['AntoineChambert-Loir', 'github-actions', 'joelriou', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp'] | joelriou | 1 | 1 day ago | 1 day ago | 7 days |
| 35113 | bryangingechen | ci: refactor commit_verification so it works on PRs from forks | Currently the commit verification workflow fails when run on a PR from a fork because it tries to post a comment, but its GITHUB_TOKEN is read-only. [Example failure](https://github.com/leanprover-community/mathlib4/actions/runs/21796757425/job/62885536927?pr=34973) This PR refactors the commit verification workflow using the new [leanprover-community/privilege-escalation-bridge](https://github.com/leanprover-community/privilege-escalation-bridge), splitting it into two workflows where the second one (triggered by `workflow_run` has access to a GITHUB_TOKEN that can post comments). We also make the workflow run the commit verification scripts from `master` rather than the PR branch to close a small security issue where someone could spoof verification / get the workflow to post arbitrary comments by modifying the scripts in their branch. Prepared with codex. --- [](https://gitpod.io/from-referrer/) | CI awaiting-author merge-conflict | 97/24 | .github/workflows/commit_verification.yml,.github/workflows/commit_verification_wf_run.yml | 2 | 26 | ['bryangingechen', 'github-actions', 'joneugster', 'marcelolynch', 'mathlib-merge-conflicts'] | joneugster | 1 | 1 day ago | unknown | unknown |
| 35513 | vihdzp | refactor: redefine `Order.cof` for a preorder | ... instead of using an unbundled relation. This makes it easier to work with, and avoids some `swap rᶜ` incantations. There are still a bunch of lemmas that make use of unbundled order relations; these will get fixed in follow-up PRs. --- - [x] depends on: #35517 - [x] depends on: #35519 [](https://gitpod.io/from-referrer/) | t-set-theory t-order maintainer-merge | 220/241 | Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/Order/Cofinal.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean | 3 | 9 | ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | b-mehta | 1 | 1 day ago | 4 days ago | 7 days |
| 35328 | astrainfinita | chore: use `IsLUB` `IsGLB` in `CompleteLattice` | --- - [ ] depends on: #35297 [](https://gitpod.io/from-referrer/) | t-order | 322/415 | Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/CategoryTheory/Subfunctor/Basic.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Set/BooleanAlgebra.lean,Mathlib/Geometry/Convex/Cone/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/Bounds/Image.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/CompleteBooleanAlgebra.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/CompleteLattice/Lemmas.lean,Mathlib/Order/CompleteLattice/PiLex.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/Concept.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/Copy.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Hom/Order.lean,Mathlib/Order/Interval/Basic.lean,Mathlib/Order/Nucleus.lean,Mathlib/Order/ScottContinuity/Prod.lean,Mathlib/Order/SupClosed.lean,Mathlib/Probability/Process/Filtration.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/Topology/Algebra/Group/GroupTopology.lean,Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean,Mathlib/Topology/Algebra/Ring/Basic.lean,Mathlib/Topology/UniformSpace/Basic.lean | 39 | 20 | ['astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | Vierkantor | 1 | 1 day ago | 6 days ago | 8 days |
| 35775 | IvanRenison | feat(Data/List): add theorem `length_eq_two'` | --- [](https://gitpod.io/from-referrer/) | t-data | 3/0 | Mathlib/Data/List/Basic.lean | 1 | 2 | ['IvanRenison', 'github-actions', 'vihdzp'] | Vierkantor | 1 | 1 day ago | 6 days ago | 6 days |
| 35433 | morrison-daniel | feat(LinearAlgebra/ExteriorAlgebra/Basic): adds multiplication lemmas for `ExteriorAlgebra` | This adds lemmas for dealing with multiplication of elements in the `ExteriorAlgebra`: * `ιMulti_eq_zero_of_not_inj` : a product containing duplicates is zero * `ιMulti_mul_ιMulti` : `ιMulti R m a * ιMulti R n b = ιMulti R (m+n) (Fin.append a b)` * `ιMulti_family_mul_of_not_disjoint` : if two sets of elements are not disjoint their product is zero * `ιMulti_perm` : the permutation corresponding to adjoining two sets of elements and sorting the result * `ιMulti_family_mul_of_disjoint` : the product of two elements of the form `ιMulti_family` is of the form `ιMulti_family` up to sign --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 89/0 | Mathlib/Data/Finset/Basic.lean,Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean,Mathlib/Order/Hom/PowersetCard.lean | 3 | 10 | ['github-actions', 'mathlib-bors', 'morrison-daniel', 'ocfnash'] | ocfnash | 1 | 1 day ago | 1 day ago | 2 days |
| 33650 | vihdzp | refactor: deprecate bespoke `Hyperreal` machinery | Currently, these six definitions are in the `Hyperreal` namespace: - `IsSt x r`: a predicate for `r` being a standard part of `x` - `st x`: the standard part of `x` - `Infinitesimal x`: predicate for infinitesimal elements - `InfinitePos x`: predicate for infinite and positive elements - `InfiniteNeg x`: predicate for infinite and negative elements - `Infinite x`: predicate for infinite (positive or negative) elements. We deprecate all six of these and all of their API, in favor of reasoning with [`ArchimedeanClass`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Archimedean/Class.html#ArchimedeanClass) and [`ArchimedeanClass.stdPart`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/StandardPart.html#ArchimedeanClass.stdPart). The replacements are as follows: - `IsSt x r`: `0 ≤ ArchimedeanClass.mk x ∧ stdPart x = r` - `st x`: `stdPart x` - `Infinitesimal x`: `0 < ArchimedeanClass.mk x` - `InfinitePos x`: `0 < x ∧ ArchimedeanClass.mk x < 0` - `InfiniteNeg x`: `x < 0 ∧ ArchimedeanClass.mk x < 0` - `Infinite x`: `ArchimedeanClass.mk x < 0` All of these equivalences are proved within the PR, though these new theorems have also been insta-deprecated. Most of the existing API on these predicates was largely uninteresting boilerplate, and has been deprecated without replacement. For the few results of mathematical interest (those whose proofs are longer than a few lines), I've golfed their proofs as a stress test to ensure that this new API is capable of easily proving them. I've kept everything in the same file to minimize the diff. A future PR will move the obsolete material to `Deprecated.Hyperreal`. --- - [x] depends on: #33644 [](https://gitpod.io/from-referrer/) | t-algebra ready-to-merge | 387/96 | Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Analysis/Real/Hyperreal.lean | 2 | 16 | ['github-actions', 'j-loreaux', 'jcommelin', 'mathlib-bors', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'ocfnash', 'vihdzp', 'wwylele'] | jcommelin | 1 | 23 hours ago | 1 day ago | 25 days |
| 33355 | 0xTerencePrime | feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity | This PR introduces the foundations of vertex connectivity for simple graphs, providing a counterpart to the edge connectivity theory in #32870. ### Main definitions - `SimpleGraph.IsVertexReachable`: vertices remain reachable after removing strictly fewer than `k` other vertices. - `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if its order is strictly greater than `k` and any two distinct vertices are `k`-vertex-reachable. Includes basic characterizations for $k=0$ and $k=1$, along with monotonicity lemmas (`anti` and `mono`). | new-contributor t-combinatorics | 198/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/IsolateVerts.lean | 3 | 132 | ['0xTerencePrime', 'SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp'] | YaelDillies | 1 | 21 hours ago | 21 hours ago | 26 days |
| 35933 | urkud | chore(WellFounded): drop unneeded `Set.Nonempty` assumptions | ... in theorems that also assume that a specific element belongs to the set. --- [](https://gitpod.io/from-referrer/) | 60/56 | Archive/Imo/Imo1988Q6.lean,Counterexamples/AharoniKorman.lean,Mathlib/Combinatorics/Quiver/Arborescence.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/FieldTheory/SeparableClosure.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Cover.lean,Mathlib/Order/InitialSeg.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/SuccPred/Basic.lean,Mathlib/Order/WellFounded.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/RingTheory/MvPowerSeries/LexOrder.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/Topology/EMetricSpace/Paracompact.lean | 22 | 4 | ['github-actions', 'urkud', 'vihdzp'] | nobody | 1 | 19 hours ago | 2 days ago | 2 days | |
| 26975 | Whysoserioushah | feat: a norm_num extension for complex numbers | co-authored-by : @thefundamentaltheor3m, @hrmacbeth --- [](https://gitpod.io/from-referrer/) | t-meta | 424/12 | Mathlib.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/NormNum/Eq.lean,Mathlib/Tactic/NormNum/NormNumI.lean,Mathlib/Tactic/NormNum/Result.lean,MathlibTest/norm_numI.lean | 7 | 55 | ['JovanGerb', 'Whysoserioushah', 'dupuisf', 'eric-wieser', 'github-actions', 'grunweg', 'hrmacbeth', 'mathlib4-merge-conflict-bot'] | nobody | 1 | 16 hours ago | 16 hours ago | 111 days |
| 35847 | euprunin | chore: golf proofs | This PR removes unused `have`/`haveI`/`let`/`letI` calls. The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `GenContFract.compExactValue_correctness_of_stream_eq_some`: unchanged 🎉 * `Finset.disjoint_range_addLeftEmbedding`: unchanged 🎉 * `CategoryTheory.ComposableArrows.IsComplex.epi_cokerToKer'`: unchanged 🎉 * `CategoryTheory.ComposableArrows.IsComplex.mono_cokerToKer'`: unchanged 🎉 * `ComplexShape.QFactorsThroughHomotopy_of_exists_prev`: unchanged 🎉 * `AlgebraicGeometry.IsAffineOpen.primeIdealOf_genericPoint`: unchanged 🎉 * `AlgebraicGeometry.functionField_isFractionRing_of_isAffineOpen`: unchanged 🎉 * `AlgebraicGeometry.smooth_of_grpObj_of_isAlgClosed`: 266 ms before, 232 ms after 🎉 * `AlgebraicGeometry.Scheme.ker_morphismRestrict_ideal`: 570 ms before, 538 ms after 🎉 * `AlgebraicGeometry.Scheme.IdealSheafData.isLocalization_away`: unchanged 🎉 * `AlgebraicGeometry.affineAnd_isLocal`: unchanged 🎉 * `AlgebraicGeometry.IsZariskiLocalAtTarget.of_iSup_eq_top`: unchanged 🎉 * `AlgebraicGeometry.HasAffineProperty.iff_of_isAffine`: unchanged 🎉 * `AlgebraicGeometry.isDominant_of_of_appTop_injective`: unchanged 🎉 * `AlgebraicGeometry.IsPreimmersion.SpecMap_iff`: unchanged 🎉 * `AlgebraicGeometry.quasiCompact_affineProperty_iff_quasiSeparatedSpace`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | ready-to-merge | 0/23 | Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/Homology/ExactSequenceFour.lean,Mathlib/Algebra/Homology/Localization.lean,Mathlib/AlgebraicGeometry/FunctionField.lean,Mathlib/AlgebraicGeometry/Group/Smooth.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean,Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean | 12 | 10 | ['JovanGerb', 'euprunin', 'github-actions', 'leanprover-radar', 'mathlib-bors', 'riccardobrasca', 'vihdzp'] | JovanGerb | 1 | 14 hours ago | 4 days ago | 4 days |
| 35048 | b-mehta | feat(Analysis/Normed/Operator): prove the Fredholm alternative | This PR proves the Fredholm alternative for compact operators on a Banach space over a nontrivially normed field - [x] depends on: #35001 - [x] depends on: #35052 - [x] depends on: #35226 | t-analysis | 229/0 | Mathlib.lean,Mathlib/Analysis/Normed/Operator/FredholmAlternative.lean | 2 | 12 | ['b-mehta', 'github-actions', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536'] | nobody | 1 | 14 hours ago | 18 hours ago | 4 days |
| 29996 | vihdzp | chore(Order/Concept): `IsIntent` and `IsExtent` | We define predicates for a set to be an intent/extent, and use them to define alternate constructors for a concept. Using these, we golf the complete lattice instances. The fields `Concept.intent` and `Concept.extent` already existed, and these serve as unbundled versions of them. --- - [x] depends on: #30484 [](https://gitpod.io/from-referrer/) | t-order maintainer-merge | 161/113 | Mathlib/Order/Concept.lean | 1 | 51 | ['Vierkantor', 'YaelDillies', 'github-actions', 'linesthatinterlace', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | YaelDillies | 1 | 13 hours ago | 19 hours ago | 31 days |
| 30989 | kckennylau | feat(RingTheory): Teichmuller map | Let `R` be an `I`-adically complete ring, and `p` be a prime number with `p ∈ I`. This PR constructs the Teichmüller map `Perfection (R ⧸ I) p →*₀ R` such that it composed with the quotient map `R →+* R ⧸ I` is the "0-th coefficient" map `Perfection (R ⧸ I) p →+* R ⧸ I`. This generalises the existing [PreTilt.untilt](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Perfectoid/Untilt.html#PreTilt.untilt). I have also moved `Mathlib/LinearAlgebra/SModEq` to a folder to be `/SModEq/Basic.lean`, because I needed to add some lemmas to `/SModEq/Prime.lean`; I also added a lemma to the end of `/Basic.lean` called `ideal`. --- In order to try to artificially minimise the diff count, I have made #30990 which only moves the file `SModEq`. - [x] depends on: #30990 - [x] depends on: #31193 - [x] depends on: #31195 [](https://gitpod.io/from-referrer/) | t-ring-theory delegated | 242/113 | Mathlib.lean,Mathlib/LinearAlgebra/SModEq/Basic.lean,Mathlib/LinearAlgebra/SModEq/Pow.lean,Mathlib/RingTheory/Perfectoid/Untilt.lean,Mathlib/RingTheory/Teichmuller.lean | 5 | 64 | ['erdOne', 'github-actions', 'jjdishere', 'kbuzzard', 'kckennylau', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky', 'riccardobrasca'] | nobody | 2 | 12 hours ago | 1 day ago | 6 days |
| 34777 | sqrt-of-2 | feat(Combinatorics/SetFamily/Intersecting): L-intersecting families | Define L-intersecting families and establish their basic properties. A family 𝒜 of finsets is L-intersecting if all pairwise intersection sizes of distinct members of 𝒜 belong to L ⊆ ℕ. From LeanCamCombi. --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor ready-to-merge | 57/2 | Mathlib/Combinatorics/SetFamily/Intersecting.lean | 1 | 20 | ['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-bors', 'sqrt-of-2'] | b-mehta | 2 | 11 hours ago | 15 hours ago | 20 days |
| 35331 | SnirBroshi | feat(SimpleGraph/Subgraph): small things about `spanningCoe` and a small golf | --- Three unrelated things in the same file, each too small to be its own PR. [](https://gitpod.io/from-referrer/) | t-combinatorics maintainer-merge | 13/4 | Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 1 | 3 | ['YaelDillies', 'github-actions'] | YaelDillies | 1 | 9 hours ago | 9 hours ago | 16 days |
| 34528 | Maldooor | feat: Reproducing Kernel Hilbert Spaces and Moore's theorem | We define vector-valued reproducing Kernel Hilbert spaces, which are Hilbert spaces of
functions, as well as characterize these spaces in terms of infinite-dimensional
positive semidefinite matrices.
Co-authored-by: Yaël Dillies |
t-analysis maintainer-merge | 325/5 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Continuous.lean,Mathlib/Analysis/InnerProductSpace/Reproducing.lean,docs/references.bib | 4 | 12 | ['YaelDillies', 'faenuccio', 'github-actions'] | j-loreaux | 1 | 9 hours ago | 9 hours ago | 6 days |
| 33942 | artie2000 | feat(Algebra/Group/Submonoid): submonoid support | * Define support of submonoid (biggest subgroup it contains) * Define "pointed" (zero-support) and "spanning" (generates as a subgroup) submonoids --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author merge-conflict | 146/0 | Mathlib.lean,Mathlib/Algebra/Group/Submonoid/Support.lean,Mathlib/Tactic/Translate/ToAdditive.lean | 3 | 29 | ['artie2000', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'ooovi', 'plp127', 'vihdzp'] | jcommelin | 1 | 7 hours ago | 40 days ago | 1 day |
| 35215 | kim-em | chore: use @[to_dual] in FixedPoints | This PR adds `@[to_dual]` annotations to 14 theorems about `lfp` in `Order/FixedPoints.lean`, auto-generating their `gfp` duals and deleting the hand-written versions. Also registers `OrderHom.lfp` as the dual of `OrderHom.gfp` via `attribute [to_dual existing]`. Auto-generated duals include: `le_gfp`, `gfp_le_fixed`, `gfp_le`, `gfp_le_map`, `map_gfp`, `isFixedPt_gfp`, `map_le_gfp`, `isGreatest_gfp_le`, `isGreatest_gfp`, `gfp_induction`, `map_gfp_comp`, `gfp_gfp`, `map_inf_fixedPoints_le`, `map_sInf_subset_fixedPoints_le`. [Diff relative to #35208](https://github.com/kim-em/mathlib4/compare/kim/to-dual-bounds-basic...kim/to-dual-fixed-points) - [x] depends on: #35208 🤖 Prepared with Claude Code | 249/548 | Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Interval/Set/Disjoint.lean,Mathlib/Topology/Order.lean | 8 | 9 | ['JovanGerb', 'github-actions', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | nobody | 1 | 5 hours ago | 4 hours ago | 7 days | |
| 35518 | kim-em | chore: forbid prime (') in filenames, rename LinearCombination' | This PR renames `Mathlib/Tactic/LinearCombination'.lean` to `LinearCombinationPrime.lean` (and the corresponding test file), and adds a lint check to `modulesOSForbidden` to prevent future files with prime/apostrophe characters in their names. The `'` character in filenames causes shell escaping issues in scripts (any `find ... -name '*.lean'` or similar pattern needs careful quoting to handle these files correctly). 🤖 Prepared with Claude Code | file-removed | 13/8 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LinearCombinationPrime.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,MathlibTest/linear_combination_prime.lean | 6 | 6 | ['eric-wieser', 'euprunin', 'github-actions', 'kim-em'] | MichaelStollBayreuth | 1 | 5 hours ago | 10 days ago | 10 days |
| 35673 | Parcly-Taxel | feat: radical lemmas for natural numbers and integers | Add lemmas relating to the radical on `Nat` and `Int` in `RingTheory.Radical.NatInt`. The existing file is moved to `RingTheory.Radical.Basic`, whose module docstring is updated. These are needed as part of a project I'm doing for my PhD under Frank Stephan. * depends on: #36098 | file-removed t-ring-theory | 162/88 | Mathlib.lean,Mathlib/RingTheory/Polynomial/Radical.lean,Mathlib/RingTheory/Radical/Basic.lean,Mathlib/RingTheory/Radical/NatInt.lean | 4 | 25 | ['Parcly-Taxel', 'github-actions', 'mathlib-merge-conflicts', 'riccardobrasca', 'vihdzp'] | riccardobrasca | 1 | 4 hours ago | 1 day ago | 7 days |
| 35627 | SnirBroshi | feat(Combinatorics/SimpleGraph/Finite): min/max degrees of top/bot | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 28/1 | Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean | 2 | 6 | ['SnirBroshi', 'github-actions', 'vlad902'] | nobody | 1 | 13 minutes ago | 8 minutes ago | 10 days |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 14720 | eric-wieser | refactor: change `CliffordAlgebra.lift` to use quadratic maps | This works towards addressing a footnote on [page 152](https://eric-wieser.github.io/thesis/eric-wieser-thesis.pdf#page=164) of my thesis. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 200/167 | Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean,Mathlib/LinearAlgebra/QuadraticForm/Complex.lean,Mathlib/LinearAlgebra/QuadraticForm/Dual.lean,Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean,Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean,Mathlib/LinearAlgebra/QuadraticForm/Prod.lean,Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean,Mathlib/LinearAlgebra/QuadraticForm/Real.lean,Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean | 11 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 14889 | yuma-mizuno | feat(CategoryTheory/Bicategory/Monad): define monad in bicategory | --- - [ ] depends on: #12107 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR t-category-theory | 1566/12 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean,Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean,Mathlib/CategoryTheory/Bicategory/Monad/Adjunction.lean,Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean,Mathlib/CategoryTheory/Bicategory/Monad/Cat.lean,Mathlib/CategoryTheory/Monad/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Coherence.lean,Mathlib/Tactic/Widget/StringDiagram.lean,scripts/noshake.json,test/StringDiagram.lean,widget/src/penrose/monoidal.dsl,widget/src/penrose/monoidal.sty | 14 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 13847 | alreadydone | feat(EllipticCurve): the universal elliptic curve | + Define the universal Weierstrass curve (`Universal.curve`) over the polynomial ring `ℤ[A₁,A₂,A₃,A₄,A₆]`, and the universal pointed elliptic curve (`Universal.pointedCurve`) over the field of fractions (`Universal.Field`) of the universal ring `ℤ[A₁,A₂,A₃,A₄,A₆,X,Y]/⟨P⟩ = Universal.Poly/⟨P⟩` (`Universal.Ring`, where `P` is the Weierstrass polynomial) with distinguished point `(X,Y)`. + Given a Weierstrass curve `W` over a commutative ring `R`, we define the specialization homomorphism `W.specialize : ℤ[A₁,A₂,A₃,A₄,A₆] →+* R`. If `(x,y)` is a point on the affine plane, we define `W.polyEval x y : Universal.Poly →+* R`, which factors through `W.ringEval x y : Universal.Ring →+* R` if `(x,y)` is on `W`. + Introduce the cusp curve `Y² = X³`, on which lies the rational point `(1,1)`, with the nice property that `ψₙ(1,1) = n`, making it easy to prove nonvanishing of the universal `ψₙ` when `n ≠ 0` by specializing to the cusp curve, which shows that `(X,Y)` is a point of infinite order on the universal pointed elliptic curve. --- - [x] depends on: #13845 - [x] depends on: #12883 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra t-algebraic-geometry | 543/208 | Mathlib.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Universal.lean | 6 | 4 | ['Multramate', 'alreadydone', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 14036 | adomani | Test/decl diff in lean | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 465/1040 | .github/workflows/Lean_decl_diff.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,.github/workflows/mk_build_yml.sh,scripts/decls_diff_hybrid.sh,scripts/list_decls.lean | 8 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 14167 | alreadydone | feat: Group scheme structure on Weierstrass curve | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebraic-geometry workshop-AIM-AG-2024 | 727/41 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Scheme.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Universal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/GroupTheory/MonoidLocalization.lean,Mathlib/LinearAlgebra/Basis.lean,Mathlib/LinearAlgebra/FreeModule/Basic.lean,Mathlib/RingTheory/AlgebraTower.lean,Mathlib/RingTheory/MvPolynomial/Basic.lean | 12 | 3 | ['Multramate', 'github-actions', 'jcommelin'] | nobody | 1 year ago | unknown | unknown |
| 12952 | adomani | test: length statistics | --- [](https://gitpod.io/from-referrer/) | WIP test-ci | 124/0 | .github/workflows/mathlib_stats.yml,.github/workflows/ml_stats_label.yaml,scripts/mathlib_stats.sh | 3 | 9 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 13297 | urkud | feat(Semicontinuous): add `comp` lemma | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology t-order | 31/13 | Mathlib/Topology/Semicontinuous.lean | 1 | 3 | ['sgouezel', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 13372 | adomani | dev: generic replacement | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 446/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/ReplaceRefine.lean,Mathlib/Tactic/Replacements.lean | 4 | 4 | ['adomani', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 13512 | adomani | test: count all | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 85/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/Tally.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 12416 | adomani | chore: remove some cdots | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 3830/3239 | Archive/Imo/Imo1972Q5.lean,Archive/Imo/Imo2006Q5.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2021Q1.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Archive/Wiedijk100Theorems/BirthdayProblem.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/Partition.lean,Counterexamples/Cyclotomic105.lean,Counterexamples/DirectSumIsInternal.lean,Mathlib.lean,Mathlib/Algebra/Algebra/Spectrum.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/BigOperators/List/Basic.lean,Mathlib/Algebra/Category/GroupCat/Colimits.lean,Mathlib/Algebra/Category/ModuleCat/Images.lean,Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/Algebra/CharP/Quotient.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/DirectLimit.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/GeomSum.lean,Mathlib/Algebra/Group/UniqueProds.lean,Mathlib/Algebra/GroupPower/Order.lean,Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/Algebra/Homology/Exact.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean,Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean,Mathlib/Algebra/Homology/LocalCohomology.lean,Mathlib/Algebra/Homology/TotalComplex.lean,Mathlib/Algebra/Lie/DirectSum.lean,Mathlib/Algebra/Lie/IdealOperations.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Lie/Weights/Basic.lean,Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Algebra/Module/LocalizedModule.lean,Mathlib/Algebra/Module/PID.lean,Mathlib/Algebra/Module/Submodule/Bilinear.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/Module/Zlattice/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/MonoidAlgebra/Ideal.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Order/Archimedean.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Group/Abs.lean,Mathlib/Algebra/Order/Group/Int.lean,Mathlib/Algebra/Order/Group/MinMax.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Pointwise.lean,Mathlib/Algebra/Order/Sub/Defs.lean,Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Polynomial/PartialFractions.lean,Mathlib/Algebra/Polynomial/Reverse.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/UnitTrinomial.lean,Mathlib/Algebra/Quandle.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/AlgebraicGeometry/AffineScheme.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean,Mathlib/AlgebraicGeometry/FunctionField.lean,Mathlib/AlgebraicGeometry/Gluing.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/AlgebraicGeometry/Pullbacks.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/AlgebraicTopology/SimplexCategory.lean,Mathlib/AlgebraicTopology/SplitSimplicialObject.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Extend.lean,Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean,Mathlib/Analysis/Calculus/LocalExtr/Basic.lean,Mathlib/Analysis/Calculus/ParametricIntegral.lean,Mathlib/Analysis/Calculus/TangentCone.lean | 608 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 12465 | rosborn | style: Change Subtype.val to (↑) | --- This is a test to see replacing `Subtype.val` with `(↑)` where appropriate. After performing the rewrite, some of the types subtly changed in a difficult to detect manner. Before the change, `openEmbedding' _` had type `OpenEmbedding Subtype.val` where `Subtype.val` expanded as `@Subtype.val α fun x ↦ x ∈ U : ↥U → α`. After the change, `Subtype.val` expands to `@Subtype.val α fun x ↦ x ∈ ↑U : { x // x ∈ ↑U } → α`. This caused some later proofs to fail due to the different definition. In a similar case, within the proof of `mfderiv_coe_sphere_injective` on line 553 `Subtype.val` expanded as `@Subtype.val E fun x ↦ x ∈ (Submodule.span ℝ {↑(-v)})ᗮ : ↥(Submodule.span ℝ {↑(-v)})ᗮ → E`. After changing to `(↑)`, it expanded to `@Subtype.val E fun x ↦ x ∈ ↑(Submodule.span ℝ {↑(-v)})ᗮ : { x // x ∈ ↑(Submodule.span ℝ {↑(-v)})ᗮ } → E`. One benefit to using `(↑)` was that it lead to a shorter proof as `ContinuousLinearEquiv.coe_coe` could be removed on line 559. In general, this subtle change in types is basically impossible to detect without a tool like leaff. [](https://gitpod.io/from-referrer/) | merge-conflict | 50/50 | Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/Normed/Group/Hom.lean,Mathlib/CategoryTheory/Generator.lean,Mathlib/CategoryTheory/Limits/Shapes/Types.lean,Mathlib/CategoryTheory/Subobject/Types.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Set/Function.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/LocalInvariantProperties.lean,Mathlib/GroupTheory/Subsemigroup/Operations.lean,Mathlib/LinearAlgebra/LinearIndependent.lean,Mathlib/Order/Directed.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/Order/RelIso/Set.lean,Mathlib/RingTheory/Artinian.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Game/Basic.lean,Mathlib/SetTheory/Game/PGame.lean,Mathlib/SetTheory/Surreal/Basic.lean,Mathlib/Topology/Bornology/Constructions.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean,Mathlib/Topology/Germ.lean,Mathlib/Topology/UniformSpace/Basic.lean,Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean,Mathlib/Topology/UniformSpace/UniformEmbedding.lean | 28 | 1 | ['eric-wieser', 'rosborn'] | nobody | 1 year ago | unknown | unknown |
| 12473 | adomani | first translations | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 424/265 | Mathlib.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/WithBot.lean,Mathlib/Tactic.lean,Mathlib/Tactic/MinMax.lean | 5 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 12528 | adomani | test: autotranslations Bot --> Top | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 350/294 | Mathlib.lean,Mathlib/Order/WithBot.lean,Mathlib/Tactic.lean,Mathlib/Tactic/MinMax.lean,test/MinMax.lean | 5 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 12588 | adomani | remove trailingDegree | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 1280/979 | Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/Mirror.lean,Mathlib/Order/WithBot.lean,Mathlib/Tactic.lean,Mathlib/Tactic/MinMax.lean,Mathlib/Tactic/MinMaxTwo.lean,test/MinMax.lean | 11 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 12608 | eric-wieser | feat: allow `nsmul` / `zsmul` to be omitted again, with a warning | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra t-meta | 118/2 | Mathlib.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Tactic.lean,Mathlib/Tactic/DefaultFieldLinter.lean,scripts/noshake.json,test/default_field_linter.lean | 6 | 12 | ['YaelDillies', 'eric-wieser', 'fpvandoorn', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 12637 | adomani | translation: MonoidAlgebra to AddMonoidAlgebra | [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/merge.20Add-MonoidAlgebra) * #12646 was found as a consequence of unification. * #12659 the typo `single 1 1` for `single 0 1`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra t-meta | 615/986 | Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Division.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/MinMaxTwo.lean,scripts/noshake.json | 7 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 12679 | MichaelStollBayreuth | perf(NumberTheory/RamificationInertia): speed up slow file | A repetition of the earlier experiment at [#12412](https://github.com/leanprover-community/mathlib4/pull/12412) with Lean 4.8.0-rc1. This time, I tried not to introduce local instances if possible, but instead to tweak instance priorities. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 57/14 | Mathlib/NumberTheory/RamificationInertia.lean | 1 | 3 | ['MichaelStollBayreuth', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 12984 | adomani | Adomani/periodic reports dev custom action | --- [](https://gitpod.io/from-referrer/) | WIP test-ci | 366/0 | .github/workflows/mathlib_stats.yml,.github/workflows/ml_stats_label.yaml,scripts/count_decls.lean,scripts/mathlib_stats.sh | 4 | 69 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 13057 | alreadydone | feat(NumberTheory): characterize elliptic divisibility sequences | Main results: + Every `normEDS` is an elliptic divisibility sequence (EDS). The key proof is `rel₄_of_anti_oddRec_evenRec`, based on my original argument first published on [MathSE](https://math.stackexchange.com/a/4903422/12932) + Conversely, every EDS is equal to some `normEDS` (assuming that the first two terms are not zero divisors) --- - [ ] depends on: #13155 - [x] depends on: #13153 - [x] depends on: #10843 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra t-number-theory blocked-by-other-PR | 1032/55 | Mathlib/Algebra/Ring/NegOnePow.lean,Mathlib/Data/Int/Defs.lean,Mathlib/Data/Int/Parity.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/NumberTheory/EllipticDivisibilitySequence.lean | 5 | 6 | ['Multramate', 'alreadydone', 'kbuzzard', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 12192 | Ruben-VandeVelde | feat: generalize isLittleO_const_id_atTop/atBot | From PNT+. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 10/4 | Mathlib/Analysis/Asymptotics/Asymptotics.lean | 1 | 6 | ['Ruben-VandeVelde', 'llllvvuu', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 10024 | ADedecker | feat: rename `connectedComponentOfOne` to `identityComponent`, prove that it is normal and open | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology awaiting-CI | 58/24 | Mathlib/FieldTheory/AbsoluteGaloisGroup.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean,Mathlib/Topology/Algebra/OpenSubgroup.lean,Mathlib/Topology/Connected/Basic.lean | 5 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 10521 | eric-wieser | chore: generalize `IsBoundedLinearMap` to modules | Most of the lemmas don't actually need the normed on the scalars at all. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 58/42 | Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean | 1 | 3 | ['github-actions', 'j-loreaux', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 10594 | lecopivo | feat: `fun_trans` function transformation tactic e.g. for computing derivatives | feat: `fun_trans` function transformation tactic e.g. for computing derivatives Function transformation tactic/simproc. For example it can be used for computing derivatives. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 1819/56 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/Decl.lean,Mathlib/Tactic/FunProp/Elab.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/MorExt.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/FunTrans/Attr.lean,Mathlib/Tactic/FunTrans/Core.lean,Mathlib/Tactic/FunTrans/Decl.lean,Mathlib/Tactic/FunTrans/Elab.lean,Mathlib/Tactic/FunTrans/Theorems.lean,Mathlib/Tactic/FunTrans/Types.lean,test/fun_prop2.lean,test/fun_prop_dev.lean,test/fun_trans_dev.lean | 17 | 11 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 10721 | urkud | feat(Order/FunLike): define `PointwiseLE` | - introduce a mixin class `DFunLike.PointwiseLE`, use it to define `DFunLike.instPartialOrder`; - add a generic `DFunLike.orderEmbeddingCoe` - add `DFunLike.PointwiseLE` instances here and there. With this refactor and #13022, I'm going to generalize lemmas like `MeasureTheory.ae_mono` to `OuterMeasureClass`. --- - [x] depends on: #12983 [](https://gitpod.io/from-referrer/) | merge-conflict t-order t-logic | 123/50 | Mathlib.lean,Mathlib/Algebra/Order/Hom/Ring.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/FunLike/Basic.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/GroupTheory/Congruence.lean,Mathlib/Order/FunLike.lean,Mathlib/Order/Heyting/Hom.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Hom/Bounded.lean,Mathlib/Order/Hom/CompleteLattice.lean,Mathlib/Topology/Order/Hom/Basic.lean | 13 | 48 | ['YaelDillies', 'dupuisf', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 10842 | mcdoll | chore: simplify proofs using new positivity extensions and tests | --- - [x] depends on: #10661 - [ ] depends on: #10796 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR | 98/50 | Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/SpecialFunctions/Gaussian.lean,Mathlib/MeasureTheory/Covering/Differentiation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean,Mathlib/MeasureTheory/Function/ContinuousMapDense.lean,Mathlib/MeasureTheory/Integral/Bochner.lean,Mathlib/MeasureTheory/Measure/Tilted.lean,Mathlib/Probability/Martingale/Upcrossing.lean,Mathlib/Probability/Moments.lean,Mathlib/Probability/Variance.lean,Mathlib/Tactic/Positivity/Core.lean,test/positivity.lean | 14 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 10845 | Shamrock-Frost | Refactor: Make MonoidalFunctor carry the data of an inverse | We change the definition of a strong monoidal functor from a lax monoidal functor for which the unitor and tensorator are `IsIso` to a lax monoidal functor with the data of inverses for the unitor and tensorator. This requires fixing a lot of knock on effects. --- This is a **draft PR**. I would like to talk with people on zulip before merging it, and plan ahead to when we have oplax/colax monoidal functors as well. I'm not sure the approach I took here where `MonoidalFunctor` inherits from `LaxMonoidalFunctor` is a good choice if we want to be lax/oplax symmetric. [](https://gitpod.io/from-referrer/) | merge-conflict WIP RFC t-category-theory | 3799/1589 | Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean,Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Adjunction/Mates.lean,Mathlib/CategoryTheory/Adjunction/Opposites.lean,Mathlib/CategoryTheory/Adjunction/Prod.lean,Mathlib/CategoryTheory/Adjunction/Whiskering.lean,Mathlib/CategoryTheory/Bicategory/End.lean,Mathlib/CategoryTheory/Bicategory/SingleObj.lean,Mathlib/CategoryTheory/CatCommSq.lean,Mathlib/CategoryTheory/CatSquares.lean,Mathlib/CategoryTheory/Enriched/Basic.lean,Mathlib/CategoryTheory/Equivalence.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/CategoryTheory/Monoidal/Adjunction.lean,Mathlib/CategoryTheory/Monoidal/Braided.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/CategoryTheory/Monoidal/CommMon_.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/CategoryTheory/Monoidal/End.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Limits.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean,Mathlib/CategoryTheory/Monoidal/Opposite.lean,Mathlib/CategoryTheory/Monoidal/Rigid/FunctorCategory.lean,Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean,Mathlib/CategoryTheory/Monoidal/Subcategory.lean,Mathlib/CategoryTheory/Monoidal/Transport.lean,Mathlib/CategoryTheory/Monoidal/Types/Basic.lean,Mathlib/CategoryTheory/Opposites.lean,Mathlib/CategoryTheory/Products/Associator.lean,Mathlib/CategoryTheory/Products/Basic.lean,Mathlib/CategoryTheory/Shift/Basic.lean,Mathlib/CategoryTheory/Shift/Pullback.lean,Mathlib/CategoryTheory/Whiskering.lean,Mathlib/RepresentationTheory/Action/Monoidal.lean,Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean,Mathlib/RepresentationTheory/Rep.lean | 41 | 7 | ['Shamrock-Frost', 'joelriou'] | nobody | 1 year ago | unknown | unknown |
| 11100 | eric-wieser | feat(CategoryTheory/Limits): add `Functor.mapBinaryBiconeInv` | --- - [ ] depends on: #11130 [](https://gitpod.io/from-referrer/) It's tempting to try to prove something like ```lean theorem Functor.mapBinaryBiconeInv_toCone [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (e : D ⥤ C) [IsEquivalence e] {X Y : D} (b : BinaryBicone (e.obj X) (e.obj Y)) : (e.mapBinaryBiconeInv b).toCone = (e.mapConeInv <| (Cones.postcompose (pairComp X Y e).symm.hom).obj b.toCone) := by simp sorry theorem Functor.mapBinaryBiconeInv_toCocone [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (e : D ⥤ C) [IsEquivalence e] {X Y : D} (b : BinaryBicone (e.obj X) (e.obj Y)) : (e.mapBinaryBiconeInv b).toCocone = (e.mapCoconeInv <| (Cocones.precompose (pairComp X Y e).hom).obj b.toCocone) := by sorry ``` but maybe equality is evil here | merge-conflict t-category-theory awaiting-CI | 52/0 | Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Equivalence.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean | 3 | 6 | ['TwoFX', 'eric-wieser', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8503 | thorimur | feat: meta utils for `refine?` | This PR introduces some metaprogramming infrastructure and utilities that are necessary for `refine?` (#8364). * `elabTermWithHoles'` (and `withCollectingNewGoalsFrom'`): a more configurable version of `elabTermWithHoles`, which allows: preserving the initial mvar type; *not* tagging untagged goals; and postponing mvars. * Some `Syntax` and `TSyntax` functionality, including: * `TSyntax.map`(`M`), for acting on `TSyntax` with functions `f : Syntax -> (m) Syntax` * Range operations: `includes` and `isEqByRange` * `setTrailingInfoBy?` and `unsetOriginalTrailing`, which is like `unsetTrailing`, but behaves as expected. * `Term.withoutModifyingState`, which does not allow unknown mvarIds to escape via the infotree * `hasNewErrors`, which runs a monad computation and returns the value along with `true` or `false` depending on whether new error messages have been logged * the option `pp.anonymousMVarSuffixes`, which can be set to `false` to replace all numeric suffixes of anonymous mvars with `✝`, which is useful in tandem with `#guard_msgs` for tests (but is essentially a workaround—although it can make some tactic states more legible). --- I'm open to suggestions on the location and name of the option/delaborator used for trimming the numeric suffixes of anonymous mvar names (which is used in the tests)—including whether or not it should exist in the first place, as it's essentially just a workaround. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 312/5 | Mathlib.lean,Mathlib/Lean/CoreM.lean,Mathlib/Lean/Elab/Tactic/ElabTerm.lean,Mathlib/Lean/Elab/Term.lean,Mathlib/Util/Delaborators.lean,Mathlib/Util/Syntax.lean | 6 | 2 | ['kmill', 'thorimur'] | kmill | 1 year ago | unknown | unknown |
| 8519 | eric-wieser | refactor(LinearAlgebra/TensorProduct): golf using `liftAddHom` | This new `TensorProduct.liftAddHom` doesn't require bilinearity, only that scalar multiplication can be moved between the arguments. While in theory we only need the `AddMonoidHom` version as it offers exactly the same generality, we first provide an unbundled `liftFun` as this seems to give a sizeable performance boost if used in downstream `lift` variants. --- - [x] depends on: #8571 - [x] depends on: #8584 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 53/50 | Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean,Mathlib/LinearAlgebra/TensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean | 3 | 28 | ['bustercopley', 'eric-wieser', 'jcommelin', 'jjaassoonn', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib-bors'] | nobody | 1 year ago | unknown | unknown |
| 8582 | eric-wieser | wip | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 3/7 | Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean,Mathlib/LinearAlgebra/TensorProduct.lean | 2 | 4 | ['eric-wieser', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 8616 | eric-wieser | feat(Algebra/FreeAlgebra): add right action and `IsCentralScalar` | --- - [ ] depends on: #8652 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-CI | 30/8 | Mathlib/Algebra/FreeAlgebra.lean | 1 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8658 | eric-wieser | feat: support right actions for `Con` | This adds a new `Con.CompatibleSMul` typeclass that captures exactly the condition when `smul` descends to the quotient. I was not quite able to merge this with `MulAction.QuotientAction`: * The imports are such that the congruence relation `QuotientGroup.con` is not yet available in that file * `QuotientGroup.con` requires the subgroup to be normal, while `MulAction.QuotientAction` does not --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 80/18 | Mathlib/GroupTheory/Congruence.lean,Mathlib/RingTheory/Congruence.lean | 2 | 6 | ['YaelDillies', 'eric-wieser'] | nobody | 1 year ago | unknown | unknown |
| 8788 | FMLJohn | feat(Algebra/Module/GradeZeroModule): if `A` is a graded semiring and `M` is a graded `A`-module, then each grade of `M` is a module over the 0-th grade of `A`. | --- - [ ] depends on: #8187 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 237/4 | Mathlib.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/Module/GradeZeroModule.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/Noetherian.lean | 6 | 4 | ['FMLJohn', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8906 | jjaassoonn | feat: add some missing lemmas about linear algebra | --- - [ ] depends on: #8905 [lifting injective modules to higher universe] [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 45/1 | Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Module/Injective.lean,Mathlib/LinearAlgebra/Basic.lean,Mathlib/LinearAlgebra/BilinearMap.lean | 4 | 21 | ['AntoineChambert-Loir', 'alreadydone', 'jjaassoonn', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8961 | eric-wieser | refactor: use the coinduced topology on ULift | --- - [x] depends on: #8958 [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict awaiting-author awaiting-CI | 46/14 | Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Topology/Bornology/Constructions.lean,Mathlib/Topology/Constructions.lean | 3 | 6 | ['eric-wieser', 'github-actions', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 9146 | laughinggas | feat(Data/ZMod/Defs): Topological structure on `ZMod` | Added a discrete topology structure to `ZMod n` for all `n` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-topology | 55/3 | Mathlib.lean,Mathlib/Topology/Algebra/Constructions.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Instances/ZMod.lean,Mathlib/Topology/Maps.lean | 5 | 61 | ['YaelDillies', 'eric-wieser', 'github-actions', 'jcommelin', 'laughinggas', 'mo271', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 9229 | eric-wieser | refactor(Algebra/GradedMonoid): Use `HMul` to define `GMul` | This make the notation much nicer, but I'm pretty sure this is a bad idea for performance / ambiguity reasons. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 114/125 | Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/GradedMulAction.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean,Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean | 11 | 6 | ['eric-wieser', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 9252 | astrainfinita | chore: remove redundant covariance instances, add priority | I noticed that the following code is surprisingly slow. ``` lean import Mathlib count_heartbeats in example {n : ℕ} : CovariantClass (Fin (n + 1)) (Fin (n + 1)) (· + ·) (· < ·) := by try infer_instance sorry ``` This PR removed some redundant instances. The heartbeats have dropped from 19118 to 11450 (still too slow). Lean4 still seems to make some redundant attempts. See also https://github.com/leanprover-community/mathlib4/issues/6646#issuecomment-1691792488. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-order merge-conflict slow-typeclass-synthesis awaiting-author | 40/32 | Mathlib/Algebra/CovariantAndContravariant.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean | 4 | 8 | ['astrainfinita', 'leanprover-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 9354 | chenyili0818 | feat: monotonicity of gradient on convex real-valued functions | This file is based on Mathlib.Analysis.Calculus.Gradient.Basic, and describes the calculation properties co-authored-by: Ziyu Wang [tropicalfish910@gmail.com](mailto:tropicalfish910@gmail.com) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 540/0 | Mathlib.lean,Mathlib/Analysis/Convex/ConvexFunction.lean | 2 | 15 | ['github-actions', 'winstonyin'] | nobody | 1 year ago | unknown | unknown |
| 9356 | alexjbest | feat: assumption? | A little helper for replacing `assumption`s with `exact` statements quickly --- If this is approved I will add tests This begs the question of whether it might simply be better to add some sort of code action for "replace with trythis output" [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 24/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/TryAssumption.lean | 4 | 5 | ['alexjbest', 'j-loreaux', 'jcommelin'] | nobody | 1 year ago | unknown | unknown |
| 9469 | dupuisf | feat: maximum modulus principle for functions vanishing at infinity | This PR adds versions of the maximum modulus principle for functions vanishing at infinity that parallel those we already had for functions over a bounded set. These will have applications in e.g. norm interpolation. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-analysis | 71/0 | Mathlib/Analysis/Complex/AbsMax.lean | 1 | 8 | ['dupuisf', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 9482 | yuma-mizuno | refactor(CategoryTheory/Monoidal): add `LaxMonoidalStruct` | Add a `LaxMonoidalStruct` with only the unit morphism `ε` and the tensorator `μ`. This is used in #6307 to provide two different constructors for `LaxMonoidal` that have common `ε` and `μ` but use the tensor of morphisms or the whiskerings. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 21/8 | Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/CategoryTheory/Monoidal/Functorial.lean,Mathlib/CategoryTheory/Monoidal/Limits.lean | 3 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 9487 | eric-wieser | feat: the exponential of dual numbers over non-commutative rings | This is a work in progress, as I don't know my way around the measure theory library. --- - [x] depends on: #9489 - [x] depends on: #9486 - [x] depends on: #10427 - [ ] depends on: #10452 [](https://gitpod.io/from-referrer/) | WIP t-algebra t-measure-probability merge-conflict t-analysis | 97/0 | Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean | 1 | 7 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 9504 | alreadydone | chore: remove some IsSeparable assumptions | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 41/14 | Mathlib/NumberTheory/NumberField/Norm.lean,Mathlib/RingTheory/Norm.lean | 2 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 9510 | eric-wieser | feat(Analysis/Calculus/DualNumber): Extending differentiable functions to dual numbers | This shows that this operation preserves multiplication and composition --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-analysis awaiting-CI | 119/0 | Mathlib/Analysis/Calculus/DualNumber.lean | 1 | 4 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 9570 | eric-wieser | feat(Algebra/Star): Non-commutative generalization of `StarModule` | [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Star.20modules.20over.20non-commutative.20scalars/near/383664005). Until we address #7152, we have to have both `StarModule` and `StarModule'`. To prove this generalization is useful, this shows that with it as an assumption, `TrivSqZeroExt` is a `StarRing`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra awaiting-CI | 66/6 | Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/Pi.lean,Mathlib/Algebra/Star/Prod.lean,Mathlib/Algebra/TrivSqZeroExt.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 9642 | eric-wieser | refactor(Analysis/Normed/{Group/Field}/Basic): Let `extends` generate the repeated fields | New-style structure shenanigans mean that instance constructors randomly complain about a missing field that can be found with `__ : MetricSpace _ := infer_instance`. --- [](https://gitpod.io/from-referrer/) I will write a longer PR description for this once CI is happy | WIP merge-conflict awaiting-author help-wanted t-analysis | 122/202 | Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Matrix.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Group/Completion.lean,Mathlib/Analysis/Normed/Order/Basic.lean,Mathlib/Analysis/NormedSpace/ProdLp.lean,Mathlib/Analysis/NormedSpace/Star/Matrix.lean,Mathlib/Analysis/NormedSpace/Unitization.lean,Mathlib/Analysis/Quaternion.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/InformationTheory/Hamming.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean,Mathlib/NumberTheory/Padics/PadicIntegers.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean | 17 | 11 | ['eric-wieser', 'leanprover-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 6580 | adomani | chore: `move_add`-driven replacements | This PR accompanies #6576 and uses `move_add/mul` to simplify/streamline a selection of proofs. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 12/13 | Counterexamples/Monic_nonRegular.lean,Mathlib/Algebra/Associated.lean,Mathlib/Data/Polynomial/RingDivision.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6630 | MohanadAhmed | feat: Reduced Spectral Theorem | For A hermitian matrix $A : n \times n$ with rank $A.rank \leq n$, we can eliminate the zero eigenvalues and their corresponding eigenvectors from the (alternate) spectral theorem. As such the matrix $A$ can be written as: $$A = V₁ D V₁ᴴ$$ where - $V₁$ : $n \times r$ is the matrix of eigenvector with non-zero associated eigenvalues. - $D$ is $r \times r$ is the diagonal matrix containing only non-zero eigenvalues on its main diagonal. with $r = A.rank$ being the rank of the matrix Towards that goal we make several equivalence definitions: - `{i // hA.eigenvalues i ≠ 0} ≃ Fin (A.rank)` the set of non-zero eigenvalues can be indexed by the numbers from 0 to (r - 1). - `{i // ¬ hA.eigenvalues i ≠ 0} ≃ Fin (n - A.rank)` the set of non-zero eigenvalues can be indexed by the numbers from 0 to (n - r - 1). - `{i // hA.eigenvalues i ≠ 0} ⊕ {i // ¬hA.eigenvalues i ≠ 0} ≃ n`: the index set of the matrix (together with the associated eigenvector matrix and eigenvalues matrix ) can be partitioned into two complement groups the ones corresponding to non-zero eigenvalues and the ones corresponding to zero eigenvalues. - We can then put the previous definitions together to obtain a: `Fin (A.rank) ⊕ Fin (Fintype.card n - A.rank) ≃ n` --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 31/0 | Mathlib/LinearAlgebra/Matrix/Spectrum.lean | 1 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6777 | adomani | chore(Co*variantClass): replace eta-expanded (· * ·), (· + ·), (· ≤ ·), (· < ·) | Replace `CovariantClass X X (· * ·) (· ≤ ·)` with -> `CovariantClass X X HMul.hMul LE.le` and similarly for `HAdd`, `LT`, `Contravariant`.
This PR is inspired by [Issue #6646](https://github.com/leanprover-community/mathlib4/issues/6646) and, more specifically, [this comment](https://github.com/leanprover-community/mathlib4/issues/6646#issuecomment-1692792066).
Note that https://github.com/leanprover/lean4/pull/2267 would make this unnecessary
---
```bash
# First sed command:
# the first captured pattern is `Co*variantClass |
merge-conflict | 703/678 | Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean,Mathlib/Algebra/BigOperators/Basic.lean,Mathlib/Algebra/Bounds.lean,Mathlib/Algebra/CovariantAndContravariant.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/Group/UniqueProds.lean,Mathlib/Algebra/GroupPower/Order.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/Archimedean.lean,Mathlib/Algebra/Order/Group/Abs.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/DenselyOrdered.lean,Mathlib/Algebra/Order/Group/MinMax.lean,Mathlib/Algebra/Order/Group/OrderIso.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/Algebra/Order/LatticeGroup.lean,Mathlib/Algebra/Order/Module.lean,Mathlib/Algebra/Order/Monoid/Basic.lean,Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/Lemmas.lean,Mathlib/Algebra/Order/Monoid/MinMax.lean,Mathlib/Algebra/Order/Monoid/NatCast.lean,Mathlib/Algebra/Order/Monoid/OrderDual.lean,Mathlib/Algebra/Order/Monoid/Prod.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/Algebra/Order/Monoid/WithZero/Basic.lean,Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Pointwise.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Lemmas.lean,Mathlib/Algebra/Order/Sub/Basic.lean,Mathlib/Algebra/Order/Sub/Canonical.lean,Mathlib/Algebra/Order/Sub/Defs.lean,Mathlib/Algebra/Order/WithZero.lean,Mathlib/Algebra/Parity.lean,Mathlib/Algebra/Star/Order.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/Normed/Order/Lattice.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/List/BigOperators/Basic.lean,Mathlib/Data/List/BigOperators/Lemmas.lean,Mathlib/Data/Multiset/Basic.lean,Mathlib/Data/Nat/Cast/Order.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/Real/ENNReal.lean,Mathlib/Data/Real/NNReal.lean,Mathlib/Data/Set/Semiring.lean,Mathlib/Data/Sign.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/VectorMeasure.lean,Mathlib/Order/ConditionallyCompleteLattice/Group.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Probability/Martingale/Basic.lean,Mathlib/Probability/Process/Stopping.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Game/Basic.lean,Mathlib/SetTheory/Game/PGame.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/NaturalOps.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Topology/ContinuousFunction/Algebra.lean,lean-toolchain,test/Recall.lean,test/propose.lean | 81 | 36 | ['adomani', 'alreadydone', 'digama0', 'eric-wieser', 'ericrbg', 'jcommelin', 'leanprover-bot', 'sgouezel'] | nobody | 1 year ago | unknown | unknown |
| 6791 | eric-wieser | refactor: Use flat structures for morphisms | This restores the symmetry we had in Lean3, where we had `MonoidHom.mk f one mul` not `MonoidHom.mk (OneHom.mk f one) mul`, and `f.toFun` wasn't notation for `f.toMulHom.toFun`. The nesting provided by the previous inheritance is useless to us in the face of `MonoidHomClass.toMonoidHom`, which completely eta-expands the structure anyway. We call the class `FunLikeFlatHack._` because this means the field is called `to_` which uses up less space in the goal view than any alternative. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author help-wanted awaiting-CI | 174/201 | Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Category/GroupCat/ZModuleEquivalence.lean,Mathlib/Algebra/Category/GroupWithZeroCat.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/Category/MonCat/Basic.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/UniqueProds.lean,Mathlib/Algebra/Hom/Equiv/Basic.lean,Mathlib/Algebra/Hom/Group/Defs.lean,Mathlib/Algebra/Hom/GroupAction.lean,Mathlib/Algebra/Hom/NonUnitalAlg.lean,Mathlib/Algebra/Hom/Ring/Defs.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Module/Equiv.lean,Mathlib/Algebra/Module/LinearMap.lean,Mathlib/Algebra/Order/Hom/Ring.lean,Mathlib/Algebra/Order/Interval.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean,Mathlib/Data/FunLike/Basic.lean,Mathlib/Data/Rat/Cast/CharZero.lean,Mathlib/Data/Real/EReal.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/GroupTheory/FreeAbelianGroup.lean,Mathlib/GroupTheory/MonoidLocalization.lean,Mathlib/LinearAlgebra/Quotient.lean,Mathlib/LinearAlgebra/TensorProduct.lean,Mathlib/RingTheory/RingInvo.lean,Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/MetricSpace/Dilation.lean | 32 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6930 | kmill | feat: `resynth_instances` tactic for resynthesizing instances in the goal or local context | This tactic can be useful for debugging non-canonical instances or for fixing up goals and hypotheses after using the `classical` tactic. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 327/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ResynthInstances.lean,test/ResynthInstances.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6931 | urkud | refactor(Analysis/Normed*): use `RingHomIsometric` for `*.norm_cast` | --- I don't understand why linter fails. [](https://gitpod.io/from-referrer/) | merge-conflict help-wanted t-analysis | 78/68 | Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/NormedSpace/Basic.lean,Mathlib/Analysis/NormedSpace/Exponential.lean,Mathlib/Analysis/NormedSpace/Spectrum.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/NumberTheory/NumberField/Embeddings.lean | 8 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 7225 | jjaassoonn | some random stuff | - Consider two commutative rings `R` and `S` and `X` and `(R, S)`-bimodule. Consider the tensor functor `(X ⊗[R] .)` from the category of `R`-modules to the category of `S`-modules and the hom functor `X →ₗ[S] .` from the category of `S`-modules to the category of `R`-modules, they form an adjunction. - direct limits of modules commute with tensor product - A proof of  Three definitions for flatness: 1. in terms of injectiveness ```lean def Flat.injective : Prop := ∀ ⦃N N' : ModuleCat.{u} R⦄ (L : N ⟶ N'), Function.Injective L → Function.Injective ((tensorRight (ModuleCat.of R M)).map L) ``` 2. in terms of ideals ```lean def Flat.ideal : Prop := ∀ (I : Ideal R), Function.Injective (TensorProduct.lift ((lsmul R M).comp I.subtype)) ``` 3. in terms of finitely generated ideal ```lean def Flat.fg_ideal : Prop := ∀ ⦃I : Ideal R⦄ (_ : I.FG), Function.Injective (TensorProduct.lift ((lsmul R M).comp I.subtype)) ``` and they are all equivalent: ```lean lemma tfae : List.TFAE [ Flat.injective R M, Flat.ideal R M, Flat.fg_ideal R M ] := by ``` The dependencies between these changed files are: ``` Algebra.Module.LinearMap--------------------------------- | | | | v v Algebra.Category.ModuleCat.TensorProduct -----> Algebra.Character | | | v Algebra.DirectLimitAndTensorProduct -------------> RingTheory.Flat ``` to prove equivalence of other definitions, e.g. exact functor, tor, etc should be easier with this because the proof is will be categorical --- ------------- Some other stuff not about flatness 1. If $S$ is a submonoid and $I$ is maximally disjoint from $S$ then $I$ is prime 2. if $\mathfrak p$ is a minimal prime, then $x \in \mathfrak p$ implies that $x$ is a zero divisor 3. Noetherian rings has only finitely many minimal ideals 4. One version of [the prime avoidance lemma](https://en.wikipedia.org/wiki/Prime_avoidance_lemma): if $E$ is an addsubgroup of a ring and is mutiplicatively closed, and $\mathfrak p_i$ is some prime ideals, then not being any subset of the individual prime ideal implies that not being a subset of their union ---------- [](https://gitpod.io/from-referrer/) | merge-conflict | 1828/16 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/TensorProduct.lean,Mathlib/Algebra/Character.lean,Mathlib/Algebra/DirectLimitAndTensorProduct.lean,Mathlib/Algebra/Module/LinearMap.lean,Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean,Mathlib/CategoryTheory/Functor/Fin.lean,Mathlib/CategoryTheory/ShortExactSequence.lean,Mathlib/RingTheory/Flat.lean,Mathlib/RingTheory/Ideal/Basic.lean,Mathlib/RingTheory/Ideal/MinimalPrime.lean,Mathlib/RingTheory/Ideal/PrimeAvoidance.lean | 13 | 6 | ['eric-wieser', 'jjaassoonn'] | nobody | 1 year ago | unknown | unknown |
| 7227 | kmill | feat: flexible binders and integration into notation3 | Introduces `flexibleBinders`, which is an extensible system for binder notations that allow destructuring, bounded domains, and other niceties. Integrates this into `notation3`, and makes `Finset.sum`/`Finset.prod` use it. --- - [ ] depends on: #6833 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 1215/131 | Mathlib.lean,Mathlib/Algebra/BigOperators/Basic.lean,Mathlib/Algebra/BigOperators/Intervals.lean,Mathlib/Algebra/BigOperators/NatAntidiagonal.lean,Mathlib/Mathport/Notation.lean,Mathlib/Util/FlexibleBinders.lean,Mathlib/Util/FlexibleBindersFinset.lean,Mathlib/Util/SyntaxFun.lean,test/FlexibleBinders.lean,test/notation3.lean | 10 | 3 | ['eric-wieser', 'kmill', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 7351 | shuxuezhuyi | feat(Topology/Algebra/Order): extend function on `Ioo` to `Icc` | Extend a strictly monotone function defined on an open interval. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-order | 59/0 | Mathlib.lean,Mathlib/Data/Set/Function.lean,Mathlib/Topology/Algebra/Order/IccExtendFromIoo.lean | 3 | 7 | ['j-loreaux', 'shuxuezhuyi'] | nobody | 1 year ago | unknown | unknown |
| 7467 | ADedecker | feat: spectrum of X →ᵇ ℂ is StoneCech X | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 121/23 | Mathlib/Analysis/NormedSpace/Star/BoundedContinuousFunction.lean,Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean,Mathlib/Topology/ContinuousFunction/Compact.lean | 4 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 7512 | Komyyy | perf: override the data structures of coinductive types | The data structures of the model of coinductive types (`Stream'`, `Computation`, `Stream'.Seq`) are inefficient, so we override their data structures. --- - [x] depends on: #7514 - [ ] depends on: leanprover/lean4#2292 - [x] depends on: leanprover/std4#371 - [x] depends on: #8460 [](https://gitpod.io/from-referrer/) | WIP blocked-by-core-PR blocked-by-other-PR merge-conflict t-meta | 6919/3700 | Mathlib.lean,Mathlib/Algebra/ContinuedFractions/Basic.lean,Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean,Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/ContinuedFractions/ContinuantRecurrence.lean,Mathlib/Algebra/ContinuedFractions/EvalEquiv.lean,Mathlib/Algebra/ContinuedFractions/Real.lean,Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean,Mathlib/Algebra/ContinuedFractions/Translations.lean,Mathlib/Combinatorics/Hindman.lean,Mathlib/Control/Fix.lean,Mathlib/Control/LawfulFix.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Seq/Parallel.lean,Mathlib/Data/Seq/Seq.lean,Mathlib/Data/Seq/WSeq.lean,Mathlib/Data/Stream.lean,lean-toolchain | 22 | 2 | ['digama0', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 7564 | shuxuezhuyi | feat(Topology/Algebra/Order): extend strictly monotone function on `Ioo` to homeomorphism on `Icc` | A strictly monotone function between open intervals can be extended to a homeomorphism between the closed intervals. --- - [ ] depends on: #7351 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology blocked-by-other-PR | 162/0 | Mathlib.lean,Mathlib/Topology/Algebra/Order/IccExtendFromIoo.lean | 2 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 7601 | digama0 | feat: ring hom support in `ring` | As [requested on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/aroots/near/395750055). Adds support for distributing ring morphisms in `ring`: ```lean example (p : ℤ[X]) (r : ℤ) : C (2 * r) * p = C r * p + C r * p := by ring ``` --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra t-meta | 257/48 | Mathlib/Tactic/Ring/Basic.lean,test/linear_combination.lean,test/ring.lean | 3 | 1 | ['eric-wieser'] | nobody | 1 year ago | unknown | unknown |
| 7615 | eric-wieser | chore(LinearAlgebra/Basic): generalize compatibleMaps to semilinear maps | Spotted while reviewing #7611 --- - [x] depends on: #7611 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra easy awaiting-CI | 9/33 | Mathlib/LinearAlgebra/Basic.lean | 1 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 7713 | RemyDegenne | feat: add_left/right_inj for measures | `μ + ν₁ = μ + ν₂ ↔ ν₁ = ν₂`, and similarly on the right. This is not true in general for measures, but is true when `μ` is mutually singular with the two other measures or when `μ` is finite. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-measure-probability | 53/1 | Mathlib/MeasureTheory/Measure/MutuallySingular.lean,lean-toolchain | 2 | 6 | ['RemyDegenne', 'digama0', 'eric-wieser', 'fpvandoorn'] | nobody | 1 year ago | unknown | unknown |
| 7835 | shuxuezhuyi | feat(LinearAlgebra/Matrix): `lift` for projective special linear group | We provide converters to help with the use of "quotient.liftOn" on projective special linear groups. --- - [x] depends on: #7826 - [x] depends on: #7791 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 52/0 | Mathlib/LinearAlgebra/Matrix/ProjectiveSpecialLinearGroup.lean | 1 | 3 | ['jcommelin', 'leanprover-community-mathlib4-bot', 'shuxuezhuyi'] | jcommelin | 1 year ago | unknown | unknown |
| 7875 | astrainfinita | chore: make `SMulCommClass A A B` and `SMulCommClass A B B` higher priority | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra | 54/48 | Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Subgroup/Actions.lean,Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/Ring/CentroidHom.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Analysis/Complex/UnitDisc/Basic.lean,Mathlib/Analysis/NormedSpace/lpSpace.lean,Mathlib/Data/Matrix/Basic.lean,Mathlib/GroupTheory/GroupAction/Prod.lean,Mathlib/GroupTheory/GroupAction/Ring.lean,Mathlib/GroupTheory/GroupAction/SubMulAction.lean,Mathlib/GroupTheory/MonoidLocalization.lean,Mathlib/GroupTheory/Submonoid/Center.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean,Mathlib/RingTheory/Ideal/Quotient.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean,Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean,Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean | 27 | 15 | ['Parcly-Taxel', 'astrainfinita', 'jcommelin', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 7909 | mcdoll | fix(Tactic/Continuity): remove npowRec and add new tag for Continuous.pow | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology t-meta | 14/9 | Mathlib/Tactic/Continuity.lean,Mathlib/Topology/Category/TopCat/Limits/Basic.lean,test/Continuity.lean | 3 | 2 | ['eric-wieser'] | nobody | 1 year ago | unknown | unknown |
| 7932 | eric-wieser | refactor(Algebra/TrivSqZeroExt): replace with a structure | This is dogfooding my claim that "one-field structures are the lesser evil in Lean 4". This runs into the `simp [(stupid_parens)]` bug; or rather, a particular nasty instance of it where the offending simp call is inside `@[simps]`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-CI | 155/73 | Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/TrivSqZeroExt.lean,Mathlib/Logic/Equiv/TransferInstance.lean,Mathlib/Topology/Instances/TrivSqZeroExt.lean | 4 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 7962 | eric-wieser | feat: `DualNumber (Quaternion R)` as a `CliffordAlgebra` | This provides a clifford algebra isomorphic to the dual quaternions --- - [x] depends on: #7934 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 307/7 | Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/QuaternionBasis.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean | 3 | 16 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8364 | thorimur | feat: `refine?` | This PR adds `refine? e`, which suggests replacing unsynthesized `_`'s in `e` with `?_` in order to make `refine e'` work: ```lean example : Nat → Nat := by refine? fun (_ : _) => _ -- Try this: refine fun (_ : _) => ?_ ``` Note that this only suggests replacements for `_`'s present in the syntax; to create goals for implicit or instance arguments, the user is expected to use `refine'`. --- I'm especially open to suggestions on the filename (currently `RefineFix`). I'm also curious if this behaves as expected! Feel free to try it out "in real life" and comment here on edge cases. - [ ] depends on: #8503 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-meta | 684/5 | Mathlib.lean,Mathlib/Lean/CoreM.lean,Mathlib/Lean/Elab/Tactic/ElabTerm.lean,Mathlib/Lean/Elab/Term.lean,Mathlib/Tactic.lean,Mathlib/Tactic/RefineFix.lean,Mathlib/Util/Delaborators.lean,Mathlib/Util/Syntax.lean,test/RefineFix.lean | 9 | 5 | ['j-loreaux', 'leanprover-community-mathlib4-bot', 'thorimur'] | nobody | 1 year ago | unknown | unknown |
| 3575 | Kha | perf: selectively enable precompilation | --- This is an initial performance test on Linux. TODO: - [ ] test on macOS and Windows as well - [ ] adapt caching | merge-conflict WIP | 3/0 | lakefile.lean | 1 | 21 | ['Kha', 'kim-em', 'leanprover-bot', 'tydeu'] | nobody | 1 year ago | unknown | unknown |
| 4771 | thorimur | feat: Backtrack minimize | Utilities for backtracking in order to attain a minimum according to some arbitrary notion of size when generating lists of parts and alternatives in alternating fashion. Motivated by minimizing the number of generated subgoals under apply-like actions on the goal. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 482/1 | Mathlib/Tactic/Backtracking.lean,test/Backtracking.lean | 2 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 4775 | thorimur | feat: `SubExpr` utilities | This file contains utilities for handling positions in expressions, including folding over subexpressions along with their positions. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 148/0 | Mathlib.lean,Mathlib/Lean/SubExpr.lean | 2 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 4785 | thorimur | feat: ExprWithLevels | This introduces `ExprWithLevels`, a means of emulating universe polymorphism for non-constants during metaprogramming. [Description pending] - [ ] depends on: #4786 --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-meta | 491/1 | Mathlib.lean,Mathlib/Lean/Meta/AppBuilder.lean,Mathlib/Lean/Meta/Basic.lean,Mathlib/Lean/Meta/ExprWithLevels.lean | 4 | 1 | ['kim-em'] | nobody | 1 year ago | unknown | unknown |
| 4871 | j-loreaux | feat: define the additive submonoid of positive elements in a star ordered ring | This file defines the `AddSubmonoid` of nonegative elements `StarOrderedRing.positive R` in a star ordered ring `R` with carrier `{ x : R | 0 ≤ x }` (in fact, the definition only requires `OrderedAddCommMonoid R` to allow for other use cases, but it is primarily intended for `StarOrderedRing R`). Equivalently, this is the `AddSubmonoid` generated by the elements of the form `star s * s`. Even though this technically corresponds to the nonnegative elements, the "positive" terminology is standard throughout the literature (at least in C⋆-algebra theory and operator theory), so we choose to prefer that. The advantage of using this over other definitions of positivity is that it allows us to unify several different concepts under a single umbrella. For example, one might be tempted to consider the collection of bounded linear operators on an Hilbert space and define positivity as `∀ x, 0 ≤ ⟪T x, x⟫`, but this doesn't generalize nicely to C⋆-algebras. Alternatively, one could define positivity as those self-adjoint elements with nonnegative spectrum, but this requires the algebra to be unital. Our definition herein conveniently sidesteps these issues. --- Note: I declared the `AddMonoidWithOne` and `AddGroupWithOne` instances for `selfAdjoint R` separately because it made the proof of the latter easier. - [x] depends on: #6229 - [x] depends on: #10209 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-CI | 216/12 | Mathlib.lean,Mathlib/Algebra/Order/Ring/CharZero.lean,Mathlib/Algebra/Star/Order.lean,Mathlib/Algebra/Star/Positive.lean,Mathlib/Algebra/Star/SelfAdjoint.lean,Mathlib/GroupTheory/Submonoid/Operations.lean | 6 | 28 | ['eric-wieser', 'j-loreaux', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 5133 | kmill | feat: IntermediateField adjoin syntax for sets of elements | Adds support for both `F⟮S⟯` and `F⟮α⟯`. The term `x` in `F⟮x⟯` is elaborated, and if it has type `Set _` the first interpretation is used, and otherwise the second is. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 110/55 | Mathlib/FieldTheory/Adjoin.lean | 1 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 5912 | ADedecker | feat(Analysis.Distribution.ContDiffMapSupportedIn): space of smooth maps with support in a fixed compact | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 513/13 | Mathlib.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Data/FunLike/Basic.lean,Mathlib/Data/Set/Function.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean | 8 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6002 | slerpyyy | feat(Analysis.SpecialFunctions.Gaussian): add `integrable_fun_mul_exp_neg_mul_sq` | If `f : ℝ → ℝ` is bounded by a polynomial, `fun x : ℝ => f x * exp (-b * x ^ 2)` is integrable. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 26/0 | Mathlib/Analysis/SpecialFunctions/Gaussian.lean | 1 | 3 | ['ocfnash', 'slerpyyy', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 6079 | eric-wieser | fix: deduplicate variables | `variables {A} [Ring A]` meant "update the binder of `A`" in Lean 3, but now means "create a duplicate variable called `A`" (or at least, does so when inspecting the state within the variables line). This removes a number of porting notes that were stumbling over this behavior. [Related Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/unexpected.20.60variable.60.20behaviour.3F/near/360154080) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-CI | 1012/443 | Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/CharP/Basic.lean,Mathlib/Algebra/CovariantAndContravariant.lean,Mathlib/Algebra/DirectLimit.lean,Mathlib/Algebra/DirectSum/Finsupp.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/Group/Pi.lean,Mathlib/Algebra/GroupPower/Basic.lean,Mathlib/Algebra/GroupPower/Lemmas.lean,Mathlib/Algebra/Hom/Aut.lean,Mathlib/Algebra/Hom/Equiv/Basic.lean,Mathlib/Algebra/Hom/Group.lean,Mathlib/Algebra/Homology/HomologicalComplex.lean,Mathlib/Algebra/Homology/HomotopyCategory.lean,Mathlib/Algebra/Homology/ImageToKernel.lean,Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean,Mathlib/Algebra/IndicatorFunction.lean,Mathlib/Algebra/Jordan/Basic.lean,Mathlib/Algebra/Lie/Classical.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/TensorProduct.lean,Mathlib/Algebra/Module/Injective.lean,Mathlib/Algebra/Module/LinearMap.lean,Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Order/Ring/Lemmas.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/SMulWithZero.lean,Mathlib/Algebra/Star/Module.lean,Mathlib/Algebra/Support.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Point.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean,Mathlib/AlgebraicTopology/MooreComplex.lean,Mathlib/Analysis/Calculus/ContDiff.lean,Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean,Mathlib/Analysis/Calculus/LocalExtr.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Extreme.lean,Mathlib/Analysis/Convex/Function.lean,Mathlib/Analysis/Convex/Hull.lean,Mathlib/Analysis/Convex/Independent.lean,Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/Analysis/Convex/Join.lean,Mathlib/Analysis/Convex/Quasiconvex.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/Analysis/Convex/Star.lean,Mathlib/Analysis/Convex/Uniform.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean,Mathlib/Analysis/LocallyConvex/Basic.lean,Mathlib/Analysis/LocallyConvex/Bounded.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/AddCircle.lean,Mathlib/Analysis/Normed/Group/Hom.lean,Mathlib/Analysis/Normed/Group/Seminorm.lean,Mathlib/Analysis/NormedSpace/Completion.lean,Mathlib/Analysis/NormedSpace/LinearIsometry.lean,Mathlib/Analysis/NormedSpace/Multilinear.lean,Mathlib/Analysis/NormedSpace/OperatorNorm.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean,Mathlib/CategoryTheory/Closed/Ideal.lean,Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Endofunctor/Algebra.lean,Mathlib/CategoryTheory/Enriched/Basic.lean,Mathlib/CategoryTheory/EssentialImage.lean,Mathlib/CategoryTheory/FullSubcategory.lean,Mathlib/CategoryTheory/Functor/Category.lean,Mathlib/CategoryTheory/Limits/Fubini.lean,Mathlib/CategoryTheory/Limits/HasLimits.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean,Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean,Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean,Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean,Mathlib/CategoryTheory/Limits/Shapes/Images.lean,Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean,Mathlib/CategoryTheory/Linear/LinearFunctor.lean,Mathlib/CategoryTheory/Localization/Construction.lean,Mathlib/CategoryTheory/Monoidal/Braided.lean,Mathlib/CategoryTheory/Monoidal/CommMon_.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean | 302 | 1 | ['timotree3'] | nobody | 1 year ago | unknown | unknown |
| 6195 | eric-wieser | chore(RingTheory/TensorProduct): golf the `mul` definition | --- - [x] depends on: #6211 - [x] depends on: #6187 [](https://gitpod.io/from-referrer/) Strangely this causes a timeout downstream | merge-conflict t-algebra awaiting-CI | 4/29 | Mathlib/RingTheory/TensorProduct.lean | 1 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 6210 | MohanadAhmed | feat(Data/IsROrC/Basic): add a `StarOrderedRing` instance | This PR implements a suggestion by @urkud on [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/PartialOrder.20and.20StarOrderedRing.20on.20IsROrC) on how to get a `StarOrderedRing` on the `IsROrC` class. In that discussion the suggested step were: 1. Add PartialOrder K to the list of extends and add le_iff_re_im : z ≤ w ↔ re z ≤ re w ∧ im z = im w to the list of axioms. 2. Prove StarOrderedRing instance for any IsROrC. 3. Add (almost trivial) le_iff_re_im proofs to IsROrC instances for real and complex numbers. This PR does exactly these three steps --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra t-analysis | 25/24 | Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/IsROrC/Basic.lean | 4 | 19 | ['MohanadAhmed', 'eric-wieser', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 6307 | yuma-mizuno | refactor(CategoryTheory/Monoidal): add whiskering operators | We introduce whiskering operators. This allows us to introduce a simp-normal form for morphisms in monoidal categories. Rewriting into simp-normal forms is especially useful when combined with the coherence tactic. --- - [x] depends on: #6420 - [x] depends on: #8191 - [x] depends on: #9988 - [x] depends on: #9991 - [x] depends on: #9995 - [x] depends on: #10061 - [x] depends on: #10078 - [x] depends on: #10898 - [x] depends on: #10912 - [x] depends on: #11223 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 325/280 | Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/CategoryTheory/Bicategory/End.lean,Mathlib/CategoryTheory/Closed/Ideal.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean,Mathlib/CategoryTheory/Monoidal/Limits.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean,Mathlib/CategoryTheory/Monoidal/Opposite.lean,Mathlib/CategoryTheory/Monoidal/Transport.lean,test/CategoryTheory/Coherence.lean | 15 | 38 | ['eric-wieser', 'github-actions', 'grunweg', 'jcommelin', 'kim-em', 'leanprover-community-mathlib4-bot', 'yuma-mizuno'] | nobody | 1 year ago | unknown | unknown |
| 6328 | astrainfinita | chore: make some instance about `Sub...Class` lower priority | Many similar instances have been marked as lower priority. I'd like to see if this would make things faster. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra awaiting-CI | 14/14 | Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean,Mathlib/RingTheory/Subsemiring/Basic.lean,lean-toolchain | 3 | 1 | ['digama0'] | nobody | 1 year ago | unknown | unknown |
| 6330 | astrainfinita | chore: make some instance about `Sub...Class` higher priority than `Sub...` | The opposite direction to #6328. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra slow-typeclass-synthesis | 123/128 | Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/Subfield.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean,Mathlib/RingTheory/Polynomial/Quotient.lean,Mathlib/RingTheory/Subring/Basic.lean,Mathlib/RingTheory/Subsemiring/Basic.lean,lean-toolchain | 11 | 13 | ['astrainfinita', 'digama0', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 6403 | astrainfinita | chore: change instance priorities of `Ordered*` hierarchy | --- [](https://gitpod.io/from-referrer/) | t-algebra t-order merge-conflict slow-typeclass-synthesis awaiting-author | 253/79 | Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Field/Canonical/Defs.lean,Mathlib/Algebra/Order/Field/Defs.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Monoid/Basic.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Star.lean,Mathlib/Algebra/Order/WithZero.lean,Mathlib/Analysis/InnerProductSpace/Orientation.lean,Mathlib/LinearAlgebra/Orientation.lean,Mathlib/RingTheory/HahnSeries.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean | 18 | 39 | ['Vierkantor', 'astrainfinita', 'digama0', 'eric-wieser', 'j-loreaux', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 6491 | eric-wieser | chore(Mathlib/Algebra/Hom/GroupAction): add `SMulHomClass.comp_smul` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 24/10 | Mathlib/Algebra/Hom/GroupAction.lean | 1 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 7076 | grunweg | feat: define measure zero subsets of a manifold | A topological manifold has no canonical measure, but there is a canonical notion of measure zero subsets. We show that these are closed under subsets and countable unions (hence define a filter, the almost everywhere filter) and that a closed nowhere dense has empty interior. This is necessary for stating the general version of Sard's theorem (in finite dimensions), and a first step towards its proof. This code was written at LftCM 2023. Thanks for @fpvandoorn for mentoring me! :heart: --- Unresolved questions/looking for feedback - Is "measure zero" a good name or would "null set" be better? I tend towards the former, but welcome input from a measure theorist (which I'm not). - What is the correct definition? One could also define "measure zero" using any `IsOpenPosMeasure` on the charted space. I think all results in this file still hold then, but for applications (e.g., Sard's theorem), this might be too general. - define custom notation, similar to the a.e. filter on a measure space? (We could include $J$ instead of $\mu$.) - what's the right syntax for formulas in docstrings --- use LaTeX or backticks? I don't know how to preview the generated docs, the guidelines are a bit ambiguous for me. | merge-conflict WIP t-differential-geometry t-measure-probability | 165/0 | Mathlib.lean,Mathlib/Geometry/Manifold/MeasureZero.lean,docs/references.bib | 3 | 27 | ['ADedecker', 'github-actions', 'grunweg', 'mo271', 'sgouezel'] | ADedecker | 1 year ago | unknown | unknown |
| 3757 | thorimur | feat: config options for `fail_if_no_progress` | This PR creates config options for `fail_if_no_progress` that allow the user to tweak what exactly counts as "progress". This includes whether to use defeq or `BEq`, what transparency to use, and which parts of the goal and local context to check. It also splits off the comparison functionality into `Mathlib.Lean.Meta.Compare`, which provides fully configurable comparison functions for common complex metaprogramming types not specific to `fail_if_no_progress`. These types are `Expr`, `LocalDecl`, `LocalContext`, `MetavarDecl`, `MVarId`, and `List MVarId`. --- See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/progress.20on.20fail_if_no_progress) for a couple review questions. Status update: this PR is now basically done, save for some extra tests which should probably be included. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 603/54 | Mathlib.lean,Mathlib/Lean/Meta.lean,Mathlib/Lean/Meta/Compare.lean,Mathlib/Tactic/FailIfNoProgress.lean,test/fail_if_no_progress.lean | 5 | 38 | ['alexjbest', 'github-actions', 'joneugster', 'kim-em', 'thorimur'] | nobody | 1 year ago | unknown | unknown |
| 12353 | thorimur | feat: `conv%` | This PR introduces `conv% e => tac`, along with `simp%`, `norm_num%`, and `push_neg%`, which are defined in terms of `conv%`. It also introduces `conv%?` (and `simp%?`, `norm_num%?`, and `push_neg%?`) as shortcuts for `show_term ...`. This is a relatively straightforward refactor of code already present in the implementation of `#conv`, and otherwise relies entirely on simple macros. This PR also introduces some modifications to existing command syntax for `#conv`, `#simp`, and `#norm_num`: * The syntax for `#conv` was `#conv tac => e`; however, this is inconsistent with the tactic syntax, and so this has been flipped to `#conv e => tac`. Likewise, `conv%` uses the same (new) syntax `conv% e => tac`. * `#simp` and `#norm_num` separated their config and `only` syntax from the expression by an optional `=>` (for `#simp`) and an optional `:` (for `#norm_num`) (e.g. `#simp only [lem] => e`). These have both been replaced with an optional`on` (e.g. `#simp only [lem] on e`) which is also used for `simp%` and `norm_num%`. Although `#whnf` is implemented in terms of `#conv`, this PR doesn't introduce `whnf%` in the same way, as that's probably better off being implemented directly instead of through `conv`. --- WIP: needs tests. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 131/32 | Mathlib/Tactic/Conv.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/PushNeg.lean,docs/Conv/Guide.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 13852 | astrainfinita | perf: skip some typeclasses in TC search | --- - [ ] depends on: #7873 [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis blocked-by-other-PR | 45/33 | Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/RingTheory/Norm.lean | 3 | 21 | ['MichaelStollBayreuth', 'astrainfinita', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 7903 | urkud | feat: define `UnboundedSpace` | --- The new instances generate some timeouts, and I don't understand why. [](https://gitpod.io/from-referrer/) | merge-conflict help-wanted t-topology | 111/59 | Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Topology/Bornology/Basic.lean,Mathlib/Topology/Bornology/Constructions.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean | 6 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 15679 | adomani | test: refactor in CI | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 213/5 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,Mathlib.lean,Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/CategoryTheory/Bicategory/Adjunction.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/Order/Filter/Cocardinal.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/TestRefactor.lean,Refactor/Main.lean,lakefile.lean,lean-toolchain | 21 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 7565 | shuxuezhuyi | feat(Topology/Algebra/Order): extend homeomorphism of `Ioo` to `Icc` | We extend the homeomorphisms between open intervals to homeomorphisms between the closed intervals. --- - [ ] depends on: #7018 - [ ] depends on: #7351 - [ ] depends on: #7564 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology blocked-by-other-PR t-order | 389/5 | Mathlib.lean,Mathlib/Data/Set/Intervals/Image.lean,Mathlib/Order/Directed.lean,Mathlib/Topology/Algebra/Order/IccExtendFromIoo.lean,Mathlib/Topology/Algebra/Order/IntermediateValue.lean | 5 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 10629 | madvorak | feat: List.cons_sublist_append_iff_right | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 11/0 | Mathlib/Data/List/Basic.lean | 1 | 1 | ['eric-wieser'] | nobody | 1 year ago | unknown | unknown |
| 9973 | Ruben-VandeVelde | feat: polynomials formed by lists | From https://github.com/leanprover-community/mathlib/pull/15476 --- [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-data | 311/0 | Mathlib.lean,Mathlib/Data/Polynomial/OfList.lean | 2 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 12926 | joelriou | feat(CategoryTheory): the monoidal category structure induced by a monoidal functor | In this PR, given a monoidal functor `F : MonoidalFunctor C D`, we define a monoidal category structure on the category `InducedCategory D F.obj`, which has the "same" objects as `C`, but the morphisms between `X` and `Y` identify to `F.obj X ⟶ F.obj Y`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 105/0 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Induced.lean | 2 | 3 | ['eric-wieser', 'github-actions', 'joelriou'] | nobody | 1 year ago | unknown | unknown |
| 12869 | adomani | feat: linter and script for `theorem` vs `lemma` | This PR contains a linter for flagging doc-string-less `theorem`s, as well as a bash script that, once the linter ran on Mathlib, automatically replaces every linter-offending `theorem` by `lemma`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 106/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/ThmLemma.lean,scripts/thmLemma.sh | 4 | 13 | ['adomani', 'github-actions', 'grunweg', 'joneugster'] | nobody | 1 year ago | unknown | unknown |
| 14563 | awueth | feat: if-then-else of exclusive or statement | --- If `¬(P ∧ Q)` then `ite (P ∨ Q) a 1 = (ite P a 1) * (ite Q a 1)` [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 5/0 | Mathlib/Algebra/Group/Basic.lean | 1 | 3 | ['eric-wieser', 'github-actions', 'kim-em'] | nobody | 1 year ago | unknown | unknown |
| 14308 | grhkm21 | feat(Algebra/Category): Direct construction of colimits in algebraic categories | (Below I only write about colimits since that's what I'm familiar with after working on it the last few days, but maybe it's the same for other categorical constructions) **Main feature:** Construct colimits in `AddCommGrp`/`ModuleCat`/`FGModuleCat`(/...) directly as coequalizer (i.e. cokernel i.e. quotient) of two maps, allowing one to say $\coprod_j M_j \cong *$ Currently, if you look at how colimits are constructed for [AddCommGrp](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Algebra/Category/Grp/Colimits.lean#L69-L92), you see this massive block of code of all relations generating the quotient relation, but that's kind of bad, you can't say anything concretely about it. Also as noted in the TODOs of a few files: ``` TODO: In fact, in `ModuleCat R` there is a much nicer model of colimits as quotients of finitely supported functions, and we really should implement this as well. ``` I wrote it down [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Braided.20left.20rigid.20categories.20are.20right.20rigid/near/447490672), and **have formalised it** in a small file already [here](https://gist.github.com/grhkm21/5b2d938753c0ce0900d21c93a39e3b7d#file-addcommgrpcolimits-lean-L162-L163) (I also have a `ModuleCat` version, and proving existence of colimits in `FGModuleCat` from it). Usually I will try to merge the file into Mathlib directly (preferably in one sitting), but I have been trying for a while now and been struggling. One issue is I am struggling to understand universes, which I asked [here](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Universe.20constraints!/near/448049266) along with many other places. A more concrete issue is that - [ ] FGModuleCat (and `FullSubcategory` in general) requires morphism and objects to be on the same universe, whereas generally `Category.{v, u}` don't. So that seems to limit what I can express, and maybe I have to fix it first. Here are a few more TODOs just so I don't forget, probably done before the one above: - [ ] Generalise `cokernelIsoQuotient` to other categories. - [ ] Also prove `coproductIsoDirectSum` - [ ] Also prove coequalizer (f + h) (g + h) ~ coequalizer f g ~ cokernel (f - g) 0 - [ ] Fix typo `FGModuleCatCat` If anyone is familiar with universe stuff and can answer my many questions that'll be great too. I need help understanding just [these five lines](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Algebra/Category/Grp/Colimits.lean#L267-L271) | merge-conflict WIP t-algebra | 10/3 | Mathlib/Algebra/DirectSum/Module.lean,Mathlib/LinearAlgebra/FreeModule/Basic.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 13010 | ADedecker | feat: relax universe constraint in stoneCechExtend | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 33/3 | Mathlib/Topology/StoneCech.lean | 1 | 2 | ['ADedecker', 'erdOne'] | nobody | 1 year ago | unknown | unknown |
| 12411 | adomani | feat: more linting of cdots | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter | 953/617 | Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib.lean,Mathlib/Algebra/Category/GroupCat/Colimits.lean,Mathlib/Algebra/Homology/Exact.lean,Mathlib/Algebra/Homology/LocalCohomology.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Module/PID.lean,Mathlib/Algebra/Module/Submodule/Bilinear.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/Order/Archimedean.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean,Mathlib/Analysis/Calculus/LocalExtr/Basic.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/Normed/Group/Pointwise.lean,Mathlib/Analysis/NormedSpace/FiniteDimension.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean,Mathlib/Analysis/NormedSpace/Star/Basic.lean,Mathlib/Analysis/NormedSpace/Star/Multiplier.lean,Mathlib/Analysis/NormedSpace/lpSpace.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/CategoryTheory/Abelian/Basic.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean,Mathlib/CategoryTheory/Category/Cat/Limit.lean,Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/CategoryTheory/Category/TwoP.lean,Mathlib/CategoryTheory/Closed/Cartesian.lean,Mathlib/CategoryTheory/Functor/Flat.lean,Mathlib/CategoryTheory/Galois/GaloisObjects.lean,Mathlib/CategoryTheory/Limits/Over.lean,Mathlib/CategoryTheory/Limits/VanKampen.lean,Mathlib/CategoryTheory/Localization/Predicate.lean,Mathlib/CategoryTheory/Monad/Coequalizer.lean,Mathlib/CategoryTheory/Monad/Monadicity.lean,Mathlib/CategoryTheory/Pi/Basic.lean,Mathlib/CategoryTheory/Sites/DenseSubsite.lean,Mathlib/CategoryTheory/Sites/InducedTopology.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean,Mathlib/Combinatorics/HalesJewett.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/Holor.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Nat/Pairing.lean,Mathlib/Data/Real/Cardinality.lean,Mathlib/Data/Real/Hyperreal.lean,Mathlib/Data/Real/Irrational.lean,Mathlib/Data/Set/Card.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/FieldTheory/Finite/Polynomial.lean,Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/FieldTheory/RatFunc.lean,Mathlib/Geometry/RingedSpace/OpenImmersion.lean,Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/GroupTheory/SpecificGroups/Quaternion.lean,Mathlib/GroupTheory/Sylow.lean,Mathlib/LinearAlgebra/Dimension/RankNullity.lean,Mathlib/LinearAlgebra/Dual.lean,Mathlib/LinearAlgebra/LinearIndependent.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean,Mathlib/LinearAlgebra/Prod.lean,Mathlib/LinearAlgebra/QuadraticForm/Complex.lean,Mathlib/LinearAlgebra/Reflection.lean,Mathlib/MeasureTheory/Constructions/Pi.lean,Mathlib/MeasureTheory/Covering/VitaliFamily.lean,Mathlib/MeasureTheory/Measure/Haar/Basic.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/Typeclasses.lean,Mathlib/MeasureTheory/OuterMeasure/Basic.lean,Mathlib/ModelTheory/Skolem.lean,Mathlib/NumberTheory/Dioph.lean,Mathlib/NumberTheory/LegendreSymbol/Basic.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/Padics/RingHoms.lean,Mathlib/NumberTheory/RamificationInertia.lean,Mathlib/RingTheory/AdjoinRoot.lean | 147 | 2 | ['adomani', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 12279 | casavaca | WIP: feat: Holder's inequality n-ary | --- - [x] depends on #12291 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 129/0 | Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean | 2 | 13 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 12093 | ADedecker | feat: tweak the definition of semicontinuity to behave better in nonlinear orders | Summary of the changes: - change definitions to make [lowerSemicontinuous_iff_isClosed_preimage](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Semicontinuous.html#lowerSemicontinuous_iff_isClosed_preimage) true without assuming `LinearOrder`, so that semicontinuity corresponds to continuity for lower/upper order topology on the codomain. See discussion on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Semicontinuity.20definition.20for.20non-linear.20orders/near/432898278) - add new `iff` lemmas for unfolding the definition - add `iff` lemmas with the old definition in the linearly ordered case - some basic lemmas need to be changed in an easy way - minimize assumptions for continuity => semicontinuity - prove the semicontinuity criterion for indicators using "preimage of Ici/Iic" instead of a direct proof, because the proof is more natural (especially because we have no `filter_upwards` for `Frequently`) - in the rest of the file (which is about linear orders anyway), we don't touch the statements and just rewrite to the old definition. Some of these could be generalized, but we keep that for a later PR. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology | 274/130 | Mathlib/Analysis/BoundedVariation.lean,Mathlib/MeasureTheory/Integral/FundThmCalculus.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Topology/Semicontinuous.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 11520 | thorimur | feat: `linting_rules` and deprecated syntax | --- Experimental. WIP. Might not be performance-viable. - [ ] depends on: #11519 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-meta | 1016/0 | Mathlib.lean,Mathlib/Command/Linter.lean,Mathlib/Command/Linter/Deprecated.lean,Mathlib/Command/Linter/LintingRules.lean,Mathlib/Command/SyntaxRules.lean,Mathlib/Command/SyntaxRules/Attr.lean,Mathlib/Command/SyntaxRules/Elab.lean,Mathlib/Command/SyntaxRules/Header.lean,Mathlib/Command/SyntaxRules/Util.lean,Mathlib/Tactic/Common.lean,scripts/noshake.json | 11 | 11 | ['leanprover-bot', 'leanprover-community-mathlib4-bot', 'thorimur'] | nobody | 1 year ago | unknown | unknown |
| 11519 | thorimur | feat: `syntax_rules` | --- Experimental. WIP. [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 485/0 | Mathlib.lean,Mathlib/Command/SyntaxRules.lean,Mathlib/Command/SyntaxRules/Attr.lean,Mathlib/Command/SyntaxRules/Elab.lean,Mathlib/Command/SyntaxRules/Header.lean,Mathlib/Command/SyntaxRules/Util.lean,scripts/noshake.json | 7 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 11393 | mcdoll | feat(Analysis/Distribution/SchwartzSpace): The Heine-Borel property | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 688/3 | Mathlib.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/UniformSpace/Ascoli.lean,Mathlib/Topology/UniformSpace/Pi.lean,Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean | 6 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 9444 | erdOne | feat: Various instances regarding `𝓞 K`. | --- [](https://gitpod.io/from-referrer/) | merge-conflict help-wanted t-number-theory | 27/0 | Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/RingTheory/IntegralClosure.lean | 2 | 9 | ['erdOne', 'leanprover-bot', 'mattrobball', 'riccardobrasca', 'xroblot'] | nobody | 1 year ago | unknown | unknown |
| 8931 | hmonroe | feat(Computable): define P, NP, and NP-complete | Revised to focus on languages that are binary strings, given the issue of non-acceptable encodings of unspecified Types --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author | 381/5 | Mathlib.lean,Mathlib/Computability/Complexity copy.lean,Mathlib/Computability/Complexity.lean,Mathlib/Computability/Encoding.lean,Mathlib/Computability/TMComputable.lean,Mathlib/Computability/TuringMachine.lean,Mathlib/Computability/halting example.lean,docs/references.bib | 8 | 3 | ['fpvandoorn', 'github-actions', 'hmonroe'] | nobody | 1 year ago | unknown | unknown |
| 10641 | newell | feat(Topology/MetricSpace/WellSpaced): Define sets that are *well-spaced*. | Create a new file `Mathlib.Topology.MetricSpace.WellSpaced` that contains definitions of sets which are in some sense *well-spaced*. Some examples are Delone and Meyer sets, which find applications in Quasicrystals and Coding Theory, among others. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 1073/14 | Mathlib.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Topology/EMetricSpace/Basic.lean,Mathlib/Topology/GMetric/Basic.lean,Mathlib/Topology/GMetric/GInfSep.lean,Mathlib/Topology/GMetric/WellSpaced.lean,Mathlib/Topology/GPseudoMetric/Basic.lean,Mathlib/Topology/MetricSpace/WellSpaced.lean | 8 | 1 | ['edegeltje'] | nobody | 1 year ago | unknown | unknown |
| 10387 | adomani | feat(Tactic/ComputeDegree): add `polynomial` tactic | Introducing the `polynomial` tactic, summing up `compute_degree, monicity` and adding support for `leadingCoeff`. This is more of a proof of concept: if there is interest in this tactic, I can polish it up. See [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Compute.20roots.20of.20polynomials/near/420713624). --- [](https://gitpod.io/from-referrer/) | WIP RFC t-meta | 24/0 | Mathlib/Tactic/ComputeDegree.lean | 1 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 9154 | astrainfinita | feat: `npow` / `nsmul` / `Nat.cast`/ `zpow` / `zsmul` implemented using `Nat.binaryRec` | --- - [ ] depends on: https://github.com/leanprover/lean4/pull/3756 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra blocked-by-other-PR | 168/359 | Mathlib/Algebra/Group/Defs.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/Primrec.lean,Mathlib/Data/Bool/Basic.lean,Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Digits.lean,Mathlib/Data/Nat/EvenOddRec.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Nat/Order/Basic.lean,Mathlib/Data/Nat/Parity.lean,Mathlib/Data/Nat/Size.lean,Mathlib/Data/Num/Lemmas.lean,Mathlib/Init/Data/Nat/Bitwise.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/Denumerable.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Logic/Equiv/Nat.lean,lake-manifest.json,lakefile.lean,test/zmod.lean | 25 | 7 | ['astrainfinita', 'eric-wieser', 'kim-em', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 6603 | tydeu | feat: automatically try `cache get` before build | --- A quick proof-of-concept. With this, `lake build` will always try `cache get` before building mathlib. [](https://gitpod.io/from-referrer/) | merge-conflict WIP CI | 29/0 | lakefile.lean | 1 | 3 | ['kim-em', 'tydeu'] | nobody | 1 year ago | unknown | unknown |
| 6058 | apurvnakade | feat: duality theory for cone programs | This PR tracks the development of duality theory for cone programs. [Reference](https://ti.inf.ethz.ch/ew/courses/ApproxSDP09/notes/conelp.pdf) --- [](https://gitpod.io/from-referrer/) - [x] depends on: #6059 - [ ] define direct sum of cones - [ ] weak duality - [ ] regular duality - [ ] slater condition - [ ] strong duality | merge-conflict WIP t-analysis | 159/0 | Mathlib.lean,Mathlib/Analysis/Convex/Cone/ConeLinearProgram.lean | 2 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 6449 | ADedecker | feat: functions with finite fibers | --- This has been discussed before on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/.E2.9C.94.20Cofinite.20maps.3F) and it came up again while working with @kkytola's student. As explained in the docstring, we could absolutely just use `Tendsto f cofinite cofinite` all the time, but (1) we lack some API for it (2) the API is nicer to setup if we have a separate def (e.g for dot notation) and (3) mentioning filters for such a simple concept is really not beginner-friendly. I'm not sure at all about the name. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 203/0 | Mathlib.lean,Mathlib/Logic/Function/HasFiniteFibers.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Cofinite.lean | 4 | 14 | ['ADedecker', 'YaelDillies', 'alexjbest', 'kkytola'] | nobody | 1 year ago | unknown | unknown |
| 8100 | digama0 | feat: add support for other types in norm_num | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 177/12 | Mathlib/Tactic/NormNum/Basic.lean,Mathlib/Tactic/NormNum/Eq.lean,Mathlib/Tactic/NormNum/Ineq.lean,Mathlib/Tactic/NormNum/Pow.lean,Mathlib/Tactic/NormNum/Result.lean,Mathlib/Tactic/NormNum/Structural.lean,test/norm_num.lean | 7 | 4 | ['dwrensha'] | nobody | 1 year ago | unknown | unknown |
| 13163 | erdOne | feat(.vscode/module-docstring.code-snippet): Prevent auto-complete from firing on `do` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 5/0 | .vscode/module-docstring.code-snippets | 1 | 5 | ['erdOne', 'grunweg', 'robertylewis', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 15585 | astrainfinita | test make `HasQuotient.quotient'` reducible | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 8/1 | Mathlib/Algebra/Quotient.lean,Mathlib/GroupTheory/Coset.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 15586 | astrainfinita | test make `HasQuotient` out put a `setoid` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 22/36 | Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Lie/Weights/Basic.lean,Mathlib/Algebra/Quotient.lean,Mathlib/Analysis/Normed/Group/AddCircle.lean,Mathlib/GroupTheory/Commensurable.lean,Mathlib/GroupTheory/Coset.lean,Mathlib/GroupTheory/CosetCover.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/QuotientGroup.lean,Mathlib/LinearAlgebra/Quotient.lean,Mathlib/RingTheory/Ideal/Quotient.lean,Mathlib/Topology/Algebra/UniformRing.lean | 14 | 5 | ['astrainfinita', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 13791 | digama0 | refactor: Primrec and Partrec | General cleanup of the `Primrec` and `Partrec` files, to better adjust to lean 4 things. The main user-visible change is that `Primrec₂` is no longer a `def` but an `abbrev`, because it was causing inference issues in lean 4. I also removed all the nonterminal `simp`s in `PartrecCode.lean`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability tech debt | 585/778 | Mathlib/Computability/Ackermann.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/Primrec.lean | 5 | 2 | ['github-actions', 'grunweg'] | nobody | 1 year ago | unknown | unknown |
| 11964 | adamtopaz | feat: The functor of points of a scheme | We construct the functor of points functor, and prove that it's full and faithful. --- - [ ] depends on: #11947 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-geometry t-category-theory | 210/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/FunctorOfPoints.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean | 3 | 4 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 12418 | rosborn | style: replace preimage_val with ↓∩ notation | --- This is a rough draft of what the new `↓∩` notation would look like within mathlib. I believe this is an improvement in clarity and would like to have `↓∩` as a standard notation (along with `''`, `⁻¹'`, `↑`, etc...). As `↓∩` is specialized for `Set`s, I have only changed `preimage_val` when the left-hand side of `↓∩` is a `Set`. The introduction of the `↓∩` notation to Data.Set.Image is temporary as it isn't possible to import Data.Set.Subset directly. If we want `↓∩` unscoped, where would be the best place to define it? An option is Data.Set.Defs, but the notation cannot be defined without additional imports as the file does not import `notation3`. [](https://gitpod.io/from-referrer/) | merge-conflict | 56/61 | Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Data/Set/Function.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Set/Subset.lean,Mathlib/MeasureTheory/Constructions/Polish.lean,Mathlib/MeasureTheory/MeasurableSpace/Basic.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Clopen.lean,Mathlib/Topology/Connected/Basic.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/LocalAtTarget.lean,Mathlib/Topology/LocallyConstant/Basic.lean,Mathlib/Topology/Separation.lean,Mathlib/Topology/Sober.lean | 18 | 3 | ['grunweg', 'rosborn'] | nobody | 1 year ago | unknown | unknown |
| 9978 | astrainfinita | chore(FieldTheory/KummerExtension): move some lemmas earlier | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 197/177 | Mathlib.lean,Mathlib/Data/Polynomial/FieldDivision.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Polynomial/Irreducible.lean | 5 | 5 | ['alreadydone', 'grunweg', 'riccardobrasca'] | nobody | 1 year ago | unknown | unknown |
| 12429 | adomani | feat: toND -- auto-generating natDegree | This is an experiment to automatically translate theorems about `degree` to theorems about `natDegree`. --- [](https://gitpod.io/from-referrer/) | t-algebra RFC merge-conflict awaiting-author t-meta | 167/132 | Mathlib.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean,Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Algebra/Polynomial/HasseDeriv.lean,Mathlib/Algebra/Polynomial/Inductions.lean,Mathlib/Algebra/Polynomial/Mirror.lean,Mathlib/Algebra/Polynomial/Reverse.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ToNatDegree.lean,scripts/noshake.json | 11 | 2 | ['adomani', 'grunweg'] | nobody | 1 year ago | unknown | unknown |
| 15823 | eric-wieser | Quotients of rings in model theory | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-logic | 55/13 | Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean,Mathlib/ModelTheory/Syntax.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 12178 | joneugster | feat(Data/Matrix/Basic): add notation for `m×n`-Matrices | Introduce the notation `Mat[m,n][R]` for `Matrix (Fin m) (Fin n) R`. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Why.20does.20.60Matrix.2Erow.60.20use.20.20.60Unit.60.20instead.20of.20.60Fin.201.60.3F/near/427949223) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 139/135 | Mathlib/Algebra/Lie/CartanMatrix.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Data/Matrix/Basic.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Data/Matrix/Rank.lean,Mathlib/Data/Matrix/Reflection.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/LinearAlgebra/Matrix/Adjugate.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean,Mathlib/LinearAlgebra/Matrix/Determinant.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Matrix/Trace.lean,Mathlib/LinearAlgebra/Matrix/Transvection.lean,Mathlib/LinearAlgebra/PID.lean,Mathlib/LinearAlgebra/Vandermonde.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean,Mathlib/NumberTheory/ModularForms/SlashActions.lean,Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean,Mathlib/NumberTheory/RamificationInertia.lean,Mathlib/RingTheory/SimpleModule.lean,test/matrix.lean | 22 | 9 | ['YaelDillies', 'eric-wieser', 'grunweg', 'joneugster'] | nobody | 1 year ago | unknown | unknown |
| 12751 | Command-Master | feat: add lemmas for Nat/Bits, Nat/Bitwise and Nat/Size | Remove `@[simp]` from `Nat.bit_false` and `Nat.bit_true`, as `bit0` and `bit1` are deprecated, and add some lemmas to `Bits`, `Bitwise` and `Size`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 66/7 | Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Nat/Size.lean | 4 | 26 | ['Command-Master', 'Rida-Hamadani', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'jcommelin'] | nobody | 1 year ago | unknown | unknown |
| 15448 | urkud | chore(*): deprecate `Option.elim'` | Use `Option.elim` instead. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author tech debt | 54/50 | Mathlib/Algebra/BigOperators/Option.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/Calculus/LagrangeMultipliers.lean,Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/TMToPartrec.lean,Mathlib/Data/Option/Defs.lean,Mathlib/LinearAlgebra/Basis.lean,Mathlib/Logic/Embedding/Set.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/NumberTheory/Dioph.lean,Mathlib/Topology/Compactness/Paracompact.lean,Mathlib/Topology/LocallyFinite.lean | 17 | 12 | ['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'grunweg', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 10350 | Shamrock-Frost | feat(Data/Setoid): add the operations of taking the equivalence class of an element and of saturating a set wrt an equivalence relation | I'm open to suggestions about changing the name "saturate", someone on zulip rightly pointed out this is a very overloaded term in math. That said, I think it's unlikely to cause confusion and that there's only one reasonable interpretation in the context of setoids. --- - [x] depends on: #10347 - [x] depends on: #10348 [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 169/3 | Mathlib/Data/Setoid/Basic.lean,Mathlib/Data/Setoid/Partition.lean,Mathlib/Order/Closure.lean | 3 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 13573 | Shamrock-Frost | feat: add multivariate polynomial modules | Add a type synonym for multivariate polynomials with coefficients in a module. --- Multivariate polynomials with module coefficients are sort of silly, but they sometimes show up in commutative algebra (eg in the definition of a quasi regular sequence). Writing this code involved a lot of copy and pasting from `PolynomialModule` and `MvPolynomial`. The API is definitely lacking at this stage but it's a start. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 691/6 | Mathlib.lean,Mathlib/Algebra/MvPolynomial/Module/Basic.lean,Mathlib/Algebra/MvPolynomial/Module/MvAEval.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean | 4 | 9 | ['Shamrock-Frost', 'erdOne', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 6517 | MohanadAhmed | feat: discrete Fourier transform of a finite sequence | # Discrete Fourier Transform (DFT) Matrix and DFT of a (finite) sequence This file defines the `dft` opertaion on a sequence (also a vecotr) and the DFT operation matrix ## Main definitions - `dft v`: given a sequence (v : (Fin n) → ℂ) we can transform it into a sequence (V : (Fin n) →ℂ) such that $$V [p] = ∑_{k = 0}^{N - 1} e^{-j*2πkp/n} v [k]$$ - `idft V` : given a sequence (V : (Fin n) → ℂ) we can transform it into a sequence (v : (Fin n) → ℂ) such that $$v [k] = \frac{1}{N}∑_{p = 0}^{n - 1} e^{j*2πkp/N} v [p]$$ - `dftMatrix n` : the dft matrix of dimensions $n \times n$ with the `k, p` entry equal to $$Wₙ[k, p] = e^{-j2πkp/n}$$ - `(dftMatrix n)⁻¹` : the idft matrix of dimensions $n \times n$ with the `k, p` entry equal to $$Wₙ[k, p] = (1/N) e^{j2πkp/n}$$ ## Main results - `dft v = (dftMatrix n) v` : the dft operation on a sequence is the same as the dft matrix applied to the vector - `idft V = (dftMatrix n)⁻¹ V` : the idft operation on a sequence is the same as the idft matrix applied to the vector - `dft (idft v) = dft ( idft v) = v` the dft and idft operations are inverses - `Wₙ = vandermonde (w)` : the dft matrix is vandermonde with `w` being the first row of the dft matrix - `circulant t = (dftMatrix n)⁻¹ ⬝ diagonal (dft t) ⬝ (dftMatrix n)` : a circulant matrix is diagonalizable by the dft and idft matrix pair. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 294/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/DFT.lean | 2 | 26 | ['MohanadAhmed', 'ericrbg'] | nobody | 1 year ago | unknown | unknown |
| 13155 | alreadydone | feat(NumberTheory/EllipticDivisibilitySequence): show elliptic relations follow from even-odd recursion | This PR is centered around the (generalized) elliptic relations (`rel₄`) $E(a,b,c,d): W_{a+b}W_{a-b}W_{c+d}W_{c-d}=W_{a+c}W_{a-c}W_{b+d}W_{b-d}-W_{a+d}W_{a-d}W_{b+c}W_{b-c}$. For an integer-indexed sequence W valued in a commutative ring, the relation makes sense only when a,b,c,d are all integers or all half integers. For convenience of formalization, we instead consider integers a,b,c,d of the same parity and divide all subscripts by 2. We extract the subexpression $W_{(a+b)/2}W_{(a-b)/2}$ (which appear six times) as `addMulSub W a b`. The collection of all $E(a,b,c,d)$ is equivalent to Stange's axiom for elliptic nets (`net`), and the literature (e.g. Silverman) commonly consider only the three-index special case $E(m,n,r,0)$ (`Rel₃`). Important special cases of these relations are (i) $E(m+1,m,1,0): W_{2m+1}W_1^3=W_{m+2}W_m^3-W_{m+1}^3 W_{m-1}$ (`oddRec`) and (ii) $E(m+1,m-1,1,0): W_{2m}W_2 W_1^2=W_m(W_{m+2}W_{m-1}^2-W_{m-2}W_{m+1}^2)$ (`evenRec`), which suffice to uniquely specify $W$ on all positive integers recursively from four initial values $W_1, W_2, W_3, W_4$ (`IsEllSequence.ext`, if $W_1 W_2$ is not a zero divisor). In the usual setting where $W_1=1$ and $W_2\mid W_4$, there does exist a sequence (`normEDS`) satisfying (i) and (ii) given initial values $W_2, W_3$ and $W_4/W_2$. It turns out the same non-zerodivisor condition also guarantees that W is an odd function with $W_0=0$, which naturally extends W to all integers. The main result of this PR (`rel₄_of_oddRec_evenRec`, `IsEllSequence.of_oddRec_evenRec`) is a purely algebraic proof that the sequence W defined by the single-parameter elliptic relations (i) and (ii) implies all $E(a,b,c,d)$, based on my original argument first published on [Math.SE](https://math.stackexchange.com/a/4903422/12932). It's based on the observation that a nonzerodivisor-multiple of $E(a,b,c,d)$ can be expressed as a linear combination of various $E(a,b,c_\min,d_\min)$ with the two smallest indices fixed at their minimal possible values, which can be transformed (`transf`) to an elliptic relation with smaller `a` (which can be assumed to hold by induction), unless they are of the form (i) or (ii) which hold by assumption. For this argument it's necessary to assume `a > b > c > d ≥ 0` (see `StrictAnti₄` and `Rel₄OfValid`), but it's easy to extend to arbitrary a,b,c,d by symmetry properties of `rel₄` under negation and permutations of indices. In the subsequent PR #13057, we show all normalized EDSs (`normEDS`), defined using the even-odd recursion (i)-(ii), are elliptic (i.e. satisfy the elliptic relations) divisibility sequences. This PR doesn't directly apply because a normEDS doesn't always satisfy the nonzerodivisor condition, but they are specializations of the universal normEDS, which does satisfy the condition. The technique of reducing to the universal case will be applied many times, and relies on the naturality (`map`) lemmas. We also change the `ℕ` in the definition `IsDivSequence` to `ℤ` which is more natural given that W is a `ℤ`-indexed sequence. --- - [x] depends on: #13153 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-number-theory | 565/12 | Mathlib/NumberTheory/EllipticDivisibilitySequence.lean | 1 | 55 | ['Multramate', 'alreadydone', 'github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 15600 | adomani | feat: lint also `let` vs `have` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter | 77/26 | Mathlib/Tactic/Linter/HaveLetLinter.lean,test/HaveLetLinter.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 16253 | Shreyas4991 | feat: Basics of Discrete Fair Division in Mathlib | This PR adds the basics of discrete fair division in mathlib. We include the definitions of allocations, valuations, properties of valuations, and the following notions : Envy-Freeness (EF), Envy-Freeness upto 1 good (EF1), and envy freeness upto any good (EFX). We also include the various implications between these notions. --- [](https://gitpod.io/from-referrer/) | WIP awaiting-author | 144/0 | Mathlib/GameTheory/FairDivision/Discrete/Basic.lean | 1 | 9 | ['Shreyas4991', 'eric-wieser', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 13970 | adomani | feat: a linter to flag unnecessary uses of `nolint simpNF` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 230/0 | Mathlib.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/Quaternion.lean,Mathlib/CategoryTheory/Comma/Arrow.lean,Mathlib/CategoryTheory/Monoidal/End.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean,Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/UnnecessarySyntax.lean,test/UnnecessarySyntax.lean | 13 | 4 | ['adomani', 'github-actions', 'grunweg', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 15162 | adomani | feat: checkAsSorry linter | A very preliminary version of the `checkAsSorry` linter. It flags declarations whose type is not equal to the 'asSorry'ed one. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Running.20Mathlib.20under.20.60set_option.20debug.2EbyAsSorry.60) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter | 119/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/CheckAsSorry.lean,test/CheckAsSorry.lean | 4 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 14669 | Command-Master | feat(Data/Nat/PartENat): add lemmas for PartENat | Add some missing lemmas for `PartENat`, as well as the additive homomorphism from it to `WithTop Int`. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data new-contributor | 90/0 | Mathlib/Data/Nat/PartENat.lean | 1 | 3 | ['erdOne', 'github-actions', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 15121 | Eloitor | feat: iff theorems for IsSplitEpi and IsSplitMono in opposite category | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-category-theory new-contributor | 40/0 | Mathlib/CategoryTheory/EpiMono.lean | 1 | 3 | ['github-actions', 'joelriou', 'mattrobball'] | nobody | 1 year ago | unknown | unknown |
| 15895 | madvorak | feat(Computability/ContextFreeGrammar): mapping between two types of nonterminal symbols | --- [](https://gitpod.io/from-referrer/) | t-computability WIP | 172/0 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 43 | ['YaelDillies', 'github-actions', 'madvorak'] | nobody | 1 year ago | unknown | unknown |
| 14038 | adomani | test/decl diff in lean dev | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 231/2 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,.github/workflows/mk_build_yml.sh,Mathlib/Tactic/Eval.lean,scripts/decls_diff_hybrid.sh,scripts/list_decls.lean | 8 | 3 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 14046 | adomani | test: diff of declarations in lean | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 231/2 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,.github/workflows/mk_build_yml.sh,Mathlib/Tactic/Eval.lean,scripts/decls_diff_hybrid.sh,scripts/list_decls.lean | 8 | 2 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 12107 | yuma-mizuno | feat(Mathlib/Tactic/Widget/StringDiagram): support 2-morphisms in bicategories | --- - [x] depends on: #11080 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory t-meta | 1158/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Coherence.lean,Mathlib/Tactic/Widget/StringDiagram.lean,scripts/noshake.json,test/StringDiagram.lean,widget/src/penrose/monoidal.dsl,widget/src/penrose/monoidal.sty | 8 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 15925 | yuma-mizuno | feat(CategoryTheory/Monoida): proof producing coherence tactic | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory t-meta | 5018/265 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Adjunction.lean,Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean,Mathlib/CategoryTheory/Monoidal/Opposite.lean,Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean,Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/BicategoricalComp.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Normalize.lean,Mathlib/Tactic/CategoryTheory/Bicategory/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/Coherence.lean,Mathlib/Tactic/CategoryTheory/Coherence/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/CoherenceNew.lean,Mathlib/Tactic/CategoryTheory/Monoidal.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Basic.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/MonoidalComp.lean,Mathlib/Tactic/Widget/StringDiagram.lean,lake-manifest.json,scripts/noshake.json,test/CategoryTheory/Bicategory.lean,test/CategoryTheory/Coherence.lean,test/CategoryTheory/CoherenceNew.lean,test/CategoryTheory/Monoidal.lean,test/CategoryTheory/Monoidal/Basic.lean,test/CategoryTheory/Monoidal/Normalize.lean,test/CategoryTheory/MonoidalComp.lean,test/StringDiagram.lean | 35 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 7861 | shuxuezhuyi | feat(Geometry/Hyperbolic/UpperHalfPlane): instance IsometricSMul PSL(2, ℝ) ℍ | --- - [ ] depends on: #7835 - [ ] depends on: #7791 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-euclidean-geometry | 98/0 | Mathlib.lean,Mathlib/Geometry/Hyperbolic/UpperHalfPlane/Basic.lean,Mathlib/LinearAlgebra/Matrix/ProjectiveSpecialLinearGroup.lean | 3 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 16570 | yuma-mizuno | chore(Tactic/CategoryTheory): change `TermElabM` to `MetaM` | Separated from #15335. To use `Qq`, we need to modify `Qq` to support universe matching. See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2315335.20meta.20code.20for.20monoidal.20categories). --- - [ ] depends on: #15335 [](https://gitpod.io/from-referrer/) | WIP t-meta | 26/15 | Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean,Mathlib/Tactic/CategoryTheory/Coherence.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mergify'] | nobody | 1 year ago | unknown | unknown |
| 6475 | joneugster | refactor(LinearAlgebra/Span): replace ∙ with • as notation for `span R {x}` | Change the notation for `Submodule.span R {x}` from `R ∙ x` to the bullet `R • x`, which is also used for scalar multiplication. --- (this was an experiment originating from a [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.2E.C2.B7.E2.AC.9D.20.5Brant.5D), I don't have a clear opinion if this is actually a desired thing to do...) Generally this works and Lean seems to do fine figuring out the difference between `r • x` and `R • x` (The former is scalar multiplication in an `R`-module `M`, the latter is the `Submodule R M` generated by `x`). Encountered a few regressions that should be considered (the first two might be also bugs that could be looked at independently): 1. `(· • ·)`, and general simple function syntax, does not work as notation for `HSMul.hSMul` anymore. For this reason, I introduced the notation `scoped` to minimise the effect of this. Now it's only a problem if you `open Span`. Note that `fun x₁ x₂ ↦ x₁ • x₂` works flawlessly all the time. 4. `change` and `convert` have troubles to deal with the two competing notations. `have := _; convert this` works. 5. `R • x - y` is not valid anymore and needs parentheses: `R • (x - y)`. I do think this actually helps readability, so I don't mind. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra RFC | 323/240 | Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Lie/Engel.lean,Mathlib/Algebra/Lie/Normalizer.lean,Mathlib/Algebra/Module/PID.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/Orthogonal.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Analysis/InnerProductSpace/TwoDim.lean,Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean,Mathlib/Analysis/NormedSpace/OperatorNorm.lean,Mathlib/Data/ZMod/Quotient.lean,Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean,Mathlib/Geometry/Euclidean/Inversion/Calculus.lean,Mathlib/Geometry/Euclidean/MongePoint.lean,Mathlib/Geometry/Euclidean/PerpBisector.lean,Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean,Mathlib/LinearAlgebra/BilinearForm.lean,Mathlib/LinearAlgebra/DFinsupp.lean,Mathlib/LinearAlgebra/Dimension.lean,Mathlib/LinearAlgebra/FiniteDimensional.lean,Mathlib/LinearAlgebra/LinearIndependent.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/LinearAlgebra/ProjectiveSpace/Basic.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/Quotient.lean,Mathlib/LinearAlgebra/SesquilinearForm.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/MeasureTheory/Integral/Periodic.lean,Mathlib/RingTheory/Coprime/Ideal.lean,Mathlib/RingTheory/Finiteness.lean,Mathlib/RingTheory/Ideal/AssociatedPrime.lean,Mathlib/RingTheory/Ideal/IdempotentFG.lean,Mathlib/RingTheory/Noetherian.lean,Mathlib/Topology/Instances/AddCircle.lean | 42 | 3 | ['eric-wieser', 'joneugster', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 10591 | adri326 | feat(Topology/Algebra/ConstMulAction): properties of continuous actions in Hausdorff spaces | Defines some useful properties of `ContinuousConstSMul` group actions on Hausdorff spaces: - `MulAction.isClosed_fixedBy`, which proves that the `fixedBy α m` set is closed - `t2_separation_smul`, which constructs an open set `s` such that `s` and `g • s` are disjoint - `Set.InjOn.t2_separation_smul`, the extension of `t2_separation_smul` to a set of group elements whose action is injective --- This PR belongs my series of PR around the formalization of Rubin's theorem. `MulAction.isClosed_fixedBy` is used in several places along the proof, and the separation lemmas are primarily used in showing that `(fixedBy α g)ᶜ` and `(fixedBy α h)ᶜ` are disjoint under some intricate but fully group-theoretic condition. [](https://gitpod.io/from-referrer/) | t-topology awaiting-author t-algebra | 57/0 | Mathlib/Topology/Algebra/ConstMulAction.lean | 1 | 9 | ['ADedecker', 'adri326', 'j-loreaux', 'jcommelin'] | ADedecker | 1 year ago | unknown | unknown |
| 7545 | shuxuezhuyi | feat: APIs of `Function.extend f g e'` when `f` is injective | We characterizes `range g`, `Injective g`, `Surjective g` and `Bijective g` in terms of `extend f g e'`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 50/0 | Mathlib.lean,Mathlib/Logic/Function/ApiForExtend.lean | 2 | 1 | ['fpvandoorn'] | nobody | 1 year ago | unknown | unknown |
| 16658 | adomani | add tips file | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author test-ci | 51/508 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,scripts/Tips.lean | 5 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 14078 | Ruben-VandeVelde | feat(CI): continue after mk_all fails | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author CI | 43/0 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,Mathlib/Data/Nat/Test.lean | 5 | 2 | ['bryangingechen', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 11283 | hmonroe | feat(ModelTheory/Satisfiability): define theory with independent sentence | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-logic | 8/0 | Mathlib/ModelTheory/Satisfiability.lean | 1 | 2 | ['fpvandoorn', 'hmonroe'] | nobody | 1 year ago | unknown | unknown |
| 16914 | siddhartha-gadgil | Loogle syntax with non-reserved | This is PR mainly to test that loogle syntax does not break stuff downstream --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 4/4 | lake-manifest.json,lakefile.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 13782 | alreadydone | feat(EllipticCurve): ZSMul formula in terms of division polynomials | The formula $[n]P = (\phi_n(x,y) : \omega_n(x,y) : \psi_n(x,y))$ in Jacobian coordinates for $P=(x,y)$ a nonsingular point on a Weierstrass/elliptic curve. --- - [x] depends on: #12883 - [x] depends on: #13399 - [ ] depends on: #13057 - [ ] depends on: #13155 - [x] depends on: #13845 - [x] depends on: #13846 - [ ] depends on: #13847 [](https://gitpod.io/from-referrer/) | t-algebra t-number-theory blocked-by-other-PR merge-conflict t-algebraic-geometry | 2462/232 | Mathlib.lean,Mathlib/Algebra/MvPolynomial/PDeriv.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/ZSMul.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Universal.lean,Mathlib/NumberTheory/EllipticDivisibilitySequence.lean | 10 | 8 | ['Multramate', 'alreadydone', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8118 | iwilare | feat(CategoryTheory): add dinatural transformations | A starting point to define [dinatural transformations](https://ncatlab.org/nlab/show/dinatural+transformation). This is my first PR so style comments and improvements are very welcome! --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 147/7 | Mathlib.lean,Mathlib/CategoryTheory/DinatTrans.lean,Mathlib/CategoryTheory/Functor/Category.lean,Mathlib/CategoryTheory/Products/Bifunctor.lean | 4 | 49 | ['Shamrock-Frost', 'github-actions', 'iwilare', 'joelriou'] | Shamrock-Frost | 1 year ago | unknown | unknown |
| 14242 | js2357 | feat: Prove equivalence of `isDedekindDomain` and `isDedekindDomainDvr` | Prove that `isDedekindDomainDvr` is equivalent to both `isDedekindDomain` and `isDedekindDomainInv`. Specifically, prove `isDedekindDomainDvr A → isDedekindDomainInv A`, because `isDedekindDomain A → isDedekindDomainDvr A` and `IsDedekindDomain A ↔ IsDedekindDomainInv A` are already in Mathlib. - [x] depends on: #14099 - [x] depends on: #14216 - [ ] depends on: #14237 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR new-contributor | 269/1 | Mathlib.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/FractionalIdeal/LocalizedAtPrime.lean,Mathlib/RingTheory/Localization/Basic.lean | 4 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 17171 | astrainfinita | test extends carrier and property | --- We need https://github.com/leanprover/lean4/issues/2666 ... [](https://gitpod.io/from-referrer/) | merge-conflict | 433/309 | Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Directed.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/Field/Subfield.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/MulOpposite.lean,Mathlib/Algebra/Group/Submonoid/Basic.lean,Mathlib/Algebra/Group/Submonoid/MulOpposite.lean,Mathlib/Algebra/Group/Submonoid/Pointwise.lean,Mathlib/Algebra/Group/Submonoid/Units.lean,Mathlib/Algebra/Group/Subsemigroup/Basic.lean,Mathlib/Algebra/Group/Subsemigroup/Operations.lean,Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/MulOpposite.lean,Mathlib/Algebra/Ring/Subsemiring/Order.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/Algebra/Star/Subsemiring.lean,Mathlib/Data/Complex/Module.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Deprecated/Subfield.lean,Mathlib/Deprecated/Subgroup.lean,Mathlib/Deprecated/Submonoid.lean,Mathlib/Deprecated/Subring.lean,Mathlib/FieldTheory/IntermediateField/Basic.lean,Mathlib/GroupTheory/ArchimedeanDensely.lean,Mathlib/GroupTheory/DoubleCoset.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/GroupAction/SubMulAction.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean,Mathlib/SetTheory/Cardinal/Subfield.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/OpenSubgroup.lean | 42 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 7516 | ADedecker | perf: use `abbrev` to prevent unifying useless data | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 4/3 | Mathlib/Topology/ContinuousFunction/Bounded.lean | 1 | 3 | ['ADedecker', 'leanprover-bot', 'mattrobball'] | nobody | 1 year ago | unknown | unknown |
| 17127 | astrainfinita | chore: remove global `Quotient.mk` `⟦·⟧` notation | --- Merge this PR when we are ready to migrate to `QuotLike` API (#16421). [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 137/2 | Counterexamples/Pseudoelement.lean,Mathlib/Algebra/Associated/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/Order/CauSeq/Completion.lean,Mathlib/Algebra/Quandle.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean,Mathlib/CategoryTheory/Skeletal.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Fintype/List.lean,Mathlib/Data/Fintype/Quotient.lean,Mathlib/Data/Multiset/Basic.lean,Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean,Mathlib/Data/QPF/Univariate/Basic.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/Set/Finite.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/GroupAction/Basic.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/LinearAlgebra/Dual.lean,Mathlib/LinearAlgebra/Ray.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/ModelTheory/DirectLimit.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/Quotients.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/NumberTheory/NumberField/Embeddings.lean,Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean,Mathlib/NumberTheory/Padics/PadicIntegers.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/RepresentationTheory/Action/Concrete.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Ordinal.lean,Mathlib/SetTheory/Game/Basic.lean,Mathlib/SetTheory/Game/Birthday.lean,Mathlib/SetTheory/Game/Impartial.lean,Mathlib/SetTheory/Game/Ordinal.lean,Mathlib/SetTheory/Game/State.lean,Mathlib/SetTheory/Lists.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Surreal/Basic.lean,Mathlib/SetTheory/Surreal/Dyadic.lean,Mathlib/SetTheory/Surreal/Multiplication.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Rank.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/Homotopy/HomotopyGroup.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/Homotopy/Product.lean,Mathlib/Topology/MetricSpace/GromovHausdorff.lean,Mathlib/Topology/UniformSpace/Separation.lean,test/interactiveUnfold.lean | 68 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 16887 | metinersin | feat(ModelTheory/Complexity): define conjunctive and disjunctive formulas | Defines `FirstOrder.Language.BoundedFormula.IsConjunctive` and `FirstOrder.Language.BoundedFormula.IsDisjunctive`. --- - [ ] depends on: #16885 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 300/7 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Syntax.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 16888 | metinersin | feat(ModelTheory/Complexity): Define conjunctive and disjunctive normal forms | Define `FirstOrder.Language.BoundedFormula.IsDNF` and `FirstOrder.Language.BoundedFormula.IsCNF`. --- - [ ] depends on: #16887 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 415/7 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Syntax.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 16889 | metinersin | feat(ModelTheory/Complexity): Normal forms | Defines `FirstOrder.Language.BoundedFormula.toDNF` and `FirstOrder.Language.BoundedFormula.toCNF` - given a quantifier-free formula, these construct a semantically equivalent formula in disjunctive normal form and conjunctive normal form, respectively. --- - [ ] depends on: #16888 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 525/7 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Syntax.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 14712 | astrainfinita | perf: change instance priority and order about `OfNat` | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra delegated | 49/20 | Mathlib/Algebra/Group/Nat.lean,Mathlib/Algebra/Group/ZeroOne.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Data/BitVec.lean,Mathlib/Data/Nat/Cast/Defs.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/UInt.lean,Mathlib/NumberTheory/ArithmeticFunction.lean | 9 | 24 | ['MichaelStollBayreuth', 'astrainfinita', 'eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-bot', 'mathlib-bors'] | nobody | 1 year ago | unknown | unknown |
| 5995 | astrainfinita | feat: add APIs about `Quotient.choice` | Some docs in this PR refer to the definition in #5576. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author RFC t-data | 76/6 | Mathlib/Data/Quot.lean | 1 | 3 | ['YaelDillies', 'astrainfinita', 'gebner'] | eric-wieser | 1 year ago | unknown | unknown |
| 14619 | Command-Master | chore: Merge `Trunc` to `Squash` | Remove `Trunc` and use `Squash` instead --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP new-contributor | 197/211 | Mathlib/CategoryTheory/EpiMono.lean,Mathlib/CategoryTheory/Preadditive/Biproducts.lean,Mathlib/Data/DFinsupp/Basic.lean,Mathlib/Data/Fintype/Basic.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Data/Fintype/Option.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/Data/Fintype/Quotient.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Semiquot.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/Logic/Equiv/List.lean | 13 | 3 | ['Command-Master', 'github-actions', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 13156 | erdOne | refactor(Algebra/Module/LocalizedModule): Redefine `LocalizedModule` in terms of `OreLocalization`. | --- - [x] depends on: #13151 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 519/628 | Mathlib.lean,Mathlib/Algebra/Module/LocalizedModule.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/OreLocalization/Basic.lean,Mathlib/RingTheory/OreLocalization/Module.lean,Mathlib/RingTheory/OreLocalization/Ring.lean | 8 | 4 | ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mattrobball'] | nobody | 1 year ago | unknown | unknown |
| 16348 | urkud | refactor(Topology): require `LinearOrder` with `OrderTopology` | While the definition formally makes sense for a preorder, this topology is usually not the right one for a non-linear order (e.g., `Real × Real`). See [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Open.20Ioi) --- This PR doesn't cleanup any API, I'm going to do it in a later PR. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology t-order | 33/46 | Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean,Mathlib/Topology/Algebra/Order/LiminfLimsup.lean,Mathlib/Topology/Instances/Sign.lean,Mathlib/Topology/Order/Basic.lean,Mathlib/Topology/Order/Filter.lean,Mathlib/Topology/Order/MonotoneContinuity.lean | 6 | 10 | ['YaelDillies', 'github-actions', 'jcommelin', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 13965 | pechersky | feat(Data/DigitExpansion): reals via digit expansion are complete | --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #13964 | merge-conflict blocked-by-other-PR t-data | 3876/0 | Mathlib.lean,Mathlib/Data/DigitExpansion/Add.lean,Mathlib/Data/DigitExpansion/Defs.lean,Mathlib/Data/DigitExpansion/Hensel.lean,Mathlib/Data/DigitExpansion/Integer/Basic.lean,Mathlib/Data/DigitExpansion/Integer/Mul.lean,Mathlib/Data/DigitExpansion/Real/Basic.lean,Mathlib/Data/DigitExpansion/Real/CompleteSpace.lean,Mathlib/Data/DigitExpansion/Real/ConditionallyComplete.lean,docs/references.bib | 10 | 4 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 16984 | hrmacbeth | feat: extend `module` tactic to handle multiple rings, not strictly ordered by inclusion | The `module` tactic currently in Mathlib handles scalars from multiple rings, but only if for any two rings `R` and `S` which appear, either `R` is an algebra over `S` or vice versa. This PR extends the tactic by providing a syntax `module T`, which will handle scalars from any ring `R` which `T` is an algebra over. For example, ```lean example : (2:ℤ) • x = (2:ℚ≥0) • x := by module ``` fails since `ℤ` is not a `ℚ≥0`-algebra and `ℚ≥0` is not a `ℤ`-algebra, but ```lean example : (2:ℤ) • x = (2:ℚ≥0) • x := by module ℚ ``` works since `ℚ` is both a `ℤ`-algebra and a `ℚ≥0`-algebra. This PR is a quick proof-of-concept implementation, just to record the desired approach and tactic syntax. It should not be merged as-is. It has with a lot of code duplication and should be rewritten more efficiently (for example, `parse` and `parseEnsuringType` should be merged to a single function, and the `some`/`none` cases in `matchScalarsAux` should be merged to a uniform treatment) before being considered for merging to Mathlib. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 158/35 | Mathlib/Tactic/Module.lean,test/module.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 10796 | mcdoll | feat(Tactic/Positivity): non-negativity of functions | --- This makes the `Finset.sum` and `integral_nonneg` extensions even more useful. [](https://gitpod.io/from-referrer/) | WIP t-meta | 27/0 | Mathlib/Tactic/Positivity/Core.lean | 1 | 1 | ['YaelDillies'] | nobody | 1 year ago | unknown | unknown |
| 12750 | Command-Master | feat: define Gray code | --- Define binary reflected gray code, both as a permutation of `Nat` and as a permutation of `BitVec n`, and prove some theorems about them. Additionally, remove `@[simp]` from `Nat.bit_false` and `Nat.bit_true`, as `bit0` and `bit1` are deprecated, and add some lemmas to `Bits`, `Bitwise` and `Size`. - [ ] depends on: #12751 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-data new-contributor merge-conflict awaiting-author | 226/0 | Mathlib.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/GrayCode.lean,Mathlib/Data/Nat/Size.lean | 5 | 5 | ['Rida-Hamadani', 'alreadydone', 'github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 12414 | adomani | test: lint and unlint `·` | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 64/14 | Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib/Algebra/Module/Submodule/Bilinear.lean,Mathlib/Tactic/Linter/Multigoal.lean,test/Multigoal.lean | 4 | 4 | ['adomani', 'github-actions', 'grunweg', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 14603 | awueth | feat: degree is invariant under graph isomorphism | --- Mathlib has the definition `SimpleGraph.Iso.mapNeighborSet` which is an equivalence between neighbor sets induced by an isomorphism. Would it be beneficial to add the same equivalence for `neighborFinset`? [](https://gitpod.io/from-referrer/) | WIP t-combinatorics new-contributor | 24/0 | Mathlib/Combinatorics/SimpleGraph/Map/Finite.lean | 1 | 11 | ['awueth', 'github-actions', 'jcommelin', 'kim-em', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 16925 | YnirPaz | feat(SetTheory/Cardinal/Cofinality): aleph index of singular cardinal has infinite cofinality | Prove `Ordinal.aleph0_le_cof_of_not_isRegular`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-set-theory | 6/0 | Mathlib/SetTheory/Cardinal/Cofinality.lean | 1 | 4 | ['YnirPaz', 'github-actions', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 16647 | eric-wieser | feat: partitions of lists | The length of this list is the bell numbers. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics t-data | 311/0 | Mathlib.lean,Mathlib/Data/List/Partition.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 9605 | davikrehalt | feat(Data/Finset & List): Add Lemmas for Sorting and Filtering | This PR includes several useful lemmas to the Data/Finset and Data/List modules in Lean's mathlib: 1. `toFinset_filter` (List): Shows that filtering commutes with toFinset. 2. `toFinset_is_singleton_implies_replicate` (List): Shows a list with a singleton toFinset is a List.replicate. 3. `filter_sort_commute` (Finset): Sorting and filtering can be interchanged in Finsets. 4. `Sorted.filter` (List): A sorted list stays sorted after filtering. 5. `Sorted.append_largest` (List): Appending the largest element keeps a list sorted. 6. `sort_monotone_map` (Finset): Relates sorting of a Finset after mapping to sorting of a list. 7. `sort_insert_largest` (Finset): Sorting a Finset with an inserted largest element. 8. `sort_range` (Finset): Sorting a range in a Finset equals the corresponding range list. 9. ~~`filter_eval_true` (List): Filtering a list with a predicate always true keeps the list unchanged.~~ 10. ~~`filter_eval_false` (List): Filtering with an always-false predicate gives an empty list.~~ 11. ~~`pairwise_concat` (List): Iff condition for Pairwise relation in concatenated lists (similar to pairwise_join).~~ 12. `list_map_toFinset` (Finset): toFinset commutes with map under injection --- - [x] depends on: #15952 This is my first PR to mathlib, so I'm not too familiar with etiquette's and more specifically there are two proofs in the PR which uses aesop, and I am not sure if it's frowned upon. I kept the aesop in there for now as I couldn't construct very short proofs otherwise. The sort_range function proof was suggested in https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Computing.20Finset.20sort.20of.20Finset.20range/near/410346731 by Ruben Van de Velde. Thanks for your time for improving this PR. | please-adopt t-data new-contributor merge-conflict awaiting-author | 71/0 | Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/List/Sort.lean | 4 | 30 | ['YaelDillies', 'davikrehalt', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-community-mathlib4-bot', 'urkud', 'vihdzp'] | YaelDillies | 1 year ago | unknown | unknown |
| 13514 | madvorak | feat(Computability/ContextFreeGrammar): closure under union | - [ ] depends on: #15895 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability blocked-by-other-PR | 448/4 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 50 | ['Rida-Hamadani', 'YaelDillies', 'github-actions', 'leanprover-community-mathlib4-bot', 'madvorak'] | nobody | 1 year ago | unknown | unknown |
| 5364 | thorimur | feat: `wlog ... replacing` | This allows hypotheses to be removed from the set of generalized hypotheses. E.g. `wlog h : P replacing h'` will remove `h'` from the hypotheses of the type of `this` and from the context of the goal that will suppose `h`. See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/wlog.20.2E.2E.2E.20replacing.20.2E.2E.2E.3F). --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 125/18 | Mathlib/Tactic/WLOG.lean,test/wlog.lean | 2 | 2 | ['thorimur', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 9654 | urkud | feat: add `@[mk_eq]` version of `@[mk_iff]` | The new attribute generates theorems like ```lean List.chain_eq : @List.Chain = fun {α} R a a_1 => a_1 = [] ∨ ∃ b l, R a b ∧ List.Chain R b l ∧ a_1 = b :: l ``` and is useful to rewrite in a theorem that argues about the properties of an unapplied inductive predicate. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 63/9 | Mathlib/Lean/Meta.lean,Mathlib/Tactic/MkIffOfInductiveProp.lean,test/MkIffOfInductive.lean | 3 | 6 | ['Vierkantor', 'github-actions', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 16704 | AntoineChambert-Loir | feat(Mathlib.Data.Ordering.Dickson): Dickson orders | Dickson orders are a particular class of well founded orders characterized by the fact that every nonempty set has finitely many minimal elements. They appear in the classical theory of Groebner bases because it is easier to prove that some sets are well founded using this property. WiP. In the `tfae` function, property 2 is exactly `Set.PartiallyWellOrderedOn`, so the PR should be rewritten so as to use that property (and not define `IsDickson`). --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order | 324/0 | Mathlib.lean,Mathlib/Data/Ordering/Dickson.lean,scripts/noshake.json | 3 | 9 | ['AntoineChambert-Loir', 'b-mehta', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 16355 | Ruben-VandeVelde | feat: odd_{add,sub}_one | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-number-theory | 12/0 | Mathlib/Algebra/Ring/Int.lean,Mathlib/Algebra/Ring/Parity.lean | 2 | 4 | ['Ruben-VandeVelde', 'github-actions', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 8479 | alexjbest | feat: use leaff in CI | [Leaff](https://github.com/alexjbest/leaff) is an experimental lean-diff tool, this PR is to experiment with adding it as a CI step. --- I'm not sure yet if it is best to have this always run or only run on request (like bench). If it is always run should it post a comment or simply leave its output it the actions log (maybe as a summary object) the current iteration runs and updates a sticky comment with the latest result [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author | 340/0 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml | 4 | 11 | ['alexjbest', 'github-actions', 'grunweg', 'kim-em', 'mathlib-bors', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 8638 | alreadydone | refactor: noncommutative tensor product | Co-authored-by: Eric Wieser |
merge-conflict WIP t-algebra | 793/676 | Mathlib/Algebra/Module/LinearMap.lean,Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct.lean | 3 | 6 | ['alreadydone', 'eric-wieser', 'grhkm21', 'jjaassoonn'] | nobody | 1 year ago | unknown | unknown |
| 14598 | Command-Master | chore: add typeclasses to unify various `add_top`, `add_eq_top`, etc. | Add the four typeclasses `IsTopAbsorbing`, `IsBotAbsorbing`, `NoTopSum`, `NoBotSum`, as additive equivalents for `MulZeroClass` and `NoZeroDivisors`. Add instances of these for `ENNReal`, `WithTop α`, `WithBot α`, `PUnit`, `EReal`, `PartENat`, `Measure`, `Interval` and `Filter`. Also split `Algebra/Order/AddGroupWithTop` to `Algebra/Order/Group/WithTop` and `Algebra/Order/Monoid/WithTop` --- Previous usages of lemmas with quantified names like `WithTop.add_top` have to be changed to just `add_top`. `add_lt_top` is `@[simp]`, in accordance with `ENNReal.add_lt_top` being `@[simp]`. This affects `WithTop.add_lt_top` which previously hadn't been `@[simp]`. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra t-order new-contributor | 264/195 | Archive/Wiedijk100Theorems/BallotProblem.lean,Mathlib.lean,Mathlib/Algebra/Order/Group/WithTop.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/Algebra/PUnitInstances/Order.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/Analytic/Meromorphic.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/NormedSpace/ENorm.lean,Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean,Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Nat/WithBot.lean,Mathlib/Data/Real/EReal.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/MeasureTheory/Covering/Differentiation.lean,Mathlib/MeasureTheory/Decomposition/Lebesgue.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/L1Space.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Function/LpSpace.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/MeasureTheory/Integral/Bochner.lean,Mathlib/MeasureTheory/Integral/MeanInequalities.lean,Mathlib/MeasureTheory/Integral/SetIntegral.lean,Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Measure/Hausdorff.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/MeasureTheory/Measure/Typeclasses.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/Probability/Martingale/Convergence.lean,Mathlib/RingTheory/Multiplicity.lean,Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean,Mathlib/RingTheory/UniqueFactorizationDomain.lean,Mathlib/Topology/EMetricSpace/Defs.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean,Mathlib/Topology/MetricSpace/Lipschitz.lean | 57 | 30 | ['Command-Master', 'YaelDillies', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 18636 | adomani | Test/latest import report dev | This PR is a test accompanying #18631. --- [](https://gitpod.io/from-referrer/) | merge-conflict CI | 147/0 | .github/workflows/latest_import.yml,lakefile.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 16885 | metinersin | feat(ModelTheory/Complexity): define literals | Defines `FirstOrder.Language.BoundedFormula.IsLiteral` and `FirstOrder.Language.BoundedFormula.simpleNot` - an auxiliary operation that takes the negation of a formula and does some simplification. --- - [x] depends on: #16800 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-logic | 148/5 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean | 4 | 20 | ['YaelDillies', 'awainverse', 'github-actions', 'mathlib4-dependent-issues-bot', 'metinersin'] | nobody | 1 year ago | unknown | unknown |
| 18716 | jjaassoonn | feat(Algebra/Module/GradedModule): quotient and subgrading | - [ ] depends on: #9820 [](https://gitpod.io/from-referrer/) | WIP t-algebra blocked-by-other-PR awaiting-CI merge-conflict | 997/191 | Counterexamples/HomogeneousPrimeNotPrime.lean,Mathlib.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Module/GradedModule/Basic.lean,Mathlib/Algebra/Module/GradedModule/QuotientGrading.lean,Mathlib/Algebra/Module/GradedModule/Subgrading.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean,Mathlib/RingTheory/GradedAlgebra/Quotient.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,scripts/no_lints_prime_decls.txt | 12 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 9341 | winstonyin | feat: Naturality of integral curves | Let `v` and `v'` be sections of the tangent bundle of manifolds `M` and `M'`, respectively, and let `f : M → M'` be a differentiable map. Then `f` maps integral curves of `v` to integral curves of `v'` if and only if `v` and `v'` are `f`-related. - [x] depends on: #8483 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-differential-geometry | 45/0 | Mathlib/Geometry/Manifold/IntegralCurve.lean,Mathlib/Topology/Algebra/Module/Basic.lean | 2 | 9 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot', 'winstonyin'] | nobody | 1 year ago | unknown | unknown |
| 13248 | hcWang942 | feat: basic concepts of auction theory | ## Description
Formalise some core concepts and results in auction theory: this includes definitions for first-price and second-price auctions, as well as several fundamental results and helping lemmas.
This is the very first PR of the project formalizing core concepts and results in auction theory.
Our group is working on more contributions on the formalization of game theory prefix.
Co-authored-by: Ma Jiajun |
merge-conflict awaiting-author new-contributor t-logic | 204/0 | Mathlib.lean,Mathlib/GameTheory/Auction/Basic.lean,docs/references.bib | 3 | 148 | ['Shreyas4991', 'YaelDillies', 'eric-wieser', 'faenuccio', 'github-actions', 'grunweg', 'hcWang942', 'tb65536', 'urkud', 'vihdzp'] | hcWang942 | 1 year ago | unknown | unknown |
| 17675 | astrainfinita | perf: do not search algebraic hierarchy when searching `FunLike` hierarchy | --- Unification is still very slow. [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra | 144/4 | Mathlib.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Algebra/Rat.lean,Mathlib/Algebra/Group/Equiv/Basic.lean,Mathlib/Algebra/GroupWithZero/Hom.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Order/Hom/Basic.lean,Mathlib/Algebra/Ring/CentroidHom.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/Ring/Hom/Defs.lean,Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Operator/LinearIsometry.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/Coalgebra/Equiv.lean,Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Util/SetSynthOrder.lean,MathlibTest/TCSynth.lean,scripts/noshake.json | 24 | 5 | ['astrainfinita', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 9344 | erdOne | feat: Add `AddGroup.FG` -> `Module.Finite ℤ` as instances | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 4/0 | Mathlib/RingTheory/Finiteness.lean | 1 | 4 | ['alreadydone', 'erdOne', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 12133 | ADedecker | feat: generalize instIsLowerProd to arbitrary products | Also change a bit the proof of the product case to match my own taste, feel free to tell if you prefer the old one. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology t-order | 34/14 | Mathlib/Topology/Constructions.lean,Mathlib/Topology/Order/LowerUpperTopology.lean | 2 | 13 | ['Ruben-VandeVelde', 'TwoFX', 'github-actions', 'jcommelin', 'mans0954', 'mathlib-bors', 'riccardobrasca'] | nobody | 1 year ago | unknown | unknown |
| 16637 | astrainfinita | perf: reorder `extends` of `(Add)Monoid` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 46/51 | Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/BigOperators/Ring/List.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Ring/SumsOfSquares.lean,Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean,Mathlib/Data/Finset/NoncommProd.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Torsion.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/Order/Filter/Germ/Basic.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/Coalgebra/Hom.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean | 20 | 3 | ['astrainfinita', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 18765 | astrainfinita | chore: changing `outParam` of `MulActionSemiHomClass` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 60/34 | Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Category/ModuleCat/Limits.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean | 4 | 4 | ['astrainfinita', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 15822 | kmill | feat: greedy colorings of finite graphs | Proves that the greedy coloring only takes `G.maxDegree + 1` colors. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics | 159/0 | Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean | 1 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 8661 | joelriou | feat(CategoryTheory/Sites): descent of sheaves | In this PR, it is shown that the category of sheaves on a site `(C, J)` identifies as a full subcategory of a category of families of sheaves equipped with a descent data (for a family of objects which cover the final object). Under suitable conditions, it shall be shown that this is an equivalence of categories (TODO). --- This shall be split in small PRs later. - [x] depends on: #8622 - [x] depends on: #8632 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 1396/26 | Mathlib.lean,Mathlib/CategoryTheory/Over.lean,Mathlib/CategoryTheory/Sites/CoverPreserving.lean,Mathlib/CategoryTheory/Sites/Descent.lean,Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean,Mathlib/CategoryTheory/Sites/InducedTopology.lean,Mathlib/CategoryTheory/Sites/ObjectsCoverTop.lean,Mathlib/CategoryTheory/Sites/Over.lean,Mathlib/CategoryTheory/Sites/SheafHom.lean,Mathlib/CategoryTheory/Sites/Sieves.lean | 10 | 3 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 19055 | JLimperg | Test precompilation (batteries + aesop) again | merge-conflict | 9/8 | lake-manifest.json,lakefile.lean | 2 | 5 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown | |
| 10476 | shuxuezhuyi | feat(Topology/UniformSpace): define uniform preordered space | We define the semi-uniform structure and the uniform preordered space. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 94/0 | Mathlib.lean,Mathlib/Topology/UniformSpace/UniformOrder.lean,docs/references.bib | 3 | 2 | ['shuxuezhuyi'] | nobody | 1 year ago | unknown | unknown |
| 17593 | astrainfinita | chore(Algebra/Order/GroupWithZero/Unbundled): deprecate useless lemmas, use `ZeroLEOneClass` | There are still some useless lemmas that were simply ported from `Algebra.Order.Monoid.Lemmas`, such as just chain an existing lemma with an assumption and lemmas whose assumptions imply `1 ≤ 0`. This PR removes them. Also, some lemmas have both assumptions like `1 < a` `0 < a`. This PR uses `ZeroLEOneClass` to remove redundant assumptions. --- - [ ] depends on: #17623 Ported from https://github.com/leanprover-community/mathlib/pull/16525 and https://github.com/leanprover-community/mathlib/pull/18158 Adapted from #9250. This version is easier to review. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR t-order | 188/48 | Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/Topology/Algebra/Order/Field.lean | 6 | 4 | ['astrainfinita', 'github-actions', 'mathlib4-dependent-issues-bot', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 17623 | 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. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-zulip t-order | 146/44 | Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean | 2 | 11 | ['YaelDillies', 'astrainfinita', 'github-actions', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 18969 | alreadydone | chore: generalize Module to NonUnitalSemiring | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 94/75 | Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/End.lean,Mathlib/Algebra/Group/Action/Prod.lean,Mathlib/Algebra/Group/Action/TypeTags.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/GroupTheory/CoprodI.lean,Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean,Mathlib/LinearAlgebra/LinearDisjoint.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/LinearAlgebra/TensorProduct/Submodule.lean,Mathlib/RingTheory/Filtration.lean,Mathlib/RingTheory/Flat/FaithfullyFlat.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/Defs.lean,Mathlib/RingTheory/Ideal/Lattice.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Prod.lean,Mathlib/RingTheory/Presentation.lean,Mathlib/RingTheory/Smooth/Kaehler.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean | 31 | 11 | ['alreadydone', 'eric-wieser', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 17624 | astrainfinita | feat(Algebra/Order/GroupWithZero/Unbundled): generalize lemmas | --- - [ ] depends on: #17623 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR t-order | 121/26 | Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 17513 | astrainfinita | perf: do not search algebraic hierarchies when using `map_*` lemmas | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra awaiting-bench | 5/3 | Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean | 2 | 10 | ['astrainfinita', 'github-actions', 'grunweg', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 17515 | astrainfinita | perf: do not need `simp low` now | --- - [ ] depends on: #17513 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR | 12/10 | Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/NumberTheory/LucasLehmer.lean | 4 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 19212 | Julian | feat(LinearAlgebra): add a variable_alias for VectorSpace | Taken directly from the variable_alias docs. Zulip: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/why.20.5Bvariable_alias.5D.20attribute.20is.20not.20used.20in.20Mathlib.3F --- This is the first actual variable alias added to mathlib. I haven't reviewed variable_alias fully, but it seems like there's at least 3 ways they could be distributed in Mathlib: * alongside whatever subfolder they "belong to" (which is what I've tentatively done here) * In a file called `Aliases` somewhere near the thing they alias (which seems less discoverable to me) * In a single file, a la `Mathlib.TrainingWheels` (with some less playful name) which is meant to define a bunch of more "friendly" aliases all in one place. I kind of like the idea of the third thing as a future module but perhaps it can be synthesized if/when there are more aliases? For now as I say I've done the first one, but please let me know if someone prefers something else. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 25/0 | Mathlib.lean,Mathlib/LinearAlgebra/VectorSpace.lean,scripts/noshake.json | 3 | 10 | ['Julian', 'PieterCuijpers', 'github-actions', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 19337 | zeramorphic | feat(Data/Finsupp): generalise `Finsupp` to any "zero" value | Remove the explicit dependence of `Finsupp` on `[Zero M]`, instead defining `Finsupp'` (better name pending) to be functions that are equal to a fixed value `z : M` cofinitely often. This PR is intended to do the initial work of replacing the definition of `Finsupp` with an instantiation of the more general definition, without adding any appropriate API. If accepted, the API development will follow in later PRs. Issues to consider: - Naming of `Finsupp'.` - Where should `Finsupp'` lemmas go? Do they need their own file/folder under `Data/`? Relevant Zulip threads: - https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Finsupp.20generalisations - https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Finsupp-like.20partial.20function Comments are welcome. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 203/83 | Archive/Wiedijk100Theorems/Partition.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/MvPolynomial/Rename.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/Data/Finsupp/BigOperators.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean,Mathlib/RingTheory/PowerBasis.lean,scripts/nolints_prime_decls.txt | 13 | 5 | ['github-actions', 'vihdzp', 'zeramorphic'] | nobody | 1 year ago | unknown | unknown |
| 10332 | adri326 | feat(Topology/Sets): define regular open sets and their boolean algebra | Introduces a new module, `Mathlib.Topology.Sets.RegularOpens`, which defines the `IsRegularOpen s` predicate (`interior (closure s) = s`) and `TopologicalSpace.RegularOpens`, the type of bundled regular open sets (defined as `Heyting.Regular (Opens X)`). A few properties of regular open sets (bundled and unbundled) and `interior (closure s)` are proven, and a pointwise instance of `MulAction` is provided for regular open sets. --- This PR belongs to my series of PRs around my formalization of Rubin's theorem. There are two possible ways to implement `RegularOpens`: - either construct them by hand and show that they form a boolean algebra (better def-eq but more boilerplate code required) - or use `Heyting.Regular` on the heyting algebra of `Opens` inherited from the `Frame` instance on them I first chose to use the former approach, but using the latter cuts the length of the construction of the boolean algebra of regular open sets by 100 lines of code, and allows us to inherit all of the helper lemmas defined for `Heyting.Regular`. The big downside, though, is that an element of `RegularOpens` isn't defined as a bundled regular open set anymore, but rather as an `Opens` set `s` for which `Opens.interior ↑(Opens.interior ↑sᶜ)ᶜ = s`, so I added an alternative constructor `RegularOpens.of` that instead accepts any set `s` for which `IsRegularOpen s` holds. Another minor downside is that coercion to a set takes two coercions instead of one. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology | 434/0 | Mathlib.lean,Mathlib/Data/Set/Pointwise/SMul.lean,Mathlib/Topology/Sets/Opens.lean,Mathlib/Topology/Sets/RegularOpens.lean,docs/references.bib | 5 | 1 | ['adri326'] | YaelDillies | 1 year ago | unknown | unknown |
| 18756 | astrainfinita | refactor: deprecate `DistribMulActionSemiHomClass` `MulSemiringActionSemiHomClass` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 50/28 | Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean | 3 | 4 | ['astrainfinita', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 19125 | yhtq | feat: add theorems to transfer `IsGalois` between pairs of fraction rings | feat: add theorems to transfer `IsGalois` between pairs of fraction rings. - [x] depends on: #18404 - [x] depends on: #19124 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra new-contributor | 121/0 | Mathlib.lean,Mathlib/FieldTheory/Galois/IsFractionRing.lean,Mathlib/RingTheory/Localization/FractionRing.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'tb65536'] | nobody | 1 year ago | unknown | unknown |
| 18841 | hrmacbeth | chore: change some `linarith`s to `linear_combination`s | Change 100 `linarith`s to `linear_combination`s; this is generally a slight speedup. --- [](https://gitpod.io/from-referrer/) - [x] depends on: #18714 (not strictly blocked by this, but the speed comparison will be more informative after it) | merge-conflict WIP | 106/107 | Archive/Imo/Imo1959Q2.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2021Q1.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Complex/AbelLimit.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/Analysis/Convex/Slope.lean,Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean,Mathlib/Analysis/Convex/Uniform.lean,Mathlib/Analysis/Convex/Visible.lean,Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleWith.lean,Mathlib/Probability/Distributions/Pareto.lean | 30 | 29 | ['github-actions', 'grunweg', 'hrmacbeth', 'jcommelin', 'leanprover-bot', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 11142 | hmonroe | feat(ProofTheory): Define logical symbols abstractly; opens new top-level section, drawing from lean4-logic | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 468/1 | Mathlib.lean,Mathlib/Data/Fin/VecNotation.lean,Mathlib/ProofTheory/LogicSymbol.lean | 3 | 19 | ['PatrickMassot', 'YaelDillies', 'avigad', 'fpvandoorn', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 11210 | hmonroe | Test commit | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 1950/1 | Mathlib.lean,Mathlib/Data/Fin/VecNotation.lean,Mathlib/ProofTheory/Calculus.lean,Mathlib/ProofTheory/FirstOrder/Arith/Language.lean,Mathlib/ProofTheory/FirstOrder/Basic/Syntax/Term.lean,Mathlib/ProofTheory/LogicSymbol.lean,Mathlib/ProofTheory/Matrix.lean,Mathlib/ProofTheory/Semantics.lean,Mathlib/ProofTheory/System.lean,docs/references.bib | 10 | 100 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 19621 | Command-Master | feat: Multiplicity and prime-adic valuation of derivations | --- - [ ] depends on: #19596 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR large-import | 397/13 | Mathlib.lean,Mathlib/Algebra/Order/AddGroupWithTop.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/Derivation/Multiplicity.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/PrimeMultiplicity.lean | 9 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 18262 | joelriou | feat(Algebra/Category/ModuleCat/Presheaf): exterior powers of presheaves of modules | --- - [x] depends on: #18261 - [ ] depends on: #18236 - [ ] depends on: #18197 [](https://gitpod.io/from-referrer/) | WIP t-algebra blocked-by-other-PR t-category-theory merge-conflict | 874/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/ExteriorPower.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/FunctorOfNatTrans.lean,Mathlib/Algebra/Category/ModuleCat/Pseudofunctor.lean | 6 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 18294 | astrainfinita | perf: make `Mul.toSMul` higher priority | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-bench t-algebra | 2/5 | Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Order/Field/Pointwise.lean,Mathlib/Combinatorics/Additive/AP/Three/Defs.lean,Mathlib/Topology/Algebra/Module/WeakBilin.lean | 4 | 4 | ['astrainfinita', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 15269 | kkytola | feat: Add ENNReal.floor | A right-continuous floor function on `ENNReal`. --- - [x] depends on: #13938 - [ ] depends on: #15773 (general type class for `ENat`-valued floor functions) - [x] depends on: #15380 (topology on `ENat` is needed to state right continuity of the floor function) [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR t-order merge-conflict awaiting-author | 445/0 | Mathlib.lean,Mathlib/Algebra/Order/EFloor.lean,Mathlib/Data/ENNReal/Floor.lean,Mathlib/Data/Nat/Lattice.lean | 4 | 18 | ['YaelDillies', 'github-actions', 'kkytola', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 15773 | kkytola | feat: Add type class for ENat-valued floor functions | This PR adds a type class for extended natural number -valued floor functions. This is split off from #15269, where the suggestions were to make the floor function on ENNReal ENat-valued and to have an API mimicling FloorSemirings. Besides ENNReal, at least ENNRat would naturally satisfy the general type class. --- Two things are worth noting: * To fully mimic `FloorSemiring` API, also ceiling functions need to be added. The plan is to do that in a later PR. * The PR introduces the class `CastNatENatClass` to ensure that `natCast` and a coercion from `ENat` behave in the natural and order-respecing manner. This feels a little ad hoc, but such assumptions are needed for general `ENat`-valued floor functions to behave well. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-order | 231/0 | Mathlib.lean,Mathlib/Algebra/Order/EFloor.lean,Mathlib/Data/ENat/Basic.lean | 3 | 5 | ['YaelDillies', 'github-actions', 'kkytola', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 3251 | kmill | feat: deriving `LinearOrder` for simple enough inductive types | Uses the same machinery underlying the `Fintype` derive handler to derive a lexicographical `LinearOrder` for non-recursive inductive types that have no indices. In principle more complicated types can have `LinearOrder`s, but that would require a more sophisticated implementation. --- - [x] depends on: #3198 [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author t-meta | 82/0 | Mathlib.lean,Mathlib/Tactic/DeriveLinearOrder.lean | 2 | 5 | ['ChrisHughes24', 'kim-em', 'kmill', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 3610 | TimothyGu | feat: derive Infinite automatically for inductive types | Deals with recursive types, but not mutually recursive types or types with indices right now. See docstring for details. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 517/0 | Mathlib.lean,Mathlib/Tactic/DeriveInfinite.lean,test/DeriveInfinite.lean | 3 | 11 | ['TimothyGu', 'digama0', 'eric-wieser', 'grunweg', 'kim-em', 'kmill'] | kmill | 1 year ago | unknown | unknown |
| 16120 | awainverse | feat(ModelTheory/Algebra/Ring/Basic): Ring homomorphisms are a `StrongHomClass` for the language of rings | Adds an `IsAlgebraic` instance to the language of rings Adds a `StrongHomClass` instance to the type of ring homomorphisms between rings with `CompatibleRing` structures --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra RFC t-logic | 34/13 | Mathlib/ModelTheory/Algebra/Ring/Basic.lean | 1 | 10 | ['ChrisHughes24', 'YaelDillies', 'awainverse', 'github-actions', 'jcommelin'] | nobody | 1 year ago | unknown | unknown |
| 20459 | Ruben-VandeVelde | chore: fix names of roots_C_mul_X_{add,sub}_C_of_IsUnit | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 11/5 | Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Roots.lean | 2 | 2 | ['eric-wieser', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 20527 | trivial1711 | refactor(Topology/UniformSpace/Completion): more descriptive names for `α → Completion α` | - We rename the various maps `α → Completion α` in order to make their names more consistent. - Let `α` be a uniform space. We rename the uniformly continuous function `α → Completion α` from `UniformSpace.Completion.coe'` to `UniformSpace.Completion.coe`. - Let `α` be a uniform additive group. We rename the additive group homomorphism `α →+ Completion α` from `UniformSpace.Completion.toCompl` to `UniformSpace.Completion.coeAddHom`. - Let `α` be a uniform ring. The ring homomorphism `α →+* Completion α` is called `UniformSpace.Completion.coeRingHom`; its name is unchanged. - Let `α` be a normed space over a field `𝕜`. We rename the linear isometry `α →ₗᵢ[𝕜] Completion α` from `UniformSpace.Completion.toComplₗᵢ` to `UniformSpace.Completion.coeₗᵢ`. - Let `α` be a normed space over a field `𝕜`. We rename the continuous linear map `α →L[𝕜] Completion α` from `UniformSpace.Completion.toComplL` to `UniformSpace.Completion.coeL`. - Let `α` be a normed additive group. We rename the norm preserving homomorphism `NormedAddGroupHom α (Completion α)` from `NormedAddCommGroup.toCompl` to `UniformSpace.Completion.coeNormedAddGroupHom`. - We analogously rename some other theorems. - We add some trivial theorems (all of which are proved by `rfl`) that state that the functions considered above are equal. We give all of them the `simp` and `norm_cast` attributes. - We add a new theorem `UniformSpace.Completion.coeAddHom_eq_coe` that states that `UniformSpace.Completion.coeAddHom` and `UniformSpace.Completion.coe` are equal as functions. - We similarly add a new theorem `UniformSpace.Completion.coeRingHom_eq_coe`. - We rename the theorem `UniformSpace.Completion.coe_toComplₗᵢ` to `UniformSpace.Completion.coeₗᵢ_eq_coe`. - We rename the theorem `UniformSpace.Completion.coe_toComplL` to `UniformSpace.Completion.coeL_eq_coe`. - We similarly add a new theorem `UniformSpace.Completion.coeNormedAddGroupHom_eq_coe`. - We change all occurrences of the string `((↑) : α → Completion α)` to `(coe : α → Completion α)` or just `coe`. - We put the statements of some theorems into simp normal form by using the plain function `coe` rather than the homomorphisms that carry more structure. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 130/92 | Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Complex/AbsMax.lean,Mathlib/Analysis/Complex/Liouville.lean,Mathlib/Analysis/InnerProductSpace/Completion.lean,Mathlib/Analysis/Normed/Group/HomCompletion.lean,Mathlib/Analysis/Normed/Module/Completion.lean,Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean,Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean,Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean,Mathlib/Topology/Algebra/UniformRing.lean,Mathlib/Topology/Category/UniformSpace.lean,Mathlib/Topology/MetricSpace/Completion.lean,Mathlib/Topology/UniformSpace/Completion.lean | 17 | 4 | ['eric-wieser', 'github-actions', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 17739 | Aaron1011 | feat(Topology/Order/DenselyOrdered): prove Not (IsOpen) for intervals | Prove that Iic/Ici/Ioc/Ico/Icc intervals are not open in densely ordered topologies with no min/max element --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology new-contributor | 27/0 | Mathlib/Topology/Order/DenselyOrdered.lean | 1 | 8 | ['github-actions', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 18474 | astrainfinita | perf: lower the priority of `*WithOne.to*` instances | --- From #7873. [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra t-data | 9/2 | Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Data/Int/Cast/Defs.lean,Mathlib/Data/Nat/Cast/Defs.lean | 3 | 7 | ['astrainfinita', 'eric-wieser', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 20656 | Komyyy | feat(Mathlib/Geometry/Manifold/VectorBundle/Sphere): convert orthogonal smooth `M → 𝕊ⁿ` & `M → ℝⁿ⁺¹` to smooth `M → T𝕊ⁿ` | Current Mathlib has no easy way to define function from a manifold to tangent bundles of sphere: `T𝕊ⁿ`. This PR gives this: `sphereTangentMap`. This convert orthogonal smooth `M → 𝕊ⁿ` & `M → ℝⁿ⁺¹` to smooth `M → T𝕊ⁿ`. I also proved that if `f : M → 𝕊ⁿ` & `g : M → ℝⁿ⁺¹` are smooth then `sphereTangentMap` of `f` & `g` is smooth too. --- ⚠ **CAUTION** I formalized this in my spare time. I don't have the energy to maintain the PR, but I create this PR so this may helps everyone. The only one thing to do is proof cleanup. TODO: - [x] `contDiff_uncurry_stereoInvFunAux` & `coe_sphere_comp_stereoInvFun` may have to be moved to `Mathlib.Geometry.Manifold.Instances.Sphere`. - [ ] Proof cleanup. Current proof may be redundant and ugly. [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-differential-geometry | 246/6 | Mathlib.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/VectorBundle/Sphere.lean | 3 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 15711 | znssong | feat(Combinatorics/SimpleGraph): Some lemmas about walk, cycle and Hamiltonian cycle | --- These lemmas are separated from the `meow-sister/BondyChvatal` branch and will be needed for the proof of the Bondy-Chvátal theorem. - [x] depends on: #15536 - [x] depends on: #16294 | merge-conflict awaiting-author t-combinatorics new-contributor | 407/3 | Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Path.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean | 4 | 22 | ['Rida-Hamadani', 'YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'znssong'] | nobody | 1 year ago | unknown | unknown |
| 15720 | znssong | feat(SimpleGraph): The Bondy-Chvátal theorem | The proof of the Bondy-Chvátal theorem, with Dirac's theorem and Ore's theorem as its corollary. - [x] depends on: #15536 - [ ] depends on: #15711 - [ ] depends on: #15578 | merge-conflict blocked-by-other-PR t-combinatorics new-contributor | 903/3 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/BondyChvatal.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Path.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean,Mathlib/Dynamics/FixedPoints/Basic.lean,Mathlib/Dynamics/FixedPoints/Increasing.lean | 8 | 3 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | YaelDillies | 1 year ago | unknown | unknown |
| 18629 | tomaz1502 | feat(Computability.Timed): Formalization of runtime complexity of List.merge | This PR adds the formalization of the runtime complexity of the merge function, defined in `Data/List/Sort`. Requires: https://github.com/leanprover-community/mathlib4/pull/15450 References: - Previous PR on mathlib3: https://github.com/leanprover-community/mathlib3/pull/14494/ - First discussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/BSc.20Final.20Project/near/220647062 - Second disussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Formalization.20of.20Runtime.20Complexity.20of.20Sorting.20Algorithms/near/284184450 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author new-contributor | 186/0 | Mathlib.lean,Mathlib/Computability/Timed/InsertionSort.lean,Mathlib/Computability/Timed/Merge.lean | 3 | 2 | ['github-actions', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 14412 | jjaassoonn | feat: show stalk of presheaf of modules is a module over stalk of ring | --- - [x] depends on: #14413 - [ ] depends on: #14501 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-geometry blocked-by-other-PR workshop-AIM-AG-2024 | 966/2 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/OverColimitsRing'.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/OverColimitsRing.lean,Mathlib/CategoryTheory/Filtered/Basic.lean,Mathlib/CategoryTheory/Limits/ConcreteCategory.lean,Mathlib/Geometry/RingedSpace/Basic.lean,Mathlib/Geometry/RingedSpace/Module.lean,Mathlib/Topology/Sheaves/Stalks.lean | 8 | 5 | ['github-actions', 'jjaassoonn', 'leanprover-community-mathlib4-bot', 'smorel394'] | nobody | 1 year ago | unknown | unknown |
| 8362 | urkud | feat(Asymptotics): define `ReflectsGrowth` | --- - [x] depends on: #8349 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 268/0 | Mathlib.lean,Mathlib/Analysis/Asymptotics/ReflectsGrowth.lean | 2 | 14 | ['YaelDillies', 'fpvandoorn', 'github-actions', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 6692 | prakol16 | feat: disjoint indexed union of local homeomorphisms | Add disjoint indexed union of local equivs and local homeomorphisms --- This is leading up to PRing some things related to covering spaces that I wrote a long time ago in lean 3 but never submitted a PR for. Note that this was converted using mathport. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 126/0 | Mathlib/Logic/Equiv/PartialEquiv.lean,Mathlib/Topology/PartialHomeomorph.lean | 2 | 4 | ['alreadydone', 'github-actions', 'winstonyin'] | nobody | 1 year ago | unknown | unknown |
| 18461 | hannahfechtner | feat: left and right common multiples mixins | add mixins for left and right common multiples. These carry the data of what factors are used to create the common multiples --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 78/0 | Mathlib/Algebra/Group/Defs.lean | 1 | 13 | ['github-actions', 'hannahfechtner', 'jcommelin', 'kbuzzard', 'kim-em', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 19291 | PieterCuijpers | feat(Algebra/Order/Hom): add quantale homomorphism | Definition of quantale homomorphisms as functions that are both semigroup homomorphisms and complete lattice homomorphisms. --- - [x] depends on: #19810 - [x] depends on: #19811 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 209/0 | Mathlib.lean,Mathlib/Algebra/Order/Hom/Quantale.lean,scripts/noshake.json | 3 | 29 | ['PieterCuijpers', 'YaelDillies', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 19352 | hrmacbeth | chore: change some `nlinarith`s to `linear_combination`s | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 13/13 | Archive/Imo/Imo2021Q1.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Mathlib/Analysis/Normed/Group/AddCircle.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Ring/Units.lean,Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean,Mathlib/NumberTheory/Modular.lean | 8 | 4 | ['github-actions', 'hrmacbeth', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 20372 | jvlmdr | feat(MeasureTheory/Function): Add ContinuousLinearMap.bilinearCompLp(L) | Introduce ContinuousLinearMap.bilinearCompLp and bilinearCompLpL. Generalize eLpNorm_le_eLpNorm_mul_eLpNorm theorems to include constant C in bound condition. --- Expect this may be useful for defining tempered distributions from functions in `L^p`. The definitions more or less follow `ContinuousLinearMap.compLp...`. Names are loosely analogous to `ContinuousLinearMap.bilinearComp` and `SchwartzMap.bilinLeftCLM`. Note: I preferred the spelling `hpqr : p⁻¹ + q⁻¹ = r⁻¹` with `f` in `L^p` and `g` in `L^q` to `hpqr : 1 / p = 1 / q + 1 / r`. It's easier to obtain from `ENNReal.IsConjExponent` too. A few questions: - [ ] I defined `bilinear{Left,Right}LpL` in addition to `bilinearCompLpL` because `LinearMap.mkContinuous₂` is marked as `noncomputable` and `LinearMap.mkContinuous` is not. Is this worth the extra definitions? (Note: This is not visible in the source due to `noncomputable section`.) - [ ] Should I use `C : ℝ` instead of `C : NNReal` for `eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm'`? - [ ] Is it going to be painful to have `[Fact (1 ≤ p)] [Fact (1 ≤ q)] [Fact (1 ≤ r)]`? I don't think there's a way to avoid it though. Maybe providing specialized versions for `p.IsConjExponent q` with `L^1`? Naming: - [ ] Is it satisfactory to add a `'` to the `eLpNorm_le_eLpNorm_mul_eLpNorm ` definitions in `CompareExp.lean` where `≤ ‖f x‖ * ‖g x‖` has been replaced with `≤ C * ‖f x‖ * ‖g x‖`? These could replace the existing theorems, although I don't want to break backwards compatibility. There are 5 instances: `eLpNorm_le_eLpNorm_top_mul_eLpNorm'`, `eLpNorm_le_eLpNorm_mul_eLpNorm_top'`, `eLpNorm'_le_eLpNorm'_mul_eLpNorm''`, `eLpNorm_le_eLpNorm_mul_eLpNorm_of_nnnorm'`, `eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm'` (I'm not sure why the existing theorem `eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm` has an internal `'`) - [ ] Is `bilinearLeftLpL` a suitable name? Other options: `bilinearCompLpLeftL`, `bilinearCompLeftLpL`, `bilinLeftLpL` (analogous to `SchwartzMap.bilinLeftCLM`) [](https://gitpod.io/from-referrer/) | merge-conflict t-measure-probability new-contributor | 203/40 | Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSpace.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 2605 | eric-wieser | chore: better error message in linarith | On this mwe: ```lean import Mathlib.Tactic.Linarith example (s : Set ℕ) (h : s = s) : 0 ≤ 1 := by linarith ``` this now indicates where the internal error is coming from. Is there a better way of chaining errors than this? --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 12/1 | Mathlib/Tactic/Linarith/Preprocessing.lean | 1 | 3 | ['Vierkantor', 'harahu', 'kim-em', 'mo271'] | nobody | 1 year ago | unknown | unknown |
| 11837 | trivial1711 | feat: completion of a uniform multiplicative group | Multiplicativize `Topology.Algebra.GroupCompletion`. That is, rewrite it in the multiplicative setting and recover the original results using `@[to_additive]`. - Because `@[to_additive]` doesn't work with `noncomputable section` (https://github.com/leanprover/lean4/pull/2610), some instances with `@[to_additive]` need to be explicitly marked with `noncomputable instance`. - One might be tempted to multiplicativize this definition from `Topology.Algebra.GroupCompletion`: ```lean instance [UniformSpace α] [Add α] : Add (Completion α) := ⟨Completion.map₂ (· + ·)⟩ ``` to this: ```lean @[to_additive] instance [UniformSpace α] [Mul α] : Mul (Completion α) := ⟨Completion.map₂ (· * ·)⟩ ``` However, as Eric Wieser pointed out, doing so would create a bad diamond with the definition ```lean instance [UniformSpace α] [TopologicalRing α] [UniformAddGroup α] [Ring α] : Mul (Completion α) := ⟨curry <| (denseInducing_coe.prod denseInducing_coe).extend ((↑) ∘ uncurry (· * ·))⟩ ``` in `Topology.Algebra.UniformRing`. How should this diamond be resolved? Well, the definition of multiplication that uses `curry <| (denseInducing_coe.prod denseInducing_coe).extend ((↑) ∘ uncurry (· * ·))` is the "correct" one. For example, it yields the correct result if `α` is `ℚ`, unlike the definition that uses `Completion.map₂ (· * ·)`. (This is because `Completion.map₂` yields junk values if used on a function which is not uniformly continuous. Note, however, that if multiplication on `α` *is* uniformly continuous, then `Completion.map₂ (· * ·)` and `curry <| (denseInducing_coe.prod denseInducing_coe).extend ((↑) ∘ uncurry (· * ·))` are propositionally equal.) So, following Eric's suggestion, we remove the definition that uses `Completion.map₂ (· * ·)`, and generalize the other definition to any uniform space with a multiplication operation: ```lean @[to_additive] noncomputable instance [UniformSpace α] [Mul α] : Mul (Completion α) := ⟨curry <| (denseInducing_coe.prod denseInducing_coe).extend ((↑) ∘ uncurry (· * ·))⟩ ``` This requires slightly modifying some of the proofs in `Topology.Algebra.GroupCompletion`. For example, suppose that `α` is a uniform group. Since we can no longer use `Completion.continuous_map₂`, it becomes more efficient to prove that the multiplication, inversion, and division operations on `Completion α` are uniformly continuous *before* we prove that `Completion α` is a group. - Previously, `Topology.Algebra.GroupCompletion` had an instance: ```lean instance [UniformSpace α] [Sub α] : Sub (Completion α) := ... ``` Naively multiplicativizing this would yield ```lean @[to_additive] instance [UniformSpace α] [Inv α] : Inv (Completion α) := ... ``` Unfortunately, this would conflict with `Topology.Algebra.UniformField`, which already instantiates `Inv (Completion α)` when `α` is a uniform field. Instead, we use two different `instance` declarations. (If `α` is an additive group, then this instantiates `Neg (Completion α)` twice, and the instances are syntactically equal.) ```lean @[to_additive] noncomputable instance [UniformSpace α] [Group α] : Inv (Completion α) := ... instance [UniformSpace α] [Neg α] : Neg (Completion α) := ... ``` This avoids the bad diamond (because a uniform field can never be a `Group`) while remaining backward compatible. Note that the `@[to_additive]` is necessary here, because it maintains the link between the additive setting and multiplicative setting. We use a similar method to instantiate `Div (Completion α)`. - Some definitions in this file involve a module structure on `α`. We leave these as is and do not attempt to multiplicativize them at all. - The instance of `DistribMulAction` must be multiplicativized to an instance of `MulDistribMulAction` manually. Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Completion.20of.20a.20uniform.20multiplicative.20group --- # (Small) Issue Recall the following trick that this pull request uses to define inversion and negation on uniform spaces. The idea is that we define negation on the completion of any uniform space that has a negation operation, but we define inversion on only the completion of a uniform space that has the structure of a multiplicative group. We do this to avoid creating a bad diamond with the inversion operation on a uniform field. ```lean @[to_additive] noncomputable instance {α : Type*} [UniformSpace α] [Group α] : Inv (Completion α) := ... instance {α : Type*} [UniformSpace α] [Neg α] : Neg (Completion α) := ... ``` Now, suppose that we want to prove `coe_inv_of_group` (resp. `coe_neg`), which states that the coercion `α → Completion α` commutes with inversion (resp. negation). In the current version of this pull request, `coe_inv_of_group` (resp. `coe_neg`) only applies to uniform multiplicative (resp. additive) groups. However, we do not use the fact that multiplication (resp. addition) on `α` is uniformly continuous to prove it. We only use the fact that inversion (resp. negation) is continuous. So, what we really want is to have more general statements that look like this: ```lean theorem coe_inv_of_group {α : Type*} [UniformSpace α] [Group α] [ContinuousInv α] : ... theorem coe_neg {α : Type*} [UniformSpace α] [Neg α] [ContinuousNeg α] : ... ``` Note that `coe_inv_of_group` needs the assumption `[Group α]`, because otherwise inversion is not defined on `Completion α` at all. However, `coe_neg` does not need the analogous assumption `[AdditiveGroup α]`. The question is: If `coe_inv_of_group` and `coe_neg` are written in this more general form, how can we link them using `@[to_additive]`? Here is one option, but it obviously leaves something to be desired. ```lean @[to_additive coe_neg_do_not_use_this_use_the_more_general_version] theorem coe_inv_of_group {α : Type*} [UniformSpace α] [Group α] [ContinuousInv α] : ... theorem coe_neg {α : Type*} [UniformSpace α] [Neg α] [ContinuousNeg α] : ... ``` Co-authored-by: Eric Wieser --- [](https://gitpod.io/from-referrer/) | WIP t-algebra merge-conflict help-wanted t-topology | 342/217 | Mathlib/Analysis/InnerProductSpace/Completion.lean,Mathlib/Analysis/Normed/Group/HomCompletion.lean,Mathlib/Analysis/Normed/Module/Completion.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean,Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean,Mathlib/Topology/Algebra/UniformField.lean,Mathlib/Topology/Algebra/UniformMulAction.lean,Mathlib/Topology/Algebra/UniformRing.lean | 9 | 14 | ['eric-wieser', 'github-actions', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 12670 | trivial1711 | feat: completion of a nonarchimedean multiplicative group | We prove that the completion of a nonarchimedean multiplicative group is a nonarchimedean multiplicative group. --- - [x] depends on: #12669 - [ ] depends on: #11837 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra t-topology blocked-by-other-PR | 358/228 | Mathlib/Analysis/InnerProductSpace/Completion.lean,Mathlib/Analysis/Normed/Group/HomCompletion.lean,Mathlib/Analysis/Normed/Module/Completion.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean,Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean,Mathlib/Topology/Algebra/UniformField.lean,Mathlib/Topology/Algebra/UniformMulAction.lean,Mathlib/Topology/Algebra/UniformRing.lean | 9 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 21384 | alreadydone | experiment: make submodule quotient reducibly defeq to additive group quotient | --- [](https://gitpod.io/from-referrer/) | t-algebra | 1/1 | Mathlib/LinearAlgebra/Quotient/Defs.lean | 1 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 9449 | hmonroe | feat: Add Turing machine with the quintet definition (TMQ) and a chainable step function for each TM type | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author | 458/1 | Mathlib/Computability/TuringMachine.lean,Mathlib/Logic/PartArith.lean | 2 | 8 | ['eric-wieser', 'github-actions', 'hmonroe'] | nobody | 1 year ago | unknown | unknown |
| 18719 | astrainfinita | perf: lower the priority of `SemilinearMapClass.toAddHomClass` | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra awaiting-bench | 14/7 | Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean,MathlibTest/TCSynth.lean | 3 | 4 | ['astrainfinita', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 19697 | quangvdao | feat(BigOperators/Fin): Sum/product over `Fin` intervals | This PR adds new theorems about the sum/product of some vector over `Fin` intervals. One example is: ``` @[to_additive] theorem prod_Iic_succ (i : Fin n) : ∏ j ∈ Iic i.succ, v j = (∏ j ∈ Iic i.castSucc, v j) * v i.succ ``` --- - [x] depends on: #20360 This is in preparation for reworking `finSigmaFinEquiv` and `finProdFinEquiv` in #19013. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 87/12 | Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Data/Fintype/Fin.lean,Mathlib/Order/Interval/Finset/Fin.lean | 3 | 20 | ['Ruben-VandeVelde', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib4-dependent-issues-bot', 'quangvdao'] | nobody | 1 year ago | unknown | unknown |
| 19353 | hrmacbeth | chore: golf some term/rw proofs using `linear_combination` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 47/102 | Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Mathlib/Analysis/Convex/Slope.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean,Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean | 7 | 5 | ['github-actions', 'grunweg', 'hrmacbeth', 'leanprover-bot'] | grunweg | 1 year ago | unknown | unknown |
| 20248 | peabrainiac | feat(Topology/Compactness): first-countable locally path-connected spaces are delta-generated | Shows that all first-countable locally path-connected spaces are delta-generated (so in particular all normed spaces and convex subsets thereof are), and that delta-generated spaces are equivalently generated by the unit interval or standard simplices. --- - [ ] depends on: #21616 In principle, this should be close to all that's required to show that all simplicial complexes and CW-complexes are delta-generated; I just haven't done it yet because I'm not sure which file to best do it in. [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import new-contributor merge-conflict awaiting-author t-topology | 1189/813 | Mathlib.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean,Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean,Mathlib/Topology/Connected/LocPathConnected.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/Homotopy/HSpaces.lean,Mathlib/Topology/Path.lean | 9 | 22 | ['YaelDillies', 'github-actions', 'kbuzzard', 'mathlib4-dependent-issues-bot', 'peabrainiac'] | nobody | 1 year ago | unknown | unknown |
| 21610 | JLimperg | Aesop forward benchmark: forward precomp | Not a real PR, just for benchmarking. | merge-conflict | 30/27 | Mathlib/Data/List/InsertIdx.lean,Mathlib/Tactic/Recall.lean,Mathlib/Topology/List.lean,Test.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 7 | 3 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 21611 | JLimperg | Aesop forward benchmark: master no-precomp | Not a real PR, just for benchmarking. | merge-conflict | 30/27 | Mathlib/Data/List/InsertIdx.lean,Mathlib/Tactic/Recall.lean,Mathlib/Topology/List.lean,Test.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 7 | 4 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 21612 | JLimperg | Aesop forward benchmark: master precomp | Not a real PR, just for benchmarking. | merge-conflict | 30/27 | Mathlib/Data/List/InsertIdx.lean,Mathlib/Tactic/Recall.lean,Mathlib/Topology/List.lean,Test.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 7 | 3 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 10678 | adri326 | feat(Topology/UniformSpace): prove that a uniform space is completely regular | Provides the pseudometric definition of a uniform space (for any open set `s` and `x ∈ s`, there exists a finite family of pseudometric spaces on `X` and an `ε > 0`, such that the intersection of the balls of these pseudometric spaces is a subset of `s`), and uses it to prove that `UniformSpace X` implies `CompletelyRegularSpace X`. --- This PR aims to close the gap of pi-base's theorem [T345](https://topology.pi-base.org/theorems/T000345), which says that topological groups are completely regular. We already have a proof that topological groups are uniform, but it turns out that we do not have any connection between `UniformSpace X` and `CompletelyRegularSpace X`. There is an equivalence between `UniformSpace X` and `CompletelyRegularSpace X`: the former implies the latter, and the latter implies *the existence of* the former. This PR provides the first half of this equivalence. The construction of the pseudometric definition is based on N. Bourbaki, Chapter 9, Theorem 4.1 The proof that a uniform space is completely regular is based on [the outline on mathexchange](https://math.stackexchange.com/questions/494718/how-to-prove-that-every-uniform-space-is-completely-regular). I tried to outline the major steps of the different proofs inside of comments; I can happily be more verbose to clear up any confusion. See [the corresponding Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Some.20missing.2C.20accessible.2C.20topology.20results) for more context. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 332/0 | Mathlib.lean,Mathlib/Topology/UniformSpace/Basic.lean,Mathlib/Topology/UniformSpace/CompletelyRegular.lean | 3 | 6 | ['ADedecker', 'adri326'] | ADedecker | 1 year ago | unknown | unknown |
| 18785 | erdOne | feat(CategoryTheory): command that generates instances for `MorphismProperty` | Co-authored-by: Calle Sönne --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory t-meta | 369/0 | Mathlib.lean,Mathlib/CategoryTheory/MorphismProperty/Tactic.lean,MathlibTest/AddMorphismPropertyInstances.lean,scripts/noshake.json | 4 | 19 | ['alexjbest', 'chrisflav', 'erdOne', 'github-actions', 'grunweg', 'jcommelin', 'joelriou'] | nobody | 1 year ago | unknown | unknown |
| 16311 | madvorak | feat(Computability): regular languages are context-free | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-computability | 72/0 | Mathlib.lean,Mathlib/Computability/Chomsky.lean,Mathlib/Computability/ContextFreeGrammar.lean | 3 | 7 | ['Rida-Hamadani', 'YaelDillies', 'github-actions', 'madvorak'] | nobody | 1 year ago | unknown | unknown |
| 19943 | AlexLoitzl | feat(Computability): Add Chomsky Normal Form Grammar and translation | - Define Chomsky normal form grammars - Add language-preserving translation between context-free grammars and Chomsky normal form grammars Co-authored-by: Martin Dvorak martin.dvorak@matfyz.cz --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author new-contributor | 3151/0 | Mathlib.lean,Mathlib/Computability/ChomskyNormalForm/Basic.lean,Mathlib/Computability/ChomskyNormalForm/EmptyElimination.lean,Mathlib/Computability/ChomskyNormalForm/LengthRestriction.lean,Mathlib/Computability/ChomskyNormalForm/TerminalRestriction.lean,Mathlib/Computability/ChomskyNormalForm/Translation.lean,Mathlib/Computability/ChomskyNormalForm/UnitElimination.lean,Mathlib/Computability/ContextFreeGrammar.lean | 8 | 59 | ['AlexLoitzl', 'YaelDillies', 'github-actions', 'kim-em', 'madvorak'] | nobody | 1 year ago | unknown | unknown |
| 17005 | YnirPaz | feat(SetTheory/Cardinal/Regular): define singular cardinals | Define singular cardinals and prove basic lemmas about them. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-set-theory | 94/1 | Mathlib.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Ordinal/Basic.lean | 3 | 28 | ['YaelDillies', 'YnirPaz', 'github-actions', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 21501 | sksgurdldi | feat(List): add sum_zipWith_eq_finset_sum | ### **Description:** This PR adds the lemma `List.sum_zipWith_eq_finset_sum` to `Mathlib.Algebra.BigOperators.Group.Finset.Basic`. #### **Statement:** The sum of the `zipWith` operation on two lists equals the sum of applying the operation to corresponding elements of the two lists, indexed over the minimum of their lengths. #### **Formal Statement:** ```lean lemma sum_zipWith_eq_finset_sum [Inhabited α] [Inhabited β] [AddCommMonoid γ] {op : α → β → γ} (l : List α) (m : List β) : (List.zipWith op l m).sum = ∑ x ∈ (Finset.range (Nat.min l.length m.length)), op (l[x]!) (m[x]!) ``` #### **Remarks:** - This lemma provides a useful equivalence between `List.zipWith` and summation over a `Finset.range` indexed by `Nat.min l.length m.length`. - It can be helpful in algebraic manipulations involving list-based summations. #### **Dependencies:** No additional dependencies. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 43/0 | Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean | 1 | 1 | ['github-actions', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 12054 | adomani | feat: auto-bugs | This PR introduces a linter for suggesting bugs in tactics. See * #12077 * #12083 * #12084 for some bugs exposed by the test suite. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 737/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/MetaTesting.lean,scripts/noshake.json,test/MetaTesting.lean | 5 | 20 | ['adomani', 'eric-wieser', 'github-actions', 'joneugster', 'kim-em'] | joneugster | 1 year ago | unknown | unknown |
| 5062 | adomani | feat(Tactic/Prune + test/Prune): add `prune` tactic, for removing unnecessary hypotheses | This tactic removes very conservatively all local declarations that 1. do not appear in the main goal, 2. do not appear in a declaration that appears in the main goal, 3. ... and so on recursively. The main motivation for this tactic is that all available variables in the current `namespace/section` appear in the goal state, not just the ones that are needed for the statement to type-check. Using `prune` mitigates this situation. The tactic also admits an optional natural number argument: `prune n` removes all variables that have not appeared at the `(n+1)`-st stage in the above list. Thus, `prune 0` only leaves the variables needed for the statement to type-check. Also, for sufficiently large `n`, `prune n` is a synonym for `prune`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/substitute.20for.20.60include.2Fomit.60.3F) --- [](https://gitpod.io/from-referrer/) | merge-conflict modifies-tactic-syntax awaiting-author t-meta | 181/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Prune.lean,test/Prune.lean | 4 | 5 | ['adomani', 'j-loreaux', 'kmill'] | nobody | 1 year ago | unknown | unknown |
| 22169 | JLimperg | Aesop forward benchmark: forward no-precomp naive | Not a real PR, just for benchmarking. | merge-conflict | 31/27 | Mathlib/Data/List/InsertIdx.lean,Mathlib/Tactic/Recall.lean,Mathlib/Topology/List.lean,Test.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 7 | 6 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 21433 | grunweg | chore: change more lemmas to be about enorm instead of nnnorm | --- - [x] depends on: #21782 - [x] depends on: #21783 (and this PR modifies the file split, and file splits are painful to merge over) [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author carleson t-measure-probability | 172/71 | Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean | 9 | 18 | ['RemyDegenne', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 22171 | JLimperg | Aesop forward benchmark: forward no-precomp naive rpinf pr-release | Not a real PR, just for benchmarking. | merge-conflict | 31/27 | Mathlib/Data/List/InsertIdx.lean,Mathlib/Tactic/Recall.lean,Mathlib/Topology/List.lean,Test.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 7 | 5 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 20454 | urkud | chore(TangentCone): review names | Also add some `@[simp]` attrs. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 201/139 | Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/Deriv/Abs.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Equiv.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/Calculus/MeanValue.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean,Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean,Mathlib/MeasureTheory/Integral/FundThmCalculus.lean | 25 | 3 | ['github-actions', 'sgouezel', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 21608 | JLimperg | Aesop forward benchmark: forward no-precomp rpinf pr-release | Not a real PR, just for benchmarking. | merge-conflict | 38/29 | Mathlib/Data/List/InsertIdx.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Tactic/Recall.lean,Mathlib/Topology/List.lean,Test.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 8 | 13 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 21609 | JLimperg | Aesop forward benchmark: forward no-precomp | Not a real PR, just for benchmarking. | merge-conflict | 38/29 | Mathlib/Data/List/InsertIdx.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Tactic/Recall.lean,Mathlib/Topology/List.lean,Test.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 8 | 13 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 16550 | awainverse | feat(ModelTheory): A typeclass for languages expanding other languages | Defines `L.Expands L'` to consist of a privileged injective inclusion, `L'.Inclusion L`, from `L'` to `L`, corresponding to one language being a subset of the other in set-theoretic foundations. Replaces `L.IsOrdered` with `L.Expands Language.order` and `L.OrderLHom` with `Language.order.Inclusion L` Redefines `leSymb` in terms of `Language.order.Inclusion L` Deletions: - `FirstOrder.Language.IsOrdered` - `FirstOrder.Language.OrderLHom` - `instance : IsOrdered Language.order` - `sum.instIsOrdered` --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 97/43 | Mathlib/ModelTheory/LanguageMap.lean,Mathlib/ModelTheory/Order.lean | 2 | 9 | ['YaelDillies', 'awainverse', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 14313 | grhkm21 | feat(RepresentationTheory/FdRep): FdRep is a full subcategory of Rep | ``` /-- Equivalence between `FDRep` and the full subcategory of finite dimensional `Rep`. -/ def equivFiniteDimensional : FDRep k G ≌ FullSubcategory (fun V : Rep k G ↦ FiniteDimensional k V) ``` | merge-conflict t-algebra t-category-theory new-contributor | 47/8 | Mathlib/RepresentationTheory/FDRep.lean | 1 | 19 | ['github-actions', 'grhkm21', 'joelriou', 'kim-em', 'mathlib-bors'] | nobody | 1 year ago | unknown | unknown |
| 10823 | alexkeizer | feat: convert curried type functions into uncurried type functions | Adds a conversion `TypeFun.ofCurried : CurriedTypeFun.{u, v} n -> TypeFun.{u, v} n`, where `CurriedTypeFun.{u,v} n` is a (def-eq) abbreviation for `Type u -> ... -> Type u -> Type v`, i.e., the type of *curried* functions taking `n` arguments of type `Type u` to return an element of `Type v`, and `TypeFun.{u, v} n` is an abbreviation for `TypeVec.{u} n -> Type v`. It is generally more idiomatic to define type functions with multiple arguments in the curried style, but in the QPF development we use the uncurried equivalent `TypeVec n -> Type _`. Thus, having a canonical conversion from curried functions to uncurried gives us a canonical way to ask if a curried type function, say `Sum` is a QPF (namely, "is there an instance of `MvQPF (TypeFun.ofCurried Sum)`"). --- This is code ported from https://github.com/alexkeizer/QpfTypes, where this conversion is crucial in presenting a high-level interface, in terms of idiomatic, curried, type functions to users, while being built on QPFs (and thus, uncurried typefunctions) underneath. There is also a conversion in the other direction, from uncurried to curried, which I've decided to PR later, to keep this PR smaller and hopefully easier to review. - [x] depends on: #10818 (all changes to `Fin2.lean` are part of 10818, not the current PR) [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 66/0 | Mathlib.lean,Mathlib/Data/TypeFun.lean | 2 | 9 | ['YaelDillies', 'alexkeizer', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 13648 | urkud | feat(Topology/Module): generalize `ContinuousLinearMap.compSL` | Generalize `ContinuousLinearMap.compSL` to topological vector spaces. --- - [ ] depends on: #15217 This PR is not polished yet, but the main statement is there. @ADedecker This answers a question I asked you on Zulip a few months ago. [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict awaiting-author t-topology t-analysis | 23/18 | Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean | 2 | 5 | ['fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 19372 | Command-Master | find defeq abuse using diagnostics | --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #19177 | merge-conflict blocked-by-other-PR large-import | 169/1 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/FindDefEqAbuse.lean,MathlibTest/FindDefEqAbuse.lean,lakefile.lean | 6 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 22408 | JLimperg | Aesop forward bench: precomp only rpinf | --- Not a real PR (yet), just for benchmarking. [](https://gitpod.io/from-referrer/) | merge-conflict dependency-bump | 5/3 | lake-manifest.json,lakefile.lean,scripts/bench/fake-root/lib/lean/libleanshared.so,scripts/bench/run | 4 | 6 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 14060 | YnirPaz | feat(SetTheory/Ordinal/Clubs): define club sets and prove basic properties | Create a file where club sets are defined and their basic properties are proven. I also created a new recursion principle for ordinals, bounded recursion. --- - [ ] depends on: #19189 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 315/3 | Mathlib.lean,Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Club.lean,Mathlib/SetTheory/Ordinal/Topology.lean | 6 | 93 | ['YaelDillies', 'YnirPaz', 'alreadydone', 'dupuisf', 'github-actions', 'mathlib4-dependent-issues-bot', 'vihdzp', 'zeramorphic'] | nobody | 1 year ago | unknown | unknown |
| 20636 | eric-wieser | feat: multiplication of intervals in rings | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 36/1 | Mathlib/Algebra/Order/Interval/Basic.lean | 1 | 16 | ['Timeroot', 'YaelDillies', 'eric-wieser', 'github-actions'] | nobody | 11 months ago | unknown | unknown |
| 16000 | YaelDillies | feat: Croot-Sisask Almost Periodicity | Almost periodicity is nowadays a standard tool in additive combinatorics. From LeanAPAP --- - [ ] depends on: #15443 [](https://gitpod.io/from-referrer/) | t-combinatorics t-analysis blocked-by-other-PR | 0/0 | 0 | 4 | ['github-actions', 'leanprover-community-mathlib4-bot', 'mergify'] | nobody | 11 months ago | unknown | unknown | |
| 22340 | sinhp | feat(CategoryTheory): Locally Cartesian Closed Categories (Beck-Chevalley Conditions) | Building on top of the API of `ExponentiableMorphism` in #22321, we state and prove Beck-Chevalley conditions. This will be crucial for our development of polynomial functors along exponentiable morphisms.
Co-authored-by: Emily Riehl |
WIP blocked-by-other-PR t-category-theory large-import merge-conflict | 1144/24 | Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Comma/Over/Sections.lean,Mathlib/CategoryTheory/Galois/Examples.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Basic.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/BeckChevalley.lean,docs/references.bib | 8 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 11 months ago | unknown | unknown |
| 21959 | BGuillemet | feat(Topology/ContinuousMap): Stone-Weierstrass theorem for MvPolynomial | Add the subalgebra of multivariate polynomials and prove it separates points, on the same model as `ContinuousMap/Polynomial.lean`. Prove the Stone-Weierstrass theorem and some variations for multivariate polynomials. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology new-contributor | 285/1 | Mathlib.lean,Mathlib/Topology/ContinuousMap/MvPolynomial.lean,Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean | 3 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 19177 | adomani | test: the findDefEqAbuse linter | This is a prototype, as per [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Locating.20defeq.20abuse) --- [](https://gitpod.io/from-referrer/) | merge-conflict large-import | 126/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/FindDefEqAbuse.lean,MathlibTest/FindDefEqAbuse.lean | 5 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 22359 | adomani | feat(whitespace): do not allow indented doc-strings | In a doc-string, Do not allow the first character after the first line break to be a space. --- There are approximately 2.5k exceptions. I think that they should be unindented, judging from the sample that I looked at, but won't act on it, unless there is a clear plan to fix and merge this modification! --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter large-import | 222/70 | Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean,Mathlib/Analysis/Asymptotics/ExpGrowth.lean,Mathlib/Data/Matroid/Circuit.lean,Mathlib/Init.lean,Mathlib/Lean/Meta/RefinedDiscrTree/Encode.lean,Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean,Mathlib/LinearAlgebra/LinearIndependent/Basic.lean,Mathlib/LinearAlgebra/LinearIndependent/Defs.lean,Mathlib/Tactic.lean,Mathlib/Tactic/FunProp/Decl.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/DocString.lean,Mathlib/Topology/Path.lean,Mathlib/Topology/UnitInterval.lean,MathlibTest/LintDocstring.lean,lakefile.lean | 20 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 18470 | astrainfinita | perf: lower the priority of `Normed*.to*` instances | --- From #7873. [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra t-analysis | 28/0 | Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean | 2 | 9 | ['astrainfinita', 'github-actions', 'jcommelin', 'leanprover-bot'] | nobody | 11 months ago | unknown | unknown |
| 16944 | YnirPaz | feat(SetTheory/Cardinal/Cofinality): lemmas about limit ordinals and cofinality | Prove that a singular cardinal has a limit aleph index and that a limit ordinal and positive cofinality. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-set-theory | 18/0 | Mathlib/SetTheory/Cardinal/Cofinality.lean | 1 | 8 | ['YnirPaz', 'github-actions', 'vihdzp'] | nobody | 11 months ago | unknown | unknown |
| 17368 | Felix-Weilacher | feat(Topology/Baire/BaireMeasurable): add the Kuratowski-Ulam theorem | Add the Kuratowski-Ulam theorem, which one can think of as a "Fubini" for Baire category. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 187/1 | Mathlib/MeasureTheory/MeasurableSpace/Basic.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Topology/Baire/BaireMeasurable.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/GDelta/Basic.lean | 5 | 6 | ['Felix-Weilacher', 'github-actions', 'urkud'] | nobody | 11 months ago | unknown | unknown |
| 8767 | eric-wieser | refactor(Cache): tidy lake-manifest parsing in Cache | This now respects local copies of Mathlib dependencies (though in practice these invalidate the *online* cache because to point to local copies of Mathlib, the hash for `lakefile.lean` and `lake-manifest.json` is first invalidated). --- - [x] depends on: #11492 [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 49/49 | Cache/Hashing.lean,Cache/IO.lean,lake-manifest.json | 3 | 8 | ['digama0', 'eric-wieser', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 11 months ago | unknown | unknown |
| 22434 | qawbecrdtey | feat(Mathlib/Analysis/Normed/Lp/WithLp): Added more instances for `WithLp` | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 51/22 | Mathlib/Analysis/Normed/Lp/WithLp.lean | 1 | 11 | ['eric-wieser', 'github-actions', 'leanprover-bot', 'qawbecrdtey'] | nobody | 11 months ago | unknown | unknown |
| 15578 | znssong | feat(Function): Fixed points of function `f` with `f(x) >= x` | We added some lemmas of fixed points of function `f` with `f(x) >= x`, where `f : α → α` is a function on a finite type `α`. This will be needed in proof of Bondy-Chvátal theorem. --- See also branch `meow-sister/BondyChvatal`. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis new-contributor | 82/0 | Mathlib.lean,Mathlib/Dynamics/FixedPoints/Basic.lean,Mathlib/Dynamics/FixedPoints/Increasing.lean | 3 | 32 | ['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'urkud', 'vihdzp', 'znssong'] | nobody | 11 months ago | unknown | unknown |
| 22660 | Ruben-VandeVelde | chore: follow naming convention around Group.IsNilpotent | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 133/67 | Mathlib/GroupTheory/Frattini.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/SpecificGroups/ZGroup.lean | 3 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 13999 | adomani | feat: a linter to flag potential confusing conventions | Currently, the linter flags all uses of * `a - b` where `a b : Nat`; * `a / b` where `a b : Nat` or `a b : Int`; * `a / 0` more or less whenever the type of `a` has a `0` and a division. This comes up often when starting to use Lean and hopefully the flag can help mitigate initial confusions. When the local context contains the relevant inequality/divisibility hypothesis, the linter is quiet. A recent [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/not.20understanding.20deliberate.20error.20with.20.60ring.60.20over.20.E2.84.95/near/445879310) --- To make sure that the linter does not produce errors, #14007 activates the linter on "all" of mathlib. The expectation is that no error is thrown, just warnings. [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 251/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/Papercut.lean,MathlibTest/Papercut.lean | 4 | 24 | ['Julian', 'YaelDillies', 'adomani', 'eric-wieser', 'github-actions'] | nobody | 11 months ago | unknown | unknown |
| 19013 | quangvdao | feat(Algebra/BigOperators/Fin): Add `finSigmaFinEquiv` | This PR adds `finSigmaFinEquiv` which is the equivalence `(i : Fin m) × Fin (n i) ≃ Fin (∑ i, n i)`. This is the dependent version of `finProdFinEquiv`. CI should be passing, but there are two things I'd like feedback on: 1. When defining the mappings, I have to consider `m = 0` separately. Is there a more uniform definition? 2. I'm proving this as a step toward defining `Fin.join`, which is the analogue of `List.join`. I can now technically define `Fin.join` as: ``` variable {a : Fin n → ℕ} {α : (i : Fin n) → (j : Fin (a i)) → Sort*} def join (v : (i : Fin n) → (j : Fin (a i)) → α i j) (k : Fin (∑ i, a i)) : α (finSigmaFinEquiv.invFun k).1 (finSigmaFinEquiv.invFun k).2 := v (finSigmaFinEquiv.invFun k).1 (finSigmaFinEquiv.invFun k).2 ``` but this looks horrible. This highly motivates refactoring `invFun` as two new definitions: ``` def func1 {n : ℕ} (a : Fin n → ℕ) (k : Fin (∑ i, a i)) : Fin n := sorry def func2 {n : ℕ} (a : Fin n → ℕ) (k : Fin (∑ i, a i)) : Fin (a (func1 a k)) := sorry ``` I'm not sure what to call these functions. The analogues in the non-dependent case are `divNat` and `modNat`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 92/16 | Mathlib/Algebra/BigOperators/Fin.lean | 1 | 14 | ['YaelDillies', 'eric-wieser', 'github-actions', 'quangvdao'] | nobody | 11 months ago | unknown | unknown |
| 20389 | eric-wieser | feat: generalize results to `WithLp 0` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 116/53 | Mathlib/Analysis/Normed/Lp/PiLp.lean | 1 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 19189 | YnirPaz | feat(SetTheory/Ordinal/Arithmetic): order isomorphism between omega and the natural numbers | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-set-theory | 44/0 | Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean | 2 | 21 | ['YaelDillies', 'YnirPaz', 'github-actions', 'vihdzp'] | nobody | 11 months ago | unknown | unknown |
| 19227 | adomani | fix(CI): unwrap `lake test` in problem matcher | ... and also add a `#guard_msgs` in `AssertImported` test, so that `lake test` properly fails. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/CI.3A.20noisy.20.22test.20mathlib.22/near/483126955) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author CI | 9/20 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,MathlibTest/AssertImported.lean | 5 | 2 | ['bryangingechen', 'github-actions'] | nobody | 11 months ago | unknown | unknown |
| 15774 | kkytola | feat: Topology on `ENat` | This PR may contain some results that are not in the PR that adds a toppology on `ENat`. --- The immediate motivation is to be able to make the right continuity statement of the extended floor function on `ENNReal`, when this floor function is made `ENat`valued as suggested in the PR review of #15269. The API here is modelled on the early parts of [the corresponding ENNReal file](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Instances/ENNReal.html#top), although much of this case is more trivial. - [x] depends on: #15380 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology t-order | 161/9 | Mathlib/Data/ENat/Basic.lean,Mathlib/Topology/Instances/ENat.lean | 2 | 4 | ['YaelDillies', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 11 months ago | unknown | unknown |
| 16810 | urkud | feat: define `(a : ENat) ^ (b : ENat)` | The definition agrees with `Cardinal.toENat`, i.e., `#(α → β) = #β ^ #α`, where `#` is the not-yet-defined `ENat.card α = Cardinal.toENat (Cardinal.mk α)`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-set-theory t-data | 51/0 | Mathlib.lean,Mathlib/Data/ENat/Pow.lean | 2 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 16009 | Command-Master | acyclic graph | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-combinatorics | 232/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 20222 | eric-wieser | feat: generalize lemmas about derivatives | Rather than creating a huge diff by shuffling things around, this generalizes everything in-place and swaps between `section`s for topological and normed vector spaces. The rationale for this approach is that: * we may further generalize the results of this file, and this avoids us jumbling up the order multiple times unnecessarily. * this greatly reduces the chance of merge conflicts --- - [ ] depends on: #21065 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-analysis | 554/50 | Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,MathlibTest/Recall.lean | 3 | 8 | ['adomani', 'eric-wieser', 'github-actions', 'leanprover-bot', 'mathlib4-dependent-issues-bot'] | nobody | 11 months ago | unknown | unknown |
| 21018 | markimunro | feat(Data/Matrix): add file with key definitions and theorems about elementary row operations | Prove that each elementary row operation is equivalent to a multiplication by an elementary matrix, has another row operation which inverts it, and that each elementary matrix has a left inverse.
This is a very large PR and I understand it will take time. This is my first one and will likely have issues but I will be ready to answer questions/fix them as soon as possible.
Co-authored-by: Christopher Lynch |
t-data enhancement new-contributor merge-conflict awaiting-author | 1230/0 | Mathlib.lean,Mathlib/Data/Matrix/ElementaryRowOperations.lean,Mathlib/Data/Matrix/GaussianElimination.lean,Mathlib/Data/Matrix/GaussianEliminationOld,Mathlib/Data/Matrix/oldnames,et --hard 18533caba32,lean-toolchain | 7 | 17 | ['chrisflav', 'eric-wieser', 'github-actions', 'j-loreaux', 'markimunro'] | nobody | 11 months ago | unknown | unknown |
| 23514 | eric-wieser | refactor: smooth over Lattice/LinearOrder inheritance | This fixes the forgetful inheritance in `CompleteLinearOrder` and `ConditionallyCompleteLinearOrder`, which previously did not carry `compare` fields. (edit: moved to #23515) The following is the inheritance diagram before, where the dotted lines are manual instances. Note that every lattice typeclass that extends `LinearOrder` has to implement another dotted line edge, and remember to copy all the necessary data fields. ```mermaid graph TD LinearOrder --> Min,Max; LinearOrder --> PartialOrder; Lattice --> PartialOrder; CompleteLinearOrder --> Lattice; ConditionallyCompleteLinearOrder --> Lattice; LinearOrder-.-> Lattice; CompleteLinearOrder -.-> LinearOrder; ConditionallyCompleteLinearOrder -.-> LinearOrder; ``` This change introduces two new auxiliary typeclasses, to encapsulate these troublesome edges. `LinearOrderedLattice` can be thought of as `LinearOrder`, but with `sup`/`inf` instead of `min`/`max`. This is crucial, because it ensures the duplicate fields are merged in `extends CompleteLattice X, LinearOrderedLattice X`, which would not be the case for `extends CompleteLattice X, LinearOrder X`. The result is: ```mermaid graph TD LinearOrder --> Min,Max; LinearOrder --> LinearOrderBase; LinearOrderBase --> PartialOrder; Lattice --> PartialOrder; LinearOrderedLattice -.-> LinearOrder; LinearOrderedLattice --> LinearOrderBase; LinearOrderedLattice --> Lattice; CompleteLinearOrder --> LinearOrderedLattice; ConditionallyCompleteLinearOrder --> LinearOrderedLattice; ``` --- - [ ] depends on: #23515 - [ ] [](https://gitpod.io/from-referrer/) | merge-conflict | 85/66 | Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Order/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Lattice.lean | 7 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 11 months ago | unknown | unknown |
| 20746 | JLimperg | Aesop forward branch test | --- This is not a real PR; I just want to benchmark this Aesop branch. [](https://gitpod.io/from-referrer/) | merge-conflict | 14/6 | .github/workflows/build.yml,Mathlib/Data/Nat/Prime/Defs.lean,lake-manifest.json,lakefile.lean,scripts/bench/fake-root/lib/lean/libleanshared.so,scripts/bench/run | 6 | 11 | ['JLimperg', 'Kha', 'github-actions', 'leanprover-bot'] | nobody | 11 months ago | unknown | unknown |
| 22810 | pechersky | feat(Counterexamples): metric space not induced by norm | Because the distance is not homogeneous --- [](https://gitpod.io/from-referrer/) - [x] depends on: #22845 | merge-conflict WIP t-topology t-analysis | 202/1 | Counterexamples.lean,Counterexamples/NotBoundedSMulMetricSpace.lean,Mathlib.lean,Mathlib/Analysis/Normed/PiNat.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean,Mathlib/Topology/MetricSpace/Polish.lean | 6 | 21 | ['eric-wieser', 'github-actions', 'loefflerd', 'mathlib4-dependent-issues-bot', 'pechersky'] | nobody | 11 months ago | unknown | unknown |
| 13124 | astrainfinita | chore: remove `CovariantClass` and `ContravariantClass` | Lean cannot handle `CovariantClass` and `ContravariantClass` correctly - TC slowness - [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/TC.20slowness) - https://github.com/leanprover-community/mathlib4/issues/6646#issuecomment-1691792488 - It may also have made #6326 fail. - Needs a weird hack to find instance: #9252 --- - [x] depends on: #13154 [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 602/486 | Mathlib/Algebra/AddConstMap/Basic.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/Algebra/Group/Submonoid/Pointwise.lean,Mathlib/Algebra/Group/UniqueProds/Basic.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Group/Action.lean,Mathlib/Algebra/Order/Group/DenselyOrdered.lean,Mathlib/Algebra/Order/Group/Units.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean,Mathlib/Algebra/Order/GroupWithZero/WithZero.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/OrderDual.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Ring/Subring/Pointwise.lean,Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean,Mathlib/Analysis/SumOverResidueClass.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/GroupTheory/OrderOfElement.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/Topology/Algebra/Order/LiminfLimsup.lean | 37 | 6 | ['MichaelStollBayreuth', 'astrainfinita', 'github-actions', 'leanprover-bot', 'mathlib4-dependent-issues-bot'] | nobody | 11 months ago | unknown | unknown |
| 19275 | eric-wieser | fix: if nolint files change, do a full rebuild | Otherwise CI will succeed when removing entries from the file, but fail later when someone changes something unrelated. --- [](https://gitpod.io/from-referrer/) | merge-conflict delegated | 8/0 | lakefile.lean | 1 | 20 | ['YaelDillies', 'adomani', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-bors'] | nobody | 10 months ago | unknown | unknown |
| 15212 | victorliu5296 | feat: Add fundamental theorem of calculus-2 for Banach spaces | add the Mean Value Theorem for Banach spaces to the library and include reference for the theorem statement This theorem states that if `f : X → Y` is differentiable along the line segment from `a` to `b`, then the change in `f` equals the integral of its derivative along this path. This extends the mean value theorem to Banach spaces. This can be used for the eventual proof of the Newton-Kantorovich theorem with 1 constant contained inside the added reference. Here is the discussion on Zulipchat: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Contributing.20FTC-2.20for.20Banach.20spaces | t-measure-probability new-contributor merge-conflict awaiting-author t-analysis | 60/1 | Mathlib/MeasureTheory/Integral/FundThmCalculus.lean | 1 | 3 | ['github-actions', 'hrmacbeth', 'victorliu5296'] | nobody | 10 months ago | unknown | unknown |
| 22888 | plp127 | perf: replace `Lean.Expr.swapBVars` with a better? implementation | Replaces `Lean.Expr.swapBVars` with a version that traverses the expression. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 14/12 | Mathlib/Tactic/FunProp/ToBatteries.lean | 1 | 23 | ['eric-wieser', 'github-actions', 'joneugster', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'plp127'] | eric-wieser and joneugster | 10 months ago | unknown | unknown |
| 15943 | urkud | feat: add `ProdQuotientMapSpace` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 731/11 | Mathlib.lean,Mathlib/Topology/Basic.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Maps/ProdQuotient.lean | 4 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 22579 | kvanvels | doc(Topology/Defs/Induced): fix comments on three functions related to RestrictGenTopology | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology documentation awaiting-author | 10/9 | Mathlib/Topology/Defs/Induced.lean,Mathlib/Topology/RestrictGen.lean | 2 | 4 | ['github-actions', 'kvanvels', 'leanprover-community-bot-assistant', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 19771 | robertylewis | perf: qqify two functions in linarith | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 17/24 | Mathlib/Tactic/Linarith/Frontend.lean,Mathlib/Tactic/Linarith/Verification.lean | 2 | 5 | ['github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-bot-assistant', 'robertylewis'] | nobody | 10 months ago | unknown | unknown |
| 22308 | plp127 | feat (Analysis/Convex): Generalize `Convex` lemmas to `StarConvex` | This PR generalizes many lemmas assuming `Convex 𝕜 s` to assume `StarConvex 𝕜 0 s`. --- - [x] depends on: #22421 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis new-contributor | 30/18 | Mathlib/Analysis/Convex/Gauge.lean,Mathlib/Analysis/Convex/GaugeRescale.lean,Mathlib/Analysis/Convex/Star.lean,Mathlib/Analysis/LocallyConvex/AbsConvexOpen.lean | 4 | 5 | ['Paul-Lez', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 21488 | imbrem | feat(CategoryTheory/Monoidal): premonoidal categories | Add support for premonoidal categories --- Still want to add support for: - Premonoidal braided/symmetric categories - The monoidal coherence theorem, which I've already ported in my `discretion` library - The `coherence` tactic, which should work fine for premonoidal categories too but wanted to get this in front of reviewers ASAP to make sure my general approach was alright [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory new-contributor | 900/361 | Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean,Mathlib/CategoryTheory/Bicategory/End.lean,Mathlib/CategoryTheory/GradedObject/Monoidal.lean,Mathlib/CategoryTheory/Localization/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/CategoryTheory/Monoidal/End.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Opposite.lean,Mathlib/CategoryTheory/Monoidal/Transport.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/MonoidalComp.lean,MathlibTest/StringDiagram.lean | 21 | 9 | ['YaelDillies', 'github-actions', 'grunweg', 'imbrem', 'kim-em', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 21525 | sinhp | feat(CategoryTheory): Locally Cartesian Closed Categories (Prelim) | This PR defines the basic preliminaries for defining locally cartesian closed categories (LCCCs). In particular, using the calculus of mates we define certain natural isomorphisms involving `Over.star` and `Over.pullback` which will be crucial in defining the right adjoint to the pullback functor in the development of LCCCs. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory large-import | 338/24 | Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Galois/Examples.lean | 3 | 13 | ['b-mehta', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'sinhp'] | nobody | 10 months ago | unknown | unknown |
| 22319 | sinhp | feat(CategoryTheory): Locally Cartesian Closed Categories (Sections Right Adjoint) | we define the `Over.sections` functor in the file `CategoryTheory.Comma.Over.Sections` and prove that it is a right adjoint to the `Over.star`, thereby solving an existing TODO in `Over.pullback` file. The `sections` functor is used to define the right adjoint to the pullback functor `Over.pullback` in the development of LCCCs. Moreover, the rest of added lemmas and theorems to `CategoryTheory.Comma.Over.Pullback` are crucial for the development of LCCCs in the next PR. --- - [ ] depends on: #21525 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 547/24 | Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Comma/Over/Sections.lean,Mathlib/CategoryTheory/Galois/Examples.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 22321 | sinhp | feat(CategoryTheory): Locally Cartesian Closed Categories (Definition) | This PR defines locally cartesian closed categories in terms of existence of the pushforward functors (right adjoint to the pullback functor) for all morphisms. We develop basic API and prove the following:
1. Existence of the pushforward functors is equivalent to cartesian closed slices.
2. Any locally cartesian closed category with a terminal object is cartesian closed.
3. The slices of a locally cartesian closed category are locally cartesian closed.
Some of the content is based on the project of formalization of polynomial functors at the Trimester "Prospect of Formal Mathematics" at the Hausdorff Institute (HIM) in Bonn. https://github.com/sinhp/Poly
I found this implementation of locally cartesian closed categories amenable to polynomial functors formalization.
Co-authored-by: Emily Riehl |
merge-conflict blocked-by-other-PR t-category-theory large-import | 812/24 | Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Comma/Over/Sections.lean,Mathlib/CategoryTheory/Galois/Examples.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Basic.lean | 6 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 13653 | adomani | feat: the unusedSetOptionIn linter | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter large-import | 199/0 | Mathlib.lean,Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/UnnecessarySetOptionIn.lean,MathlibTest/UnnecessarySetOptionIn.lean | 6 | 15 | ['adomani', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 19425 | hrmacbeth | perf: gcongr forward-reasoning adjustment | This PR changes the "forward-reasoning" component of `gcongr`, rendering it more efficient, particularly in problems with a large number of variables/hypotheses in the context.
Previously `gcongr` attempted to match *every* `LocalDecl` against *every* node in the parse tree using *each* of the five implemented `@[gcongr_forward]` mini-tactics: matching directly, matching after applying `symm`, matching after applying `le_of_lt`, etc etc.
The new algorithm filters out the non-Prop `LocalDecl`s, and also adjusts the `@[gcongr_forward]` extensions so that, rather than re-apply the relevant lemmas (`symm`, `le_of_lt`, etc) at every node in the parse tree, the lemmas are applied in advance to the `LocalDecl`s and the result (if successful) stored.
The performance effect on mathlib as a whole is miniscule, but it speeds up the profiler's count of "tactic execution of Mathlib.Tactic.GCongr" in the newly-added test from 257 ms to 47 ms, and has a similar effect on real-life examples in an analysis project of mine.
Co-authored-by: Mario Carneiro |
merge-conflict awaiting-author | 130/59 | Mathlib/Order/Lattice.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GCongr/ForwardAttr.lean,MathlibTest/GCongr/inequalities.lean | 4 | 17 | ['Vierkantor', 'github-actions', 'hrmacbeth', 'leanprover-bot', 'leanprover-community-bot-assistant'] | Vierkantor | 10 months ago | unknown | unknown |
| 20873 | vbeffara | feat(Topology/Covering): path lifting and homotopy lifting | This proves the existence and uniqueness of path and homotopy lifts through covering maps. --- I tried to separate as much of the proof as possible into separate PRs (which are already in Mathlib now), but the proof here relies on a monolithic construction of an explicit lift along a well-chosen subdivision, in `partial_lift`, with associated definitions. Only one standalone lean file added. An older WIP PR #10084 by Junyan Xu @alreadydone proves similar results using a very similar construction for path lifting, with a different argument to obtain continuity for homotopy lifting. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology new-contributor | 281/1 | Mathlib.lean,Mathlib/Topology/Covering/Basic.lean,Mathlib/Topology/Covering/Lift.lean | 3 | 9 | ['alreadydone', 'github-actions', 'grunweg', 'vbeffara'] | nobody | 10 months ago | unknown | unknown |
| 22817 | peabrainiac | feat(CategoryTheory/Sites): local sites | Defines local sites and shows that sheaves of types on them form a local topos, in that the global sections functor `Sheaf.Γ` has a right adjoint `Sheaf.codisc` that is fully faithful. --- - [x] depends on: #22816 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 263/0 | Mathlib.lean,Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Products.lean,Mathlib/CategoryTheory/Limits/Types.lean,Mathlib/CategoryTheory/Sites/GlobalSections.lean,Mathlib/CategoryTheory/Sites/LocalSite.lean,Mathlib/CategoryTheory/Sites/Sheaf.lean | 6 | 4 | ['github-actions', 'joelriou', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 24040 | astrainfinita | refactor: unbundle algebra from `(NonUnital){Seminormed, Normed}(Comm)Ring` | --- - [ ] depends on: #23966 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR merge-conflict slow-typeclass-synthesis t-analysis | 3775/3674 | Archive/Imo/Imo1998Q2.lean,Counterexamples/LinearOrderWithPosMulPosEqZero.lean,Mathlib/Algebra/Algebra/RestrictScalars.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/Order/Field/Canonical.lean,Mathlib/Algebra/Order/Field/Rat.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Nonneg/Field.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/CPolynomial.lean,Mathlib/Analysis/Analytic/CPolynomialDef.lean,Mathlib/Analysis/Analytic/ChangeOrigin.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/Analytic/Linear.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Analytic/Order.lean,Mathlib/Analysis/Analytic/Polynomial.lean,Mathlib/Analysis/Analytic/RadiusLiminf.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Analytic/Within.lean,Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean,Mathlib/Analysis/Asymptotics/Defs.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/Asymptotics/Theta.lean,Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/BoxIntegral/Integrability.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Measure.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/Classes.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean,Mathlib/Analysis/CStarAlgebra/ContinuousLinearMap.lean,Mathlib/Analysis/CStarAlgebra/ContinuousMap.lean,Mathlib/Analysis/CStarAlgebra/Exponential.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean,Mathlib/Analysis/CStarAlgebra/Module/Defs.lean,Mathlib/Analysis/CStarAlgebra/Multiplier.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/CStarAlgebra/Unitization.lean,Mathlib/Analysis/CStarAlgebra/lpSpace.lean,Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean,Mathlib/Analysis/Calculus/AddTorsor/Coord.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean,Mathlib/Analysis/Calculus/BumpFunction/Normed.lean,Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean,Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/ContDiff/RCLike.lean,Mathlib/Analysis/Calculus/ContDiff/WithLp.lean,Mathlib/Analysis/Calculus/DSlope.lean,Mathlib/Analysis/Calculus/Deriv/Abs.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/AffineMap.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Comp.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/Deriv/Inverse.lean,Mathlib/Analysis/Calculus/Deriv/Linear.lean,Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/Calculus/Deriv/Prod.lean,Mathlib/Analysis/Calculus/Deriv/Shift.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/Analysis/Calculus/Deriv/Star.lean,Mathlib/Analysis/Calculus/Deriv/Support.lean,Mathlib/Analysis/Calculus/Deriv/ZPow.lean,Mathlib/Analysis/Calculus/DiffContOnCl.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean | 630 | 5 | ['astrainfinita', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 16314 | astrainfinita | chore(Data/Quot): deprecate `ind*'` APIs | --- - [x] depends on: #16264 [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 247/287 | Counterexamples/CliffordAlgebraNotInjective.lean,Mathlib/Algebra/Colimit/Module.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean,Mathlib/CategoryTheory/ConnectedComponents.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/CategoryTheory/Subobject/FactorThru.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Computability/Reduce.lean,Mathlib/Computability/Tape.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/Multiset/MapFold.lean,Mathlib/Data/Multiset/ZeroCons.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/Data/Setoid/Partition.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/GroupTheory/Complement.lean,Mathlib/GroupTheory/Congruence/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/Hom.lean,Mathlib/GroupTheory/Coset/Basic.lean,Mathlib/GroupTheory/Coset/Defs.lean,Mathlib/GroupTheory/FreeAbelianGroup.lean,Mathlib/GroupTheory/GroupAction/Basic.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/PGroup.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/GroupTheory/PresentedGroup.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/GroupTheory/SchurZassenhaus.lean,Mathlib/GroupTheory/Sylow.lean,Mathlib/LinearAlgebra/Alternating/DomCoprod.lean,Mathlib/LinearAlgebra/Projectivization/Basic.lean,Mathlib/LinearAlgebra/Quotient/Basic.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean,Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Category/PartOrd.lean,Mathlib/Order/Filter/Germ/Basic.lean,Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Congruence/Basic.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Defs.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Valuation/Quotient.lean,Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean,Mathlib/Topology/Algebra/InfiniteSum/Module.lean,Mathlib/Topology/Separation/Basic.lean | 65 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 23509 | eric-wieser | refactor: Make ENNReal an abbrev | The `Coe` instance becomes `CoeTC` to match what we do for `WithTop` (such that the priority kicks in) Probably we could have both copies and things would be ok. --- [](https://gitpod.io/from-referrer/) This includes part of #23750 | merge-conflict t-data | 22/66 | Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/BigOperators.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/MeasureTheory/Integral/SetToL1.lean,Mathlib/MeasureTheory/Measure/Sub.lean,Mathlib/MeasureTheory/Measure/TightNormed.lean,Mathlib/Topology/MetricSpace/PartitionOfUnity.lean | 7 | 22 | ['eric-wieser', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'leanprover-community-mathlib4-bot', 'mattrobball', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 24060 | eric-wieser | chore(MeasureTheory): use `0` instead of `const _ 0` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-measure-probability | 30/20 | Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Function/SimpleFuncDense.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Integral/Lebesgue/Countable.lean,Mathlib/MeasureTheory/Integral/SetToL1.lean,Mathlib/Probability/StrongLaw.lean | 7 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 24058 | astrainfinita | refactor: unbundle algebra from `*NormedField` | --- - [ ] depends on: #24040 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR merge-conflict slow-typeclass-synthesis t-analysis | 4602/4346 | Archive/Hairer.lean,Archive/Imo/Imo1998Q2.lean,Counterexamples/LinearOrderWithPosMulPosEqZero.lean,Mathlib/Algebra/Algebra/RestrictScalars.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/Order/Field/Canonical.lean,Mathlib/Algebra/Order/Field/Rat.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Nonneg/Field.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/CPolynomial.lean,Mathlib/Analysis/Analytic/CPolynomialDef.lean,Mathlib/Analysis/Analytic/ChangeOrigin.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/Analytic/Linear.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Analytic/Order.lean,Mathlib/Analysis/Analytic/Polynomial.lean,Mathlib/Analysis/Analytic/RadiusLiminf.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Analytic/Within.lean,Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean,Mathlib/Analysis/Asymptotics/Defs.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/Asymptotics/Theta.lean,Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/BoxIntegral/Integrability.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Measure.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/Classes.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean,Mathlib/Analysis/CStarAlgebra/ContinuousLinearMap.lean,Mathlib/Analysis/CStarAlgebra/ContinuousMap.lean,Mathlib/Analysis/CStarAlgebra/Exponential.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean,Mathlib/Analysis/CStarAlgebra/Module/Defs.lean,Mathlib/Analysis/CStarAlgebra/Multiplier.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/CStarAlgebra/Unitization.lean,Mathlib/Analysis/CStarAlgebra/lpSpace.lean,Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean,Mathlib/Analysis/Calculus/AddTorsor/Coord.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean,Mathlib/Analysis/Calculus/BumpFunction/Normed.lean,Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean,Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/ContDiff/RCLike.lean,Mathlib/Analysis/Calculus/ContDiff/WithLp.lean,Mathlib/Analysis/Calculus/DSlope.lean,Mathlib/Analysis/Calculus/Deriv/Abs.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/AffineMap.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Comp.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/Deriv/Inverse.lean,Mathlib/Analysis/Calculus/Deriv/Linear.lean,Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/Calculus/Deriv/Pi.lean,Mathlib/Analysis/Calculus/Deriv/Polynomial.lean,Mathlib/Analysis/Calculus/Deriv/Pow.lean,Mathlib/Analysis/Calculus/Deriv/Prod.lean,Mathlib/Analysis/Calculus/Deriv/Shift.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/Analysis/Calculus/Deriv/Star.lean,Mathlib/Analysis/Calculus/Deriv/Support.lean,Mathlib/Analysis/Calculus/Deriv/ZPow.lean | 665 | 7 | ['astrainfinita', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 11455 | adomani | fix: unsqueeze simp, re Yaël's comments on #11259 | This PR reverts/simplifies some of the "squeeze `simp`" changes in #11259. See #11259 for context. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 3/6 | Mathlib/Algebra/Group/Conj.lean,Mathlib/Data/Seq/WSeq.lean | 2 | 8 | ['Ruben-VandeVelde', 'YaelDillies', 'grunweg', 'loefflerd', 'robertylewis', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 7325 | eric-wieser | chore: use preimageIso instead of defeq abuse for InducedCategory | This makes a few things slightly more verbose, but the type casts are now explicit in those places. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory awaiting-CI | 22/21 | Mathlib/CategoryTheory/EssentialImage.lean,Mathlib/CategoryTheory/Monoidal/Braided.lean,Mathlib/CategoryTheory/Monoidal/Subcategory.lean | 3 | 1 | ['grunweg'] | nobody | 10 months ago | unknown | unknown |
| 7874 | astrainfinita | chore: make `IsScalarTower A A B` and `IsScalarTower A B B` higher priority | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra awaiting-CI | 10/9 | Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Data/Rat/Cast/Defs.lean,Mathlib/GroupTheory/GroupAction/Ring.lean | 4 | 3 | ['astrainfinita', 'grunweg', 'leanprover-bot'] | nobody | 10 months ago | unknown | unknown |
| 13038 | adomani | feat: Mathlib weekly reports | This PR introduces a weekly cron job that computes a "global" report on the evolution of Mathlib in the previous week. It consists of * a CI workflow with a cron job that runs at minight on Sunday (`.github/workflows/mathlib_stats.yaml`); * a Lean file extracting a categorized list of "all" the declarations in Mathlib (`scripts/count_decls.lean`); * a bash file computing Git-diff-related information and collating the data from the Lean file (`scripts/mathlib_stats.sh`); * a convenience CI workflow that is triggered on adding the `test-ci` label and results in posting on the PR and on Zulip the report (`.github/workflows/mathlib_stats_label.yaml`). The second CI workflow is intended to be removed just before/right after the PR is ready to merge. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general) [Thread for the reports](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Mathlib.20weekly.20change.20report) --- [](https://gitpod.io/from-referrer/) | awaiting-author CI t-meta | 338/0 | .github/workflows/mathlib_stats.yaml,.github/workflows/mathlib_stats_label.yaml,scripts/count_decls.lean,scripts/mathlib_stats.sh | 4 | 10 | ['adomani', 'github-actions', 'grunweg', 'kim-em', 'kmill'] | nobody | 10 months ago | unknown | unknown |
| 5952 | eric-wieser | feat: add Qq wrappers for ToExpr | --- - [ ] depends on: #6699 (to appease the linter) [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-CI t-meta | 247/150 | Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/VecNotation.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Tactic/DeriveToExpr.lean,Mathlib/Tactic/FBinop.lean,Mathlib/Tactic/ToExpr.lean,Mathlib/Util/Qq.lean,test/DeriveToExpr.lean,test/vec_notation.lean | 9 | 7 | ['eric-wieser', 'gebner', 'grunweg', 'leanprover-community-mathlib4-bot'] | nobody | 10 months ago | unknown | unknown |
| 15483 | astrainfinita | chore(GroupTheory/Coset): reduce defeq abuse | --- - [x] depends on: #15482 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 114/60 | Mathlib/GroupTheory/Commensurable.lean,Mathlib/GroupTheory/Coset.lean,Mathlib/GroupTheory/QuotientGroup.lean,Mathlib/LinearAlgebra/Alternating/DomCoprod.lean,Mathlib/MeasureTheory/Measure/Haar/Quotient.lean,Mathlib/Topology/Algebra/Group/Compact.lean | 6 | 14 | ['astrainfinita', 'eric-wieser', 'github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mattrobball', 'mergify', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 16594 | astrainfinita | perf: reorder `extends` and remove some instances in algebra hierarchy | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra | 240/92 | Mathlib.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Associated/Basic.lean,Mathlib/Algebra/BigOperators/Ring/List.lean,Mathlib/Algebra/Field/Defs.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/Prod.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Order/AddGroupWithTop.lean,Mathlib/Algebra/Order/Field/Canonical/Defs.lean,Mathlib/Algebra/Order/Field/Defs.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/Algebra/Ring/Ext.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/Rat.lean,Mathlib/Algebra/Ring/SumsOfSquares.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/InnerProductSpace/Symmetric.lean,Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean,Mathlib/Data/Finset/NoncommProd.lean,Mathlib/Data/Int/Cast/Defs.lean,Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean,Mathlib/FieldTheory/SplittingField/Construction.lean,Mathlib/GroupTheory/Congruence/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/GroupTheory/Torsion.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/Order/Filter/Germ/Basic.lean,Mathlib/Order/Interval/Finset/Box.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/Coalgebra/Hom.lean,Mathlib/RingTheory/Ideal/Quotient.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean,Mathlib/Util/NoInstances.lean,scripts/noshake.json | 50 | 8 | ['astrainfinita', 'github-actions', 'grunweg', 'leanprover-bot'] | nobody | 10 months ago | unknown | unknown |
| 24106 | astrainfinita | refactor: unbundle algebra from `*CStarAlgebra` | --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #24058 | t-algebra blocked-by-other-PR merge-conflict slow-typeclass-synthesis t-analysis | 4702/4459 | Archive/Hairer.lean,Archive/Imo/Imo1998Q2.lean,Counterexamples/LinearOrderWithPosMulPosEqZero.lean,Mathlib/Algebra/Algebra/RestrictScalars.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/Order/Field/Canonical.lean,Mathlib/Algebra/Order/Field/Rat.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Nonneg/Field.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/CPolynomial.lean,Mathlib/Analysis/Analytic/CPolynomialDef.lean,Mathlib/Analysis/Analytic/ChangeOrigin.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/Analytic/Linear.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Analytic/Order.lean,Mathlib/Analysis/Analytic/Polynomial.lean,Mathlib/Analysis/Analytic/RadiusLiminf.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Analytic/Within.lean,Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean,Mathlib/Analysis/Asymptotics/Defs.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/Asymptotics/Theta.lean,Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/BoxIntegral/Integrability.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Measure.lean,Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/Classes.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/CStarAlgebra/ContinuousLinearMap.lean,Mathlib/Analysis/CStarAlgebra/ContinuousMap.lean,Mathlib/Analysis/CStarAlgebra/Exponential.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean,Mathlib/Analysis/CStarAlgebra/Hom.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean,Mathlib/Analysis/CStarAlgebra/Module/Defs.lean,Mathlib/Analysis/CStarAlgebra/Multiplier.lean,Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean,Mathlib/Analysis/CStarAlgebra/SpecialFunctions/PosPart.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/CStarAlgebra/Unitization.lean,Mathlib/Analysis/CStarAlgebra/lpSpace.lean,Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean,Mathlib/Analysis/Calculus/AddTorsor/Coord.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean,Mathlib/Analysis/Calculus/BumpFunction/Normed.lean,Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean,Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/ContDiff/RCLike.lean,Mathlib/Analysis/Calculus/ContDiff/WithLp.lean,Mathlib/Analysis/Calculus/DSlope.lean,Mathlib/Analysis/Calculus/Deriv/Abs.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/AffineMap.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Comp.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/Deriv/Inverse.lean,Mathlib/Analysis/Calculus/Deriv/Linear.lean,Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/Calculus/Deriv/Pi.lean,Mathlib/Analysis/Calculus/Deriv/Polynomial.lean,Mathlib/Analysis/Calculus/Deriv/Pow.lean,Mathlib/Analysis/Calculus/Deriv/Prod.lean | 670 | 5 | ['astrainfinita', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 13780 | adomani | deprecate injective | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 31/9 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,Mathlib/Init/Function.lean,lake-manifest.json,lakefile.lean | 7 | 2 | ['github-actions', 'grunweg'] | nobody | 10 months ago | unknown | unknown |
| 19467 | quangvdao | feat(MvPolynomial/Equiv): Add `MvPolynomial.finSuccEquivNth` | This PR adds `MvPolynomial.finSuccEquivNth`, which is the algebra isomorphism between `MvPolynomial (Fin (n + 1)) R` and `Polynomial (MvPolynomial (Fin n) R)` by identifying the `p`-th variable as the indeterminate.
This generalizes `MvPolynomial.finSuccEquiv` which is only for the `0`-th variable. The supporting theorems for the `Nth` version are identical to the current version, with the `Nth` version deduced from the former.
These changes require new definitions in `Finsupp/Fin`, which is a separate PR.
Co-authored-by: Yaël Dillies |
merge-conflict t-algebra blocked-by-other-PR | 541/163 | Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finsupp.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/Tuple/Basic.lean,Mathlib/Data/Finsupp/Fin.lean,scripts/nolints_prime_decls.txt | 7 | 9 | ['acmepjz', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'quangvdao'] | nobody | 10 months ago | unknown | unknown |
| 20313 | thefundamentaltheor3m | feat(Data/Complex/Exponential): prove some useful results about the complex exponential. | This PR proves two basic results about the complex exponential: * `abs_exp_mul_I (x : ℂ) : abs (Complex.exp (I * x)) = Real.exp (-x.im)` * `one_sub_rexp_re_le_abs_one_sub_cexp (x : ℂ) : 1 - Real.exp x.re ≤ Complex.abs (1 - Complex.exp x)` Both results were proved as part of the sphere packing project. There's a chance they're too specific for mathlib, but I thought they were worth PRing anyway. Would it also be a good idea to tag `abs_exp_mul_I` with `simp`? Feedback/suggestions welcome. Note: `one_sub_rexp_re_le_abs_one_sub_cexp` was proved by Bhavik Mehta @b-mehta --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis new-contributor | 167/141 | Mathlib.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/ERealExp.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean,Mathlib/Data/Complex/Exponential/Defs.lean,Mathlib/Data/Complex/Exponential/Lemmas.lean,Mathlib/Data/Complex/ExponentialBounds.lean,Mathlib/Tactic/FunProp.lean,MathlibTest/Recall.lean,MathlibTest/positivity.lean | 10 | 12 | ['b-mehta', 'github-actions', 'kim-em', 'thefundamentaltheor3m', 'trivial1711'] | nobody | 10 months ago | unknown | unknown |
| 22698 | Kiolt | feat: notation for whisker(Left/Right)Iso | From Toric --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory toric | 175/113 | Mathlib/Algebra/Homology/Monoidal.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Bicategory/Basic.lean,Mathlib/CategoryTheory/Bicategory/Coherence.lean,Mathlib/CategoryTheory/Bicategory/Extension.lean,Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Strong.lean,Mathlib/CategoryTheory/Bicategory/SingleObj.lean,Mathlib/CategoryTheory/Closed/Functor.lean,Mathlib/CategoryTheory/Closed/Ideal.lean,Mathlib/CategoryTheory/Enriched/FunctorCategory.lean,Mathlib/CategoryTheory/GradedObject/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean,Mathlib/CategoryTheory/Monoidal/Preadditive.lean,Mathlib/CategoryTheory/Monoidal/Transport.lean,Mathlib/Tactic/CategoryTheory/BicategoricalComp.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Normalize.lean,Mathlib/Tactic/CategoryTheory/Bicategory/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/MonoidalComp.lean | 27 | 21 | ['Kiolt', 'YaelDillies', 'b-mehta', 'github-actions', 'leanprover-bot'] | nobody | 10 months ago | unknown | unknown |
| 19613 | madvorak | refactor(Combinatorics/Optimization/ValuedCSP): make only valid `FractionalOperation` possible | Originally `FractionalOperation` was any multiset (possible empty). Then `FractionalOperation.IsValid` said it was nonempty. Instead, I would like to make it nonempty by definition. As a result, empty/invalid fractional operation couldn't be declared at all. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 14/17 | Mathlib/Combinatorics/Optimization/ValuedCSP.lean | 1 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 20730 | kuotsanhsu | feat(LinearAlgebra/Matrix/SchurTriangulation): prove Schur decomposition/triangulation | `Matrix.schur_triangulation` shows that a matrix over an algebraically closed field is unitarily similar to an upper triangular matrix --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 317/2 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/LinearAlgebra/Matrix/SchurTriangulation.lean,Mathlib/Logic/Equiv/Basic.lean | 4 | 14 | ['eric-wieser', 'github-actions', 'kim-em', 'kuotsanhsu'] | nobody | 10 months ago | unknown | unknown |
| 19117 | eric-wieser | feat: derivatives of matrix operations | These are finally possible to state after #19108. However, a lot of bundled `ContinuousLinearMap`s are missing. --- - [x] depends on: #19108 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 336/22 | Mathlib.lean,Mathlib/Analysis/Calculus/Deriv/Matrix.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Matrix.lean | 4 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 12605 | astrainfinita | chore: attribute [induction_eliminator] | Add attribute [induction_eliminator] to `AdjoinRoot.induction_on` `ENat.recTopCoe` `ENNReal.recTopCoe` `Finset.induction` `Magma.AssocQuotient.induction_on` `ManyOneDegree.ind_on` `Module.Ray.ind` (and add `Orientation.ind` for `Orientation`, an abbrev of it. I wish that we do not need to add it in the future.) `Multiset.induction` `MvPolynomial.induction_on` `OnePoint.rec` `Opposite.rec'` `Ordinal.limitRecOn` `PartENat.casesOn` `Polynomial.induction_on'` `QuotientAddGroup.induction_on'` (and add `AddCircle.induction_on` for `AddCircle`, an abbrev of it. I wish that we do not need to add it in the future.) `QuotientGroup.induction_on'` (doesn't actually work) `Real.Angle.induction_on` `SimplexCategory.rec` `Trunc.induction_on` --- - [x] depends on: #13476 - [x] depends on: #13264 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 354/342 | Mathlib/Algebra/BigOperators/Associated.lean,Mathlib/Algebra/BigOperators/Group/Finset.lean,Mathlib/Algebra/BigOperators/Group/Multiset.lean,Mathlib/Algebra/BigOperators/Ring.lean,Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/GCDMonoid/Multiset.lean,Mathlib/Algebra/Group/Subgroup/Finite.lean,Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/Weights/Basic.lean,Mathlib/Algebra/Module/BigOperators.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/MvPolynomial/Derivation.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Eval.lean,Mathlib/Algebra/Polynomial/Induction.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Polynomial/PartialFractions.lean,Mathlib/Algebra/Polynomial/Smeval.lean,Mathlib/Algebra/Tropical/BigOperators.lean,Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean,Mathlib/AlgebraicTopology/SimplexCategory.lean,Mathlib/AlgebraicTopology/SplitSimplicialObject.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Asymptotics/Asymptotics.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/Deriv/Polynomial.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Exposed.lean,Mathlib/Analysis/Fourier/AddCircle.lean,Mathlib/Analysis/NormedSpace/Exponential.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/PolynomialExp.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean,Mathlib/CategoryTheory/Filtered/Basic.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean,Mathlib/Combinatorics/SetFamily/Compression/Down.lean,Mathlib/Combinatorics/SetFamily/FourFunctions.lean,Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/DFinsupp/Basic.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finset/Lattice.lean,Mathlib/Data/Finset/NAry.lean,Mathlib/Data/Fintype/Sum.lean,Mathlib/Data/Multiset/Antidiagonal.lean,Mathlib/Data/Multiset/Basic.lean,Mathlib/Data/Multiset/Bind.lean,Mathlib/Data/Multiset/Fold.lean,Mathlib/Data/Multiset/Lattice.lean,Mathlib/Data/Multiset/Pi.lean,Mathlib/Data/Multiset/Powerset.lean,Mathlib/Data/Multiset/Sections.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Set/Pointwise/BigOperators.lean,Mathlib/FieldTheory/IntermediateField.lean,Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/RingedSpace/Basic.lean,Mathlib/Geometry/RingedSpace/OpenImmersion.lean,Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean,Mathlib/GroupTheory/Coset.lean,Mathlib/GroupTheory/NoncommPiCoprod.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/LinearAlgebra/Determinant.lean,Mathlib/LinearAlgebra/Eigenspace/Basic.lean,Mathlib/LinearAlgebra/FiniteDimensional.lean,Mathlib/LinearAlgebra/LinearIndependent.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Orientation.lean,Mathlib/LinearAlgebra/Projectivization/Basic.lean,Mathlib/LinearAlgebra/Ray.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/Logic/Hydra.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean,Mathlib/MeasureTheory/Function/L1Space.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Integral/Lebesgue.lean,Mathlib/MeasureTheory/Integral/Marginal.lean,Mathlib/MeasureTheory/Integral/MeanInequalities.lean,Mathlib/MeasureTheory/Integral/SetIntegral.lean,Mathlib/MeasureTheory/Measure/AddContent.lean | 140 | 14 | ['YaelDillies', 'astrainfinita', 'eric-wieser', 'github-actions', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 23859 | urkud | feat(Topology/../Order/Field): generalize to `Semifield` | .. from a linear ordered field to a linear ordered semifield--- - [ ] depends on: #23857 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 245/219 | Mathlib/Algebra/Order/Group/Pointwise/Interval.lean,Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean,Mathlib/Topology/Algebra/Order/Field.lean,Mathlib/Topology/Order/Basic.lean | 4 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 24219 | Paul-Lez | feat: linear independence of the tensor product of two linearly independent families | This is still WIP (the proofs are a little too long, and some lemmas need to be moved to other files!) From Toric --- [](https://gitpod.io/from-referrer/) | WIP t-algebra toric | 193/0 | Mathlib/LinearAlgebra/LinearIndependent/Tprod.lean | 1 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 23810 | b-reinke | chore(Order/Interval): generalize succ/pred lemmas to partial orders | Many lemmas in `Mathlib/Order/Interval/Set/SuccPred.lean`and `Mathlib/Order/Interval/Finset/SuccPred.lean` also work for partial orders. They are generalized in this PR by introducing different sections for `PartialOrder` and `LinearOrder` assumptions in the respective files. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-order | 231/89 | Mathlib/Order/Interval/Finset/SuccPred.lean,Mathlib/Order/Interval/Set/SuccPred.lean | 2 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 24285 | madvorak | chore(Algebra/*-{Category,Homology}): remove unnecessary universe variables | Discussions: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Call.20for.20help.3A.20technical.2F.20organisational.20debt/with/513620128 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Algebra.20and.20.60Type*.60/with/513558902 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Task.2026.3A.20Replace.20Type.20u.20by.20Type*.20wherever.20possible/with/513592993 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 542/916 | Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Field.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Central/Basic.lean,Mathlib/Algebra/Central/Defs.lean,Mathlib/Algebra/Central/TensorProduct.lean,Mathlib/Algebra/CharP/Pi.lean,Mathlib/Algebra/CharP/Quotient.lean,Mathlib/Algebra/CharP/Subring.lean,Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Finsupp.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/EuclideanDomain/Basic.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/Defs.lean,Mathlib/Algebra/Field/IsField.lean,Mathlib/Algebra/Field/MinimalAxioms.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/Field/Subfield/Defs.lean,Mathlib/Algebra/FreeNonUnitalNonAssocAlgebra.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Equiv/Finite.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Hom/End.lean,Mathlib/Algebra/Group/Hom/Instances.lean,Mathlib/Algebra/Group/Invertible/Basic.lean,Mathlib/Algebra/Group/Invertible/Defs.lean,Mathlib/Algebra/Group/Pi/Basic.lean,Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Group/TypeTags/Finite.lean,Mathlib/Algebra/Group/TypeTags/Hom.lean,Mathlib/Algebra/Group/Units/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/Algebra/Group/WithOne/Basic.lean,Mathlib/Algebra/Group/WithOne/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Pi.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/Invertible.lean,Mathlib/Algebra/GroupWithZero/NeZero.lean,Mathlib/Algebra/Lie/Abelian.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/CartanMatrix.lean,Mathlib/Algebra/Lie/CartanSubalgebra.lean,Mathlib/Algebra/Lie/Character.lean,Mathlib/Algebra/Lie/Classical.lean,Mathlib/Algebra/Lie/DirectSum.lean,Mathlib/Algebra/Lie/Free.lean,Mathlib/Algebra/Lie/Ideal.lean,Mathlib/Algebra/Lie/IdealOperations.lean,Mathlib/Algebra/Lie/Matrix.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean,Mathlib/Algebra/Lie/OfAssociative.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Lie/SkewAdjoint.lean,Mathlib/Algebra/Lie/Solvable.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/TensorProduct.lean,Mathlib/Algebra/Lie/UniversalEnveloping.lean,Mathlib/Algebra/Module/Basic.lean,Mathlib/Algebra/Module/CharacterModule.lean,Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/End.lean,Mathlib/Algebra/Module/Equiv/Opposite.lean,Mathlib/Algebra/Module/Lattice.lean,Mathlib/Algebra/Module/LinearMap/Basic.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/Algebra/Module/MinimalAxioms.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/Module/Opposite.lean,Mathlib/Algebra/Module/Pi.lean,Mathlib/Algebra/Module/Presentation/Differentials.lean,Mathlib/Algebra/Module/Presentation/Tensor.lean,Mathlib/Algebra/Module/Rat.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/MonoidAlgebra/Support.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/MvPolynomial/CommRing.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean | 182 | 22 | ['erdOne', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'madvorak', 'mattrobball'] | nobody | 10 months ago | unknown | unknown |
| 8370 | 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) --- [](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 | 10 months ago | unknown | unknown |
| 14931 | eric-wieser | feat: volume of a simplex | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-euclidean-geometry | 207/0 | Mathlib/Geometry/Euclidean/Basic.lean,Mathlib/Geometry/Euclidean/Circumcenter.lean,Mathlib/Geometry/Euclidean/Volume.lean | 3 | 3 | ['eric-wieser', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 22583 | imathwy | feat: affinespace homeomorphism | There exists a homeomorphism (a continuous bijection with a continuous inverse) between an affine subspace s of a vector space V over a field 𝕜 and its direction s.direction , given a chosen point z ∈ s . --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 64/2 | Mathlib/Analysis/Normed/Group/AddTorsor.lean,Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/MulAction.lean | 4 | 6 | ['JovanGerb', 'eric-wieser', 'github-actions', 'grunweg'] | nobody | 10 months ago | unknown | unknown |
| 24243 | Timeroot | feat(Analysis/Calculus/FDeriv): Fderiv on torsors | Experiment to see how this goes for now, see [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Upgrade.20.60fderiv.60.20to.20.60AddTorsor.60) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 539/447 | Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Prod.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean,Mathlib/Analysis/Calculus/FDeriv/Equiv.lean,Mathlib/Analysis/Calculus/FDeriv/Linear.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/Gradient/Basic.lean,Mathlib/Analysis/Calculus/LineDeriv/Basic.lean,Mathlib/Analysis/Calculus/LocalExtr/Basic.lean,Mathlib/Analysis/Calculus/ParametricIntegral.lean,Mathlib/Analysis/Calculus/Rademacher.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Complex/Periodic.lean,Mathlib/Analysis/Complex/RealDeriv.lean,Mathlib/Analysis/MellinTransform.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean,Mathlib/Analysis/SpecialFunctions/Exponential.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/NumberTheory/EulerProduct/ExpLog.lean,Mathlib/NumberTheory/Harmonic/GammaDeriv.lean,Mathlib/NumberTheory/LSeries/Nonvanishing.lean,MathlibTest/Recall.lean | 37 | 3 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 23593 | erdOne | feat(AlgebraicGeometry): the tilde construction is functorial | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebraic-geometry | 95/38 | Mathlib/AlgebraicGeometry/Modules/Sheaf.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean | 2 | 4 | ['chrisflav', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 21065 | eric-wieser | feat: generalize `tangentConeAt.lim_zero` to TVS | ... and then adjust the `variable`s down the rest of the file to make use of the generality. There are two key lemmas that this does not generalize, which would probably unlock the rest of the file: * `subset_tangentCone_prod_left` (and `_right`) * `zero_mem_tangentCone` --- - [ ] depends on: #20859 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 55/28 | Mathlib/Analysis/Calculus/TangentCone.lean | 1 | 16 | ['ADedecker', 'eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 22721 | grunweg | chore(MeasureTheory/Function/LpSeminorm/Basic): generalise more results to enorm classes | Done for the Carleson project. --- - depends on #22708 [](https://gitpod.io/from-referrer/) | merge-conflict WIP carleson t-measure-probability | 134/10 | Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 14731 | adomani | feat: the repeated typeclass assumption linter | [#mathlib4 > recyclable variables @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/recyclable.20variables/near/451167963) also [#mathlib4 > Normed modules @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Normed.20modules/near/512242167) --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter large-import | 178/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/DependentTypeclass.lean,MathlibTest/DependentTypeclass.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mattrobball'] | nobody | 10 months ago | unknown | unknown |
| 13649 | astrainfinita | chore: redefine `Nat.div2` `Nat.bodd` | The new definitions are faster than the old ones. `Nat.binaryRec` will be moved to batteries (https://github.com/leanprover-community/batteries/pull/799) or core (https://github.com/leanprover/lean4/pull/3756), so relevant contents are moved to a new file temporarily. --- - [x] depends on: #15567 - [x] depends on: #19666 [](https://gitpod.io/from-referrer/) | merge-conflict | 63/88 | Mathlib/Computability/Primrec.lean,Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Size.lean,Mathlib/Logic/Denumerable.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Equiv/Nat.lean | 8 | 15 | ['astrainfinita', 'digama0', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'urkud'] | digama0 | 10 months ago | unknown | unknown |
| 24549 | grunweg | feat: define embedded submanifolds, attempt 1 | Not meant to be merged (I think a different design is better); opening this so I can find this more easily. --- - [ ] depends on: #23040 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry blocked-by-other-PR | 1445/2 | Mathlib.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Splits.lean,Mathlib/Geometry/Manifold/Diffeomorph.lean,Mathlib/Geometry/Manifold/EmbeddedSubmanifold.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/MSplits.lean,Mathlib/LinearAlgebra/Prod.lean | 8 | 2 | ['leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 23921 | alreadydone | Jyxu/projective trace | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 157/123 | Mathlib/FieldTheory/CardinalEmb.lean,Mathlib/FieldTheory/Relrank.lean,Mathlib/LinearAlgebra/Contraction.lean,Mathlib/LinearAlgebra/Dual.lean,Mathlib/RingTheory/LocalProperties/Projective.lean | 5 | 1 | ['leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 22809 | b-reinke | feat: Category algebras and path algebras | This PR defines the category algebra of a linear category and path algebras of quivers. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-category-theory new-contributor | 218/0 | Mathlib/Algebra/Ring/Assoc.lean,Mathlib/CategoryTheory/Linear/CategoryAlgebra.lean,Mathlib/Combinatorics/Quiver/PathAlgebra.lean,Mathlib/Data/DFinsupp/BigOperators.lean | 4 | 2 | ['b-reinke', 'github-actions'] | nobody | 10 months ago | unknown | unknown |
| 21252 | ADedecker | feat: redefine uniformly convex normed spaces with filters instead of epsilons | And conceptualize some proofs. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-algebra | 301/87 | Mathlib/Analysis/Convex/Uniform.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Topology/Algebra/UniformGroup/Defs.lean,Mathlib/Topology/Algebra/UniformMulAction.lean | 6 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 19821 | eric-wieser | feat: add a Qq version of AtomM that groups by type | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP large-import t-meta | 332/30 | Mathlib/Data/Ineq.lean,Mathlib/Tactic/Linarith/Datatypes.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Preprocessing.lean,Mathlib/Util/AtomM.lean,Mathlib/Util/Qq.lean | 6 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 19120 | hrmacbeth | feat: stop `ring`/`abel` from seeing algebraic operations inside `let`s | This draft PR illustrates a feature I would like to see in core: a variant of `whnf` which allows particular kinds of reduction, such as zeta-delta reduction, to be turned off. Here it is used to make ring-normalization and abelian-group-normalization a bit more responsive to what (I think) users expect: these normalizations would no longer look inside user-defined lets to see algebraic operations in those expressions. Note: In Lean/Mathlib 3, `ring` matched for algebraic operations on an algebraic expression `e` itself, not on `← whnfR e`. So mathlib3 `ring` didn't see algebraic operations inside `let`s -- but it also didn't see algebraic operations requiring beta-reduction (like `(fun t ↦ t + 1) x`) or see inside abbreviations. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/239415-metaprogramming-.2F-tactics/topic/whnf.20variant.20which.20preserves.20let-bindings) Update: fortuitously, it looks like the new core PR https://github.com/leanprover/lean4/pull/6053 will provide this feature! --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-core-PR t-meta | 137/15 | Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2008Q2.lean,Mathlib.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean,Mathlib/Analysis/SpecialFunctions/Integrals.lean,Mathlib/Analysis/SpecialFunctions/Stirling.lean,Mathlib/Data/Real/Pi/Irrational.lean,Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean,Mathlib/NumberTheory/SumPrimeReciprocals.lean,Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean,Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Polyrith.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Tactic/Ring/RingNF.lean,Mathlib/Topology/MetricSpace/GromovHausdorff.lean,Mathlib/Util/WHNF.lean,MathlibTest/abel.lean,MathlibTest/ring.lean | 21 | 5 | ['JovanGerb', 'github-actions', 'grunweg', 'hrmacbeth'] | nobody | 10 months ago | unknown | unknown |
| 17069 | yuma-mizuno | chore(CategoryTheory/Functor/Basic): put `simp` at `Functor.id_comp` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 41/30 | Mathlib/CategoryTheory/Adjunction/Mates.lean,Mathlib/CategoryTheory/Functor/Basic.lean,Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean,Mathlib/CategoryTheory/Limits/HasLimits.lean,Mathlib/CategoryTheory/Shift/CommShift.lean | 5 | 3 | ['github-actions', 'leanprover-bot', 'yuma-mizuno'] | nobody | 10 months ago | unknown | unknown |
| 14803 | StevenClontz | chore: use `Disjoint` nhd filters for all separation axioms | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 157/122 | Mathlib/Topology/Separation.lean | 1 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 14675 | adomani | dev: the repeated variable linter | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter | 71/0 | Mathlib/Tactic/Linter/Lint.lean | 1 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 14330 | Ruben-VandeVelde | chore: split Mathlib.Algebra.Star.Basic | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 446/331 | Mathlib.lean,Mathlib/Algebra/Module/LinearMap/Star.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/BigOperators.lean,Mathlib/Algebra/Star/Defs.lean,Mathlib/Algebra/Star/Lemmas.lean,Mathlib/Algebra/Star/Order.lean,Mathlib/Algebra/Star/Pi.lean,Mathlib/Algebra/Star/Pointwise.lean,Mathlib/Algebra/Star/Rat.lean,Mathlib/Algebra/Star/Regular.lean,Mathlib/Algebra/Star/StarRingHom.lean,Mathlib/Analysis/NormedSpace/LinearIsometry.lean,Mathlib/Data/Complex/Basic.lean,scripts/noshake.json | 15 | 3 | ['github-actions', 'grunweg', 'j-loreaux'] | nobody | 10 months ago | unknown | unknown |
| 14007 | adomani | test: papercut linter working on all mathlib | This PR is a testing ground for potential issues with the papercut linter #13999. It is not intended to be merged. The linter is active on all of mathlib, to make sure that the linter does not throw errors, but only emits warnings! --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter | 249/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/Papercut.lean,test/Papercut.lean | 5 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 20354 | eric-wieser | feat: generalize `ContinuousLinearMap.curry` to TVS | Follow on from #10777 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 57/25 | Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean | 1 | 3 | ['eric-wieser', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 8511 | eric-wieser | refactor(MeasureTheory/Measure/Haar/Basic): partially generalize to the affine case | Without a `Mul` version of `AddTorsor`, this generalization can only go so far. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-measure-probability | 52/46 | Mathlib/MeasureTheory/Measure/Haar/Basic.lean | 1 | 0 | [] | nobody | 10 months ago | unknown | unknown |
| 7994 | ericrbg | chore: generalize `LieSubalgebra.mem_map_submodule` | --- Not sure if we should rename to something like `mem_map_iff_mem_map_submodule` or not. [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-algebra | 16/4 | Mathlib/Algebra/Lie/SkewAdjoint.lean,Mathlib/Algebra/Lie/Subalgebra.lean | 2 | 3 | ['eric-wieser', 'ericrbg'] | nobody | 10 months ago | unknown | unknown |
| 6317 | eric-wieser | refactor(Data/Finsupp/Defs): make Finsupp.single defeq to Pi.single | By adding a `DecidableEq ι` argument to `Finsupp.single`, we remove the reference to `Classical.decEq ι` in the definition, which in turn means that when coerced to a function it is now defeq to `Pi.single`. This also brings it in line with `DFinsupp.single`. This does not go as far as making `Finsupp.single` computable. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-data | 269/226 | Mathlib/Algebra/BigOperators/Finsupp.lean,Mathlib/Data/Finsupp/AList.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Fintype.lean,Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/ToDFinsupp.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/LinearAlgebra/Basis.lean,Mathlib/LinearAlgebra/Finsupp.lean | 12 | 0 | [] | nobody | 10 months ago | unknown | unknown |
| 6277 | jjaassoonn | Dimension theory | Some results are - The ring Krull dimension and the topological dimension of the prime spectrum of a ring are the same - A field is zero-dimensional and a PID that is not a field is one dimensional - An Artinian ring is zero-dimensional - The Krull dimension of ring $R$ is equal to the supremum of heights of maximal ideals [00KG](https://stacks.math.columbia.edu/tag/00KG) - two definitions of module length agree - A module is finite length iff both artinian and noetherian - length of module $M$ is equal to the sum of length of $N$ and length of $M / N$ where $N$ is a submodule of $M$. - Noetherian ring has only finitely many minimal primes #9088 - In a zero dimensional ring, prime ideals are maximal - Artinian rings has finitely many maximal ideals #9087 - zero-dimensional rings with finitely many prime ideals are products of its localizations: $R \cong \prod_{\mathfrak{p}}R_{\mathfrak{p}}$ - Let $M_0 \le ... \le M_n$, then $l(M_n/ M_0) = l(M_1/M_0) + l(M_2/M_1) + ... + l(M_n/M_{n-1})$ where $l$ denotes module length. - If $f : R \to S$ is a ring homomorphism and $M$ an $S$-module, then $l_R(M) \le l_S(M)$, when $f$ is surjective then they are equal. (Note that this is expressed using `[Algebra R S]` and `RestrictScalars R S M`, instead of a literal ring hom) - Artinian rings are noetherian ring of dimension 0. - For 0-dimensional local ring, its maximal ideal is locally nilpotent - In notherian ring, $I \le \sqrt{J}$ implies $I ^ n \le J$ for some $n$ --- - [x] depends on: #6309 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 3289/459 | Mathlib.lean,Mathlib/Algebra/Module/Length.lean,Mathlib/Algebra/Module/Submodule/JordanHolder.lean,Mathlib/Algebra/PUnitInstances.lean,Mathlib/AlgebraicGeometry/PrimeSpectrum/ArtinianAndNoetherian.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Dedup.lean,Mathlib/Data/List/Nodup.lean,Mathlib/LinearAlgebra/Quotient.lean,Mathlib/Order/Cover.lean,Mathlib/Order/JordanHolder.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/ListOnPartialOrderTypes.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/RelSeries.lean,Mathlib/RingTheory/Artinian.lean,Mathlib/RingTheory/Finiteness.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Pi.lean,Mathlib/RingTheory/KrullDimension.lean,Mathlib/RingTheory/Noetherian.lean,Mathlib/RingTheory/SimpleModule.lean,Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean | 24 | 11 | ['alreadydone', 'jjaassoonn', 'leanprover-community-mathlib4-bot'] | nobody | 10 months ago | unknown | unknown |
| 8536 | jjaassoonn | characteristic predicate of tensor product | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 399/7 | Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean,Mathlib/LinearAlgebra/IsTensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean | 4 | 12 | ['alreadydone', 'eric-wieser', 'jjaassoonn'] | nobody | 10 months ago | unknown | unknown |
| 11524 | mcdoll | refactor: Introduce type-class for SchwartzMap | --- There are a lot of other refactors to do (`seminormAux` should have a nicer name and gobble up more theorems from `seminorm`), then one can prove `integrable` and friends with only `SchwartzMapClass`. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 139/137 | Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Fourier/PoissonSummation.lean,Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean | 3 | 0 | [] | nobody | 10 months ago | unknown | unknown |
| 11003 | thorimur | chore: migrate to `tfae` block tactic | Migrates to the `tfae` block tactic syntax, eliminating uses of `tfae_have` and `tfae_finish`. --- - [ ] depends on: #11000 - [ ] depends on: #10991 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR t-meta | 1267/1081 | Mathlib/Algebra/Exact.lean,Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/CategoryTheory/Abelian/Exact.lean,Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean,Mathlib/FieldTheory/Galois.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/LinearAlgebra/Eigenspace/Zero.lean,Mathlib/MeasureTheory/Group/Action.lean,Mathlib/NumberTheory/FLT/Basic.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/Height.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/RingTheory/Bezout.lean,Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean,Mathlib/RingTheory/Flat/EquationalCriterion.lean,Mathlib/RingTheory/Henselian.lean,Mathlib/RingTheory/LocalRing/RingHom/Basic.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/SetTheory/Ordinal/Topology.lean,Mathlib/Tactic/TFAE.lean,Mathlib/Topology/Algebra/Group/SubmonoidClosure.lean,Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean,Mathlib/Topology/Category/Profinite/EffectiveEpi.lean,Mathlib/Topology/Category/Stonean/EffectiveEpi.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/LocallyClosed.lean,Mathlib/Topology/LocallyConstant/Basic.lean,Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Order/LeftRightNhds.lean,Mathlib/Topology/Separation.lean,Mathlib/Topology/UniformSpace/UniformConvergence.lean,scripts/noshake.json,test/tfae.lean | 42 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 10 months ago | unknown | unknown |
| 9819 | jjaassoonn | fg graded ring | 1. if $A$ is a noetherian graded ring, then $A_0$ is a noetherian subring of $A$ and $A$ is a finitely generated algebra over $A_0$, if $M$ is a finitely generated graded module over $A$, then each $M_n$ is a finitely generated module over $A_0$. 2. Definition of additive functions over any abelian category: if $C$ is an abelian category, a function $f : C \to \mathbb Z$ is said to be additive, if $f(y) = f(x) + f(z)$ whenever $0\to x \to y \to z \to 0$ is exact. proved some basic properties such as $f(0) = 0$ and $f(x) = f(y)$ whenever $x \cong y$ and interaction of $f$ with longer exact sequences 3. The category of finitely generated module over noetherian ring is abelian 4. A proof of Hilbert-Serre theorem: the Poincare series is actually of the form $\frac{p}{\prod(1- X^i)}$ where $p$ is polynomial The code works, but poorly written. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 6745/217 | Mathlib.lean,Mathlib/Algebra/Category/FGModuleCat/Abelian.lean,Mathlib/Algebra/Category/FGModuleCat/Basic.lean,Mathlib/Algebra/Category/FGModuleCat/EpiMono.lean,Mathlib/Algebra/Category/FGModuleCat/Kernels.lean,Mathlib/Algebra/Category/FGModuleCat/Limits.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/HilbertSerre/AdditiveFunction.lean,Mathlib/Algebra/HilbertSerre/FiniteInstances.lean,Mathlib/Algebra/HilbertSerre/HilbertPolynomial.lean,Mathlib/Algebra/HilbertSerre/Theorem.lean,Mathlib/Algebra/Module/GradeZeroModule.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean,Mathlib/RingTheory/GradedAlgebra/Noetherian.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,Mathlib/RingTheory/GradedAlgebra/Subgrading.lean,Mathlib/RingTheory/Polynomial/Hilbert.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/WellKnown.lean | 25 | 2 | ['FMLJohn', 'github-actions'] | nobody | 10 months ago | unknown | unknown |
| 14348 | eric-wieser | perf: disable the `unusedVariables` linter for speed | I doubt we want to merge this, but it shaves two minutes of the lint time. --- [](https://gitpod.io/from-referrer/) | performance-hack | 1/0 | lakefile.lean | 1 | 3 | ['eric-wieser', 'github-actions', 'leanprover-bot'] | nobody | 10 months ago | unknown | unknown |
| 13543 | adomani | test: automatically undeprecate | A test for `update_deprecations`. There are two files with deprecated declarations, but CI automatically fixes them, so that they pass the noisy tests (as well as passing fail-on-warning `lake build`). --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter | 345/4 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/UpdateDeprecations.lean,Mathlib/test_depr.lean,Mathlib/test_depr_no_change.lean,lakefile.lean,scripts/update_deprecations.lean,test/UpdateDeprecations.lean | 12 | 0 | [] | nobody | 10 months ago | unknown | unknown |
| 14932 | eric-wieser | chore: add nndist versions of lemmas | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 108/1 | Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Geometry/Euclidean/Basic.lean | 2 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 18202 | ADedecker | chore: refactor algebraic filter bases | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-algebra | 1086/1315 | Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/Barrelled.lean,Mathlib/Analysis/LocallyConvex/WeakDual.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Operator/WeakOperatorTopology.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Algebra/Module/UniformConvergence.lean,Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean,Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean,Mathlib/Topology/Algebra/UniformFilterBasis.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean | 14 | 1 | ['github-actions'] | nobody | 9 months ago | unknown | unknown |
| 22488 | smmercuri | fix: lower priority for `UniformSpace.Completion.instSMul` | Following the introduction of the `WithVal` type synonym in #22055 the following instance takes a long time to synthesise in FLT, and times out in the default heartbeats ```lean import Mathlib namespace IsDedekindDomain.HeightOneSpectrum variable (A K : Type*) [CommRing A] [Field K] [Algebra A K] [IsFractionRing A K] [IsDedekindDomain A] (v : HeightOneSpectrum A) #synth SMul (v.adicCompletionIntegers K) (v.adicCompletion K) ``` The issue is that `UniformSpace.Completion.instSMul (v.adicCompletionIntegers K) (v.adicCompletion K)` now fires during the start of instance search (because we now have `UniformSpace (WithVal (v.valuation K))` whereas previously this would be `UniformSpace K`, which was not automatic), and this takes a long time to fail (leading to ~1400 entries in the trace). The first few lines of the new trace is ```lean [Meta.synthInstance] [5.512418] ✅️ SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▼ [] [0.000118] new goal SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000537] ✅️ apply UniformSpace.Completion.instSMul to SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.004411] ✅️ apply @WithVal.instSMul to SMul (↥(adicCompletionIntegers K v)) (WithVal (valuation K v)) ▶ [] [0.000765] ❌️ apply @GradedMonoid.GradeZero.smul to SMul (↥(adicCompletionIntegers K v)) K ▶ [] [0.000378] ✅️ apply @Algebra.toSMul to SMul (↥(adicCompletionIntegers K v)) K ▶ ... [] 1339 more entries... ▶ ``` Lowering the priority of `UniformSpace.Completion.instSMul` fixes this particular issue, leading to a trace that matches that seen prior to the introduction of `WithVal`: ```lean [Meta.synthInstance] [0.016405] ✅️ SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▼ [] [0.000119] new goal SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000491] ❌️ apply @GradedMonoid.GradeZero.smul to SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000403] ✅️ apply @Algebra.toSMul to SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000134] ❌️ apply inst✝⁴ to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000093] ❌️ apply inst✝⁵ to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000077] ❌️ apply inst✝⁷ to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000082] ❌️ apply inst✝⁹ to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000075] ❌️ apply inst✝¹² to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000220] ❌️ apply Algebra.id to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.001015] ✅️ apply @ValuationSubring.instAlgebraSubtypeMem to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [resume] [0.000038] propagating Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) to subgoal Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) of SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [check] [0.013358] ✅️ Algebra.toSMul [] result Algebra.toSMul ``` --- [](https://gitpod.io/from-referrer/) | awaiting-author t-topology FLT | 1/1 | Mathlib/Topology/Algebra/UniformMulAction.lean | 1 | 10 | ['github-actions', 'leanprover-bot', 'smmercuri', 'urkud'] | nobody | 9 months ago | unknown | unknown |
| 23546 | JovanGerb | feat(LinearAlgebra/AffineSpace/AffineSubspace): rename `AffineSubspace.mk'` to `Submodule.shift` | In addition to renaming, I've refactored the code a bit: - `mem_mk'_iff_vsub_mem` was obsolete since it was the same as `mem_mk'`, so I removed it (this is due to a change in the definition I made recently) - I added a nonempty instance for `shift` - I added a simp lemma that `shift` isn't equal to `⊥` (the empty affine subspace). I need this for the next point. - Edit: I'll leave this for a later PR. ~I proved a simp lemma that a `shift` is parallel to a `shift` if and only if the linear subspaces are the same.~ - I renamed `mk'_eq` to `shift_direction_eq_self `. - I renamed `eq_or_eq_secondInter_of_mem_mk'_span_singleton_iff_mem` to `eq_or_eq_secondInter_iff_mem_of_mem_shift_span_singleton`. I think it is better to put the `of_mem_mk'_span_singleton` at the end of the name. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-euclidean-geometry | 128/99 | Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Geometry/Euclidean/Basic.lean,Mathlib/Geometry/Euclidean/MongePoint.lean,Mathlib/Geometry/Euclidean/PerpBisector.lean,Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean | 7 | 4 | ['JovanGerb', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 9 months ago | unknown | unknown |
| 15161 | adomani | feat(Linter): flag `intros x y` which can be replaced by `intro x y` | --- [](https://gitpod.io/from-referrer/) | WIP t-linter | 78/1 | Mathlib/Tactic/Linter/Lint.lean,test/Lint.lean | 2 | 4 | ['adomani', 'github-actions', 'grunweg'] | nobody | 9 months ago | unknown | unknown |
| 15654 | 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 [](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 | 9 months ago | unknown | unknown |
| 19315 | quangvdao | feat(Data/Finsupp/Fin): Add `Finsupp` operations on `Fin` tuple | This PR adds more analogues of operations on `Fin` tuples to the `Finsupp` setting. Before, there were only `Finsupp.cons` and `Finsupp.tail`. Now there are also `Finsupp.snoc`, `Finsupp.insertNth`, `Finsupp.init`, and `Finsupp.removeNth`. These all come with supporting lemmas. I also removed the porting comment about `succAboveCases` in `Data/Fin/Basic`, and added a lemma about `succAbove` in `Data/Fin/Tuple/Basic`. --- - [x] depends on: #20361 - [x] depends on: #20771 - [x] depends on: #20770 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 193/16 | Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finsupp.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Data/Finsupp/Fin.lean,Mathlib/RingTheory/MvPolynomial/Homogeneous.lean,scripts/nolints_prime_decls.txt | 6 | 44 | ['YaelDillies', 'github-actions', 'j-loreaux', 'kbuzzard', 'mathlib4-dependent-issues-bot', 'quangvdao'] | nobody | 9 months ago | unknown | unknown |
| 19464 | adomani | test: removed merge-conflict | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP CI delegated | 22/1 | .github/workflows/PR_summary.yml,scripts/zulip_emoji_merge_delegate.py | 2 | 10 | ['adomani', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 9 months ago | unknown | unknown |
| 24155 | eric-wieser | feat: add a "rw_proc" for fin vectors | This seems a little nicer than an elaborator, since it means I can use the default elaboration rules to handle my first few variables. Ideally there would be something like ```lean rw_procQ {A : Type u} {B : A -> Type v} (a : A) (b : B a) : b = ?rhs => do /-- Context: u v : Level A : Q(Type u) B : Q($A -> Type v) a : Q($A) b : Q($B $a) rhs : Q($B $a) -- metavariable to assign |- MetaM Q($b = ?rhs) -/ ``` or ```lean rw_proc {A : Type u} {B : A -> Type v} (a : A) (b : B a) : b = ?rhs => do /-- Context: u v : Level A B a b : Expr rhs : MVarId |- MetaM Expr -/ ``` which would generate the code I wrote here --- [](https://gitpod.io/from-referrer/) | awaiting-author RFC t-data t-meta | 27/2 | Mathlib/Data/Fin/Tuple/Reflection.lean | 1 | 2 | ['github-actions', 'urkud'] | nobody | 9 months ago | unknown | unknown |
| 21276 | GabinKolly | feat(ModelTheory/Substructures): define equivalences between equal substructures | Define first-order equivalences between equal substructures, and prove related properties. --- This is some preparatory work for #18876 [](https://gitpod.io/from-referrer/) | awaiting-author t-logic | 62/0 | Mathlib/ModelTheory/Substructures.lean | 1 | 19 | ['GabinKolly', 'YaelDillies', 'fpvandoorn', 'github-actions', 'grunweg'] | nobody | 9 months ago | unknown | unknown |
| 24008 | meithecatte | chore(EpsilonNFA): replace manual lemmas with @[simps] | --- [](https://gitpod.io/from-referrer/) | t-computability awaiting-author new-contributor | 2/24 | Mathlib/Computability/EpsilonNFA.lean | 1 | 2 | ['YaelDillies', 'github-actions', 'urkud'] | nobody | 9 months ago | unknown | unknown |
| 24642 | grunweg | WIP-feat: add layercake formula for ENNReal-valued functions | Not much to see here yet; some significant amount of work remains. --- - [ ] depends on: #24643 - [ ] depends on: #24640 (based on that PR for simplicity) [](https://gitpod.io/from-referrer/) | merge-conflict WIP carleson t-analysis | 189/24 | Mathlib/Analysis/SpecialFunctions/Pow/Integral.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Integral/Layercake.lean | 4 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 9 months ago | unknown | unknown |
| 21712 | grunweg | chore: generalise more lemmas to `ContinuousENorm` | --- - [x] depends on: #21781 (minor drive-by clean-up) - [x] depends on: #21670 - [x] depends on: #22708 (extracted from this) - some parts depend on #21433 (or better: #22175); when the dependent PR has landed, I will re-assess whether to split these into a separate PR [](https://gitpod.io/from-referrer/) | merge-conflict carleson awaiting-CI t-measure-probability | 76/31 | Mathlib/Analysis/Normed/MulAction.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean | 4 | 5 | ['github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 9 months ago | unknown | unknown |
| 21375 | grunweg | WIP: generalise lemmas to ENorm | This work is part of (and a necessary pre-requisite for) the Carleson project. --- [](https://gitpod.io/from-referrer/) | WIP awaiting-CI t-measure-probability carleson merge-conflict | 471/221 | Mathlib/Analysis/NormedSpace/IndicatorFunction.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Function/LocallyIntegrable.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean,Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean,Mathlib/MeasureTheory/Function/LpSpace.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/Probability/Independence/Integrable.lean | 13 | 2 | ['fpvandoorn', 'grunweg'] | nobody | 9 months ago | unknown | unknown |
| 24378 | urkud | feat(Algebra/Order/Field/Basic): generalize lemmas | ... from linear ordered semifields to (commutative) groups with zero. --- I'm going to do another round of generalizing today or tomorrow, so making it a draft PR for now. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 183/181 | Archive/OxfordInvariants/Summer2021/Week3P1.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean,Mathlib/Analysis/Complex/AbelLimit.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean,Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean,Mathlib/Analysis/Convex/StrictConvexSpace.lean,Mathlib/Analysis/Convex/Uniform.lean,Mathlib/Analysis/Convex/Visible.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/Normed/Field/Lemmas.lean,Mathlib/Analysis/Normed/Field/Ultra.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/NormedSpace/HomeomorphBall.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean,Mathlib/Analysis/NormedSpace/Pointwise.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean,Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean,Mathlib/Analysis/SpecialFunctions/MulExpNegMulSqIntegral.lean,Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Combinatorics/Schnirelmann.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Data/Nat/Cast/Order/Field.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Data/Real/Cardinality.lean,Mathlib/Data/Real/Pi/Wallis.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/MeasureTheory/Integral/CircleIntegral.lean,Mathlib/MeasureTheory/Integral/MeanInequalities.lean,Mathlib/MeasureTheory/Integral/PeakFunction.lean,Mathlib/MeasureTheory/Measure/SeparableMeasure.lean,Mathlib/NumberTheory/Bertrand.lean,Mathlib/NumberTheory/ClassNumber/AdmissibleAbs.lean,Mathlib/NumberTheory/DiophantineApproximation/Basic.lean,Mathlib/NumberTheory/LSeries/Injectivity.lean,Mathlib/NumberTheory/LSeries/ZMod.lean,Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/NumberTheory/Padics/MahlerBasis.lean,Mathlib/NumberTheory/Pell.lean,Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleNumber.lean,Mathlib/Order/Filter/AtTopBot/Floor.lean,Mathlib/Order/Interval/Set/IsoIoo.lean,Mathlib/Probability/StrongLaw.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/Topology/ContinuousMap/Polynomial.lean,Mathlib/Topology/Instances/AddCircle.lean,Mathlib/Topology/UrysohnsLemma.lean | 72 | 3 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 9 months ago | unknown | unknown |
| 24618 | b-mehta | feat(Analysis): add Schur inequality and variants | Add Schur inequality and some of its common variants. TODO: - [x] add reference to source: https://www.cip.ifi.lmu.de/~grinberg/VornicuS.pdf - [ ] add other generalisations - [ ] move some of the lemmas elsewhere --- [](https://gitpod.io/from-referrer/) | WIP t-analysis | 145/0 | Mathlib/Analysis/Convex/Schur.lean | 1 | 16 | ['b-mehta', 'eric-wieser', 'github-actions'] | nobody | 9 months ago | unknown | unknown |
| 15115 | kkytola | feat: Generalize assumptions in liminf and limsup results in ENNReals | In a [review comment](https://github.com/leanprover-community/mathlib4/pull/13938#discussion_r1649744441) it was pointed out that results about liminf and limsup in ENNReal hold under milder assumptions. This PR does the generalization. --- This PR is split off from #13938, where the review comment was made. The changes needed for the suggested generalization were of different kind than the simple PR's content, justifying a separate PR. - [x] depends on: #13938 [](https://gitpod.io/from-referrer/) | t-order merge-conflict help-wanted awaiting-author t-topology | 215/27 | Mathlib/MeasureTheory/Measure/Portmanteau.lean,Mathlib/Order/LiminfLimsup.lean,Mathlib/Topology/Instances/ENNReal.lean | 3 | 8 | ['Ruben-VandeVelde', 'github-actions', 'grunweg', 'j-loreaux', 'kkytola', 'leanprover-community-mathlib4-bot'] | nobody | 9 months ago | unknown | unknown |
| 24957 | eric-wieser | feat: use ` binderNameHint` in sum_congr | Zulip thread: [#new members > Choosing dummy variable inside summation @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Choosing.20dummy.20variable.20inside.20summation/near/518492888)
Co-authored-by: Joachim Breitner |
t-algebra | 23/16 | Mathlib/Algebra/BigOperators/Expect.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/List/OfFn.lean,Mathlib/Data/Multiset/Count.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Multiset/MapFold.lean,Mathlib/Data/Option/Basic.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Sym/Basic.lean,Mathlib/Data/Sym/Sym2.lean | 13 | 1 | ['github-actions'] | nobody | 9 months ago | unknown | unknown |
| 8495 | jjaassoonn | feat : Tensor-Hom adjunction in the category of modules | # Tensor-Hom adjunction Let $R$ be a commutative ring and $S$ any ring. Let $X$ be an $(S,R)$-bimoule. Then the tensor functor $(X \otimes_R \cdot)$ is a functor from left $R$-modules to left $S$-modules; and the hom-functor $Hom_S(X, \cdot)$ is a functor from left $S$-modules to left $R$-modules. For another left $S$-module $Y$, the left $R$-module structure of $Hom_S(X, Y)$ is given by $s \cdot f := x \mapsto f(s \cdot x)$. These two functors are adjoint.. In particular we have that ```math {\rm Hom}_{S}(X\otimes_R Y, Z) \cong {\rm Hom}_R (Y, {\rm Hom}_S (X, Z)) ``` ## Implementation notes 1. Why not use the `Mathlib/LinearAlgebra/TensorProduct/Tower.lean` In our setting `X` is an `(R, S)` bimodule and `Y` an `R`-module and `Z` an `S`-module so to use the `Tower` file, we need `S` to be an `R`-algebra which is a luxury we do not have. But note that in `Tower` file, `curry` and `uncurry` are both tri-linear maps. So `Tower` file allows interplay of 3 rings which is not allowed in this file. 2. We require `R` to be commutative but we never used anything commutative. This is because of tensor product requires commutativity, but thanks to @alreadydone, this assumption could be removed soon. I think this PR should wait for Junyan's attempt on removing commutativity, so it is marked as draft and wip for now --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author t-algebra | 214/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/TensorHomAdjunction.lean | 2 | 88 | ['alreadydone', 'bustercopley', 'eric-wieser', 'github-actions', 'jjaassoonn', 'kbuzzard', 'kim-em', 'leanprover-community-bot-assistant'] | eric-wieser | 9 months ago | unknown | unknown |
| 19284 | adomani | test: commit a change only to the "master" CI build action | This PR should fail CI, since the main CI build file is incompatible with the autogenerated ones. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author CI | 3/3 | .github/build.in.yml,.github/workflows/actionlint.yml | 2 | 12 | ['adomani', 'bryangingechen', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant'] | bryangingechen | 9 months ago | unknown | unknown |
| 15254 | yuma-mizuno | feat(CategoryTheory/Monoidal): replace `Mon_` lemmas with `Mon_Class` lemmas | We redefine algebras internal to monoidal categories, which were defined by full-bundled structures, in terms of semi-bundled type classes. The original full-bundled structure `X` is renamed to `X_Cat`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 3982/96 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Bimod_Class.lean,Mathlib/CategoryTheory/Monoidal/Bimon_.lean,Mathlib/CategoryTheory/Monoidal/Bimon_Class copy.lean,Mathlib/CategoryTheory/Monoidal/Bimon_Class.lean,Mathlib/CategoryTheory/Monoidal/Braided/Opposite.lean,Mathlib/CategoryTheory/Monoidal/CommMon_Class.lean,Mathlib/CategoryTheory/Monoidal/Comon_.lean,Mathlib/CategoryTheory/Monoidal/Comon_Class.lean,Mathlib/CategoryTheory/Monoidal/Internal/ModuleClass.lean,Mathlib/CategoryTheory/Monoidal/Mod_Class.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Mon_Class.lean,Mathlib/CategoryTheory/Monoidal/mwe.lean | 14 | 6 | ['YaelDillies', 'github-actions', 'leanprover-community-bot-assistant', 'yuma-mizuno'] | nobody | 9 months ago | unknown | unknown |
| 23489 | plp127 | chore: fix recursors | Replace motive with `motive` and other improvements. Will probably split this PR after fixing is done. 4013 recursors left --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 4255/172 | Mathlib/Algebra/EuclideanDomain/Basic.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/Free.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Lie/BaseChange.lean,Mathlib/Algebra/Lie/IdealOperations.lean,Mathlib/Algebra/Lie/TraceForm.lean,Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean,Mathlib/CategoryTheory/Quotient.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/Tuple/Basic.lean,Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean,Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean,Mathlib/Data/FinEnum/Option.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/Fintype/CardEmbedding.lean,Mathlib/Data/Fintype/Option.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/Nat/BinaryRec.lean,Mathlib/Data/PFun.lean,Mathlib/Data/PFunctor/Multivariate/W.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Coprod/Basic.lean,Mathlib/GroupTheory/Coset/Defs.lean,Mathlib/GroupTheory/Coxeter/Basic.lean,Mathlib/LinearAlgebra/Span/Defs.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean,Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean,Mathlib/Order/DirectedInverseSystem.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/SetTheory/Cardinal/Defs.lean,Mathlib/SetTheory/PGame/Algebra.lean,done.csv,print.lean,working.csv | 42 | 3 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 9 months ago | unknown | unknown |
| 23349 | BGuillemet | feat: add LocallyLipschitzOn.lipschitzOnWith_of_isCompact and two small lemmas about Lipschitz functions | Main feat (in Mathlib/Topology/EMetricSpace/Basic.lean): if a function `f` from an extended pseudometric space to a pseudometric space is locally Lipschitz on a compact subset `s`, then `f` is Lipschitz on `s`. The theorem is true only when the codomain of `f` is a pseudometric space, so it needs imports from Mathlib/Topology/MetricSpace. Other small feat (in Mathlib/Analysis/Calculus/ContDiff/RCLike.lean): a function that is continuously differentiable on an open subset is locally Lipschitz on this subset. --- - [ ] depends on: #22890 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology large-import new-contributor | 59/4 | Mathlib/Analysis/Calculus/ContDiff/RCLike.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean | 2 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | PatrickMassot | 9 months ago | unknown | unknown |
| 12438 | jjaassoonn | feat: some APIs for flat modules | Need horseshoe lemma --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 1674/3 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean,Mathlib/Algebra/Exact.lean,Mathlib/CategoryTheory/Abelian/Basic.lean,Mathlib/CategoryTheory/Abelian/DiagramLemmas/Horseshoe.lean,Mathlib/CategoryTheory/Abelian/LeftDerived.lean,Mathlib/RingTheory/Flat/Basic.lean | 8 | 21 | ['erdOne', 'github-actions', 'jjaassoonn', 'joelriou'] | nobody | 9 months ago | unknown | unknown |
| 8740 | digama0 | fix: improve `recall` impl / error reporting | Simplifies the implementation of `recall`, fixing a bug [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/.60recall.60.20strangeness/near/405076713) and also eliminating a use of `open private`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author awaiting-CI t-meta | 27/39 | Mathlib/Tactic/Recall.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 9 months ago | unknown | unknown |
| 17715 | adomani | feat: the unusedVariableCommand linter | This is still work-in-progress, but also help-wanted! The linter reliably flags unused variables: so far, only `example`s fool it (and that is simply because I did not implement a fix, as there are very few `variable`s that are only used in `example`s in mathlib). The work-in-progress part refers to the fact that the linter uses an `IO.Ref` to keep track of variables and this does not work well with editing the file. The linter works on a fresh parse of a file, but becomes out-of-sync with every edit. The help-wanted is to ask for help to make mathlib compliant with the linter, by checking out this branch and PR-ing a few variable removals! [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Unused.20variables) --- Known issues: * automatic namespacing and `nonrec` may cause difficulty when the newly introduced declaration is preferred in the term, rather than the original one (see examples here ```bash code -r -g ././././Mathlib/Analysis/SpecialFunctions/Arsinh.lean:183 code -r -g ././././Mathlib/Probability/Independence/Basic.lean:368 ``` where, for instance, `ContinuousOn.arsinh` is used internally instead of `Real.arsinh`). * `mutual` declarations confuse the linter ```bash code -r -g ././././Mathlib/SetTheory/Lists.lean:313 ``` * `code -r -g Mathlib/CategoryTheory/EffectiveEpi/Comp.lean:133:29` * universe annotations confuse the linter: ```bash code -r -g ././././Mathlib/Topology/Category/CompactlyGenerated.lean:53 code -r -g ././././Mathlib/AlgebraicTopology/CechNerve.lean:46 ``` * `inductive`s confusing the linter ```bash code -r -g ././././Mathlib/Deprecated/Subgroup.lean:389 code -r -g ././././Mathlib/FieldTheory/PerfectClosure.lean:55 ``` * `def`s confusing the linter ```bash code -r -g ././././Mathlib/Data/MLList/BestFirst.lean:104 ``` * special typeclass assumptions ```code code -r -g ././././Mathlib/RingTheory/WittVector/Truncated.lean:273 code -r -g ././././Mathlib/Topology/Category/Profinite/Product.lean:79 ``` * not sure what is going on here: ```bash code -r -g ././././Mathlib/RingTheory/WittVector/IsPoly.lean:95 code -r -g ././././Mathlib/Probability/Independence/Basic.lean:368 code -r -g ././././Mathlib/Analysis/Calculus/FDeriv/Star.lean:30 ``` [](https://gitpod.io/from-referrer/) | merge-conflict t-linter large-import | 695/22 | Mathlib.lean,Mathlib/Algebra/Group/Idempotent.lean,Mathlib/Algebra/GroupWithZero/Idempotent.lean,Mathlib/Data/Finite/Defs.lean,Mathlib/Data/Int/Cast/Field.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Init.lean,Mathlib/MeasureTheory/Function/LpSpace/DomAct/Continuous.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/BoundedOrder/Lattice.lean,Mathlib/Order/BoundedOrder/Monotone.lean,Mathlib/Order/Monotone/Monovary.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/UnusedVariableCommand.lean,MathlibTest/UnusedVariableCommand.lean,lakefile.lean | 17 | 3 | ['github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 9 months ago | unknown | unknown |
| 25473 | adomani | feat(CI): check that Mathlib files have lean or md extension | Twice recently there have been files with an "intended" `.lean` extension in `Mathlib/`: * #24942, ending in `;lean`; * #25457, ending in `.Lean`. `mk_all` does not add these files to `Mathlib.lean`, since they do not end in `.lean` and this later causes problems. This CI step checks that all files in `Mathlib/` end with `.lean` or `.md`. See #25474 for a test where the new step [correctly fails](https://github.com/leanprover-community/mathlib4/actions/runs/15464097783/job/43532018379?pr=25474). --- [](https://gitpod.io/from-referrer/) | CI delegated | 10/0 | .github/workflows/lint_and_suggest_pr.yml | 1 | 10 | ['adomani', 'bryangingechen', 'github-actions', 'grunweg', 'mathlib-bors'] | nobody | 8 months ago | unknown | unknown |
| 16020 | adomani | feat: compare PR `olean`s size with `master` | Adds two CI steps: * `print the sizes of the oleans` that prints the sizes of all the folders containing `Mathlib` `.olean`s; * `compare oleans` that compares the sizes of the previous step with the corresponding sizes on `master`. In the test runs, the two steps have taken at most 3 seconds combined (the first is virtually instantaneous, the second one depends on `curl` to find a job id and on `gh` to retrieve the logs of a previous CI run -- everything else appears to be negligible). This hopefully helps finding out if some PR is bloating up the `.olean`s. See [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Error.3A.20No.20space.20left.20on.20device/near/463792355) for a PR of mine that prompted this check. --- [](https://gitpod.io/from-referrer/) | merge-conflict CI | 120/0 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,scripts/olean_comparison.sh | 5 | 50 | ['Vtec234', 'YaelDillies', 'adomani', 'bryangingechen', 'github-actions', 'grunweg', 'kim-em', 'leanprover-community-bot-assistant', 'mattrobball'] | nobody | 8 months ago | unknown | unknown |
| 16062 | adomani | Test/ci olean size | Tests for oleans --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author CI | 114/0 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,scripts/olean_comparison.sh | 5 | 4 | ['Parcly-Taxel', 'adomani', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 25507 | eric-wieser | chore(RingTheory/Valuation): golf using `Con` | This has no particular motivation besides seeing if `Con` is a performant substitute. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra bench-after-CI | 20/35 | Mathlib/RingTheory/Valuation/ValuationRing.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 12799 | jstoobysmith | feat(LinearAlgebra/UnitaryGroup): Add properties of Special Unitary Group | Add properties of the special unitary group, mirroring the properties of found in Algebra/Star/Unitary.lean. In particular, I add an instance of `specialUnitaryGroup` as a `Group`, `Star`, `InvolutiveStar`, and `StarMul`. --- [](https://gitpod.io/from-referrer/) | please-adopt t-algebra new-contributor merge-conflict awaiting-author | 78/0 | Mathlib/LinearAlgebra/UnitaryGroup.lean | 1 | 8 | ['chrisflav', 'jcommelin', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 23709 | plp127 | feat: `Nat.findFrom` | This PR adds `Nat.findFrom`, which is like `Nat.find`, but starting from an arbitrary `k` instead of `0`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 190/47 | Mathlib/Data/Nat/Find.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 25340 | dupuisf | chore(Analysis/Convex): move files pertaining to convex/concave functions to their own folder | This PR creates a new folder under `Analysis/Convex` called `Analysis/Convex/Function`, which includes files that are mostly or entirely about convex/concave functions (as opposed to convex sets). --- [](https://gitpod.io/from-referrer/) | merge-conflict t-convex-geometry | 4264/4155 | Mathlib.lean,Mathlib/Analysis/Convex/Continuous.lean,Mathlib/Analysis/Convex/Deriv.lean,Mathlib/Analysis/Convex/Exposed.lean,Mathlib/Analysis/Convex/Extrema.lean,Mathlib/Analysis/Convex/Function.lean,Mathlib/Analysis/Convex/Function/Basic.lean,Mathlib/Analysis/Convex/Function/Continuous.lean,Mathlib/Analysis/Convex/Function/Deriv.lean,Mathlib/Analysis/Convex/Function/Extrema.lean,Mathlib/Analysis/Convex/Function/Integral.lean,Mathlib/Analysis/Convex/Function/Jensen.lean,Mathlib/Analysis/Convex/Function/Mul.lean,Mathlib/Analysis/Convex/Function/Piecewise.lean,Mathlib/Analysis/Convex/Function/Quasiconvex.lean,Mathlib/Analysis/Convex/Function/Slope.lean,Mathlib/Analysis/Convex/Function/Strong.lean,Mathlib/Analysis/Convex/Integral.lean,Mathlib/Analysis/Convex/Jensen.lean,Mathlib/Analysis/Convex/Mul.lean,Mathlib/Analysis/Convex/Piecewise.lean,Mathlib/Analysis/Convex/Quasiconvex.lean,Mathlib/Analysis/Convex/Slope.lean,Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean,Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean,Mathlib/Analysis/Convex/Strong.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/Normed/Module/Convex.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean,Mathlib/Analysis/SpecialFunctions/Pochhammer.lean,Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean,Mathlib/NumberTheory/Harmonic/GammaDeriv.lean | 34 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 21734 | adomani | fix(PR summary): checkout GITHUB_SHA | This should make the version of the script that is used on PRs more stable. Suggested by Eric Wieser on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/messageFile.2Emd/near/498941855). --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author CI | 2/1 | .github/workflows/PR_summary.yml | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 25579 | JovanGerb | feat(Order/Notation): only allow ⊔/⊓ for non-linear orders | ⊔/⊓ is the same as max/min. The difference is that it is meant to be used if and only if there is no linear order. This PR implements a check for one of the two directions. --- [](https://gitpod.io/from-referrer/) | t-order | 33/7 | Mathlib/Order/Notation.lean | 1 | 1 | ['github-actions'] | nobody | 8 months ago | unknown | unknown |
| 13483 | adomani | feat: automatically replace deprecations | This PR introduces `lake exe update_deprecations` that uses the cache to automatically replace deprecated declarations with the corresponding un-deprecated one. The script handles namespacing, replacing a possibly non-fully-qualified, deprecated name with the fully-qualified non-deprecated name. It is also possible to use ```bash lake exe update_deprecations --mods One.Two.Three,Dd.Ee.Ff ``` to limit the scope of the replacements to the modules `One.Two.Three` and `Dd.Ee.Ff`. This is intended to be a first step in automating updates: combining this with a linter that emits appropriate warnings, the functionality of `lake exe update_deprecations` can be extended to perform more complicated updates. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author delegated t-meta | 306/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/UpdateDeprecations.lean,MathlibTest/UpdateDeprecations.lean,lakefile.lean,scripts/README.md,scripts/update_deprecations.lean | 7 | 16 | ['YaelDillies', 'adomani', 'github-actions', 'j-loreaux', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib-bors', 'sgouezel'] | joneugster | 8 months ago | unknown | unknown |
| 8949 | sebzim4500 | Add `by_approx` tactic for proving real inequalities using rational approximation | feat: Add `by_approx` tactic for proving real inequalities by finding rational approximations --- ```lean example : |sqrt 2 - 1.414| < 0.001 := by by_approx ``` This is a work in progress, the code is messy and the tactic is often very slow. It also depends on some other PRs that haven't been merged yet. It currently supports basic operations (`+`, `-`, `*`, `/`, `abs`) and has approximation extensions for `sqrt` and `exp`. - [ ] depends on: #8167 - [x] depends on: #8832 [](https://gitpod.io/from-referrer/) | merge-conflict modifies-tactic-syntax t-meta | 1670/3 | Mathlib.lean,Mathlib/Data/Int/ModEq.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ByApprox.lean,Mathlib/Tactic/ByApprox/Basic.lean,Mathlib/Tactic/ByApprox/Core.lean,Mathlib/Tactic/ByApprox/Exp.lean,Mathlib/Tactic/ByApprox/Lemmas.lean,Mathlib/Tactic/ByApprox/Test.lean,Mathlib/Tactic/ByApprox/Util.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRW.lean,Mathlib/Tactic/GRW/Core.lean,Mathlib/Tactic/GRW/Lemmas.lean,Mathlib/Tactic/NormNum/NatFactorial.lean,test/ByApprox.lean,test/GRW.lean,test/norm_num_ext.lean | 18 | 1 | ['mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 20334 | miguelmarco | feat: allow polyrith to use a local Singular/Sage install | Try to call a local install of Singular (either standalone or inside Sage) to find the witness for polyrith before trying to call the online sage cell server. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-meta | 171/48 | Mathlib/Tactic/Polyrith.lean,scripts/polyrith_sage.py | 2 | 16 | ['eric-wieser', 'github-actions', 'hanwenzhu', 'kim-em', 'miguelmarco', 'mkoeppe'] | nobody | 8 months ago | unknown | unknown |
| 25911 | BoltonBailey | make `a / b` simp normal form | This PR continues the work from #25631. Original PR: https://github.com/leanprover-community/mathlib4/pull/25631 | t-algebra | 11/1 | Mathlib/Algebra/Group/Defs.lean | 1 | 2 | ['BoltonBailey', 'github-actions'] | nobody | 8 months ago | unknown | unknown |
| 25912 | BoltonBailey | feat: add simp lemmas for trig functions on `π * 2⁻¹` | This PR adds a number of simp lemmas to reduce trig functions evaluated on `π * 2⁻¹`. This allows `simp` to reduce expressions such as `sin (π * (1 / 2))` --- - [ ] depends on: #25911 [experiment with simp normal form] Original PR: #24213 | awaiting-author blocked-by-other-PR t-analysis | 45/0 | Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean | 1 | 3 | ['BoltonBailey', 'github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 25918 | BoltonBailey | feat: one time pad string diagram | This PR continues the work from #10655. Original PR: https://github.com/leanprover-community/mathlib4/pull/10655 | 159/0 | MathlibTest/StringDiagram.lean | 1 | 2 | ['BoltonBailey', 'github-actions'] | nobody | 8 months ago | unknown | unknown | |
| 23953 | b-reinke | feat(Data/Matroid/Tutte): define the Tutte polynomial of a matroid | This PR defines the Tutte polynomial of a matroid and shows basic properties. - [x] depends on: #23926 - [ ] depends on #24336 - [ ] depends on: #23951 --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-data | 111/0 | Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Data/Matroid/Tutte/Basic.lean,Mathlib/Data/Set/Image.lean | 3 | 7 | ['apnelson1', 'b-reinke', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 25921 | BoltonBailey | feat: scripts to analyze overlap between namespaces | This PR continues the work from #11385. Original PR: https://github.com/leanprover-community/mathlib4/pull/11385 | WIP migrated-from-branch t-meta | 86/0 | scripts/RecordNamespaces.lean,scripts/namespace-overlap.py | 2 | 1 | ['github-actions'] | nobody | 8 months ago | 259 days ago | 2 days |
| 18771 | joelriou | feat(LinearAlgebra/ExteriorPower): exterior powers of free modules are free | Co-authored-by: sophie.morel@ens-lyon.fr --- - [ ] depends on: #18662 - [x] depends on: #18534 - [x] depends on: #18651 - [x] depends on: #18590 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra blocked-by-other-PR | 1185/160 | Mathlib.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Sum/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basis.lean,Mathlib/LinearAlgebra/ExteriorPower/Generators.lean,Mathlib/LinearAlgebra/ExteriorPower/Pairing.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean,Mathlib/LinearAlgebra/TensorPower/Basic.lean,Mathlib/LinearAlgebra/TensorPower/Pairing.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean | 19 | 3 | ['alreadydone', 'github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 18441 | ADedecker | refactor(AdicTopology): use new API for algebraic filter bases, and factor some code | --- - [x] depends on: #18437 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-algebra | 847/159 | Mathlib.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Algebra/FilterBasisNew.lean,Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean,Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean,Mathlib/Topology/Algebra/Nonarchimedean/BasesNew.lean | 6 | 3 | ['ADedecker', 'github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 18439 | ADedecker | refactor: use new algebraic filter bases API in `FiniteAdeleRing` | --- - [x] depends on: #18437 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-algebra | 699/21 | Mathlib.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Algebra/FilterBasisNew.lean,Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean,Mathlib/Topology/Algebra/Nonarchimedean/BasesNew.lean | 6 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 18438 | ADedecker | refactor: adapt `KrullTopology` to the new algebraic filter bases API | --- - [x] depends on: #18437 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-algebra | 771/168 | Mathlib.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Algebra/FilterBasisNew.lean,Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean,Mathlib/Topology/Algebra/Nonarchimedean/BasesNew.lean | 6 | 5 | ['ADedecker', 'AntoineChambert-Loir', 'github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 26239 | BoltonBailey | feat: add sample pre-commit git hook file | This PR adds a sample pre-commit git hook file that runs `mk_all` and `lint-style`. The script provides instructions on how to activate these as git hooks. Installing these would be optional, but hopefully people who would install them would find it easier to avoid commits that immediately fail linters. Discussion of hooks on [Zulip here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Automatic.20setup.20and.20distribution.20of.20git.20hooks/with/525103090). Some thoughts: - Perhaps it would be better, for speed, to attempt to avoid certain commands if the staged changes suggest they would be unnecessary. - i.e. only run linters on files that have been updated / only run `mk_all` if a file has been added or deleted. --- [](https://gitpod.io/from-referrer/) | WIP | 18/0 | git_hooks/pre-commit | 1 | 1 | ['github-actions'] | nobody | 8 months ago | 256 days ago | 14 minutes |
| 13964 | pechersky | feat(Data/DigitExpansion): begin defining variant of reals without rationals | Based on a de Bruijn 1976 paper. This file is just the basic definition of a digit expansion. Will be followed up with further constructions. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 518/0 | Mathlib.lean,Mathlib/Data/DigitExpansion/Defs.lean,docs/references.bib | 3 | 11 | ['eric-wieser', 'github-actions', 'kim-em', 'pechersky'] | dupuisf | 8 months ago | unknown | unknown |
| 21450 | eric-wieser | feat: improve trace nodes for `positivity` | --- [](https://gitpod.io/from-referrer/) | t-meta | 25/7 | Mathlib/Tactic/Positivity/Core.lean | 1 | 1 | ['github-actions'] | nobody | 8 months ago | unknown | unknown |
| 26327 | eric-wieser | chore: split the tests for positivity | --- [](https://gitpod.io/from-referrer/) | 528/2 | MathlibTest/Positivity/basic.lean,MathlibTest/positivity.lean | 2 | 1 | ['github-actions'] | nobody | 8 months ago | unknown | unknown | |
| 18662 | joelriou | feat(LinearAlgebra/ExteriorPower): generators of the exterior powers | --- - [x] depends on: #18534 - [x] depends on: #18590 - [ ] depends on: #26464 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra blocked-by-other-PR | 818/158 | Mathlib.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Sum/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Generators.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean | 15 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 18735 | joelriou | feat(Algebra/Module): presentation of the exterior power | Given a presentation of a `R`-module `M`, we obtain a presentation of `⋀[R]^n M`. --- (Still one sorry left.) - [ ] depends on: #18527 - [ ] depends on: #18432 - [ ] depends on: #26464 - [ ] depends on: #18534 - [ ] depends on: #18662 - [x] depends on: #18590 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra blocked-by-other-PR | 1856/157 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean,Mathlib/Algebra/Module/Presentation/Basic.lean,Mathlib/Algebra/Module/Presentation/ExteriorPower.lean,Mathlib/Algebra/Module/Presentation/PiTensor.lean,Mathlib/Algebra/Module/Presentation/Tensor.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Sum/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Generators.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean | 20 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 26581 | nomeata | ignore this: Lean pr testing 9124 | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 1723/1362 | Archive/Arithcc.lean,Archive/Examples/Eisenstein.lean,Archive/Examples/IfNormalization/WithoutAesop.lean,Archive/Imo/Imo1972Q5.lean,Archive/Imo/Imo1975Q1.lean,Archive/Imo/Imo1987Q1.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2006Q5.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2024Q1.lean,Archive/Imo/Imo2024Q3.lean,Archive/Imo/Imo2024Q5.lean,Archive/MiuLanguage/DecisionNec.lean,Archive/MiuLanguage/DecisionSuf.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/Partition.lean,Archive/Wiedijk100Theorems/PerfectNumbers.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Archive/ZagierTwoSquares.lean,Cache/Lean.lean,Counterexamples/AharoniKorman.lean,Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean,Counterexamples/CliffordAlgebraNotInjective.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Counterexamples/MapFloor.lean,Counterexamples/MonicNonRegular.lean,Counterexamples/Phillips.lean,Counterexamples/Pseudoelement.lean,Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean,Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Subalgebra/Operations.lean,Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean,Mathlib/Algebra/Algebra/Unitization.lean,Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/Algebra/Category/Ring/Epi.lean,Mathlib/Algebra/Category/Ring/FinitePresentation.lean,Mathlib/Algebra/Category/Ring/Topology.lean,Mathlib/Algebra/CharP/Basic.lean,Mathlib/Algebra/CharP/Defs.lean,Mathlib/Algebra/Colimit/Module.lean,Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/Equiv/TransferInstance.lean,Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/Group/Action/Basic.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Finset/Scalar.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/Lie/LieTheorem.lean,Mathlib/Algebra/Lie/Weights/Chain.lean,Mathlib/Algebra/Lie/Weights/RootSystem.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Module/Presentation/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/NoZeroSMulDivisors/Defs.lean,Mathlib/Algebra/Order/Antidiag/Pi.lean,Mathlib/Algebra/Order/CauSeq/Completion.lean,Mathlib/Algebra/Order/Field/Power.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean,Mathlib/Algebra/Polynomial/HasseDeriv.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/Algebra/Regular/Pi.lean,Mathlib/Algebra/Ring/Basic.lean,Mathlib/Algebra/Ring/CentroidHom.lean,Mathlib/Algebra/Ring/GrindInstances.lean,Mathlib/Algebra/Ring/Int/Defs.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean | 567 | 0 | [] | nobody | 8 months ago | unknown | unknown |
| 15213 | adomani | dev: add Mathlib.Tactic.Linter.ForallIntro | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter large-import | 608/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/ForallIntro.lean,MathlibTest/ForallIntro.lean | 5 | 5 | ['adomani', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 16801 | awainverse | feat(ModelTheory/Equivalence): The quotient type of formulas modulo a theory | Defines `FirstOrder.Language.Theory.Formula`: `T.Formula α` is the quotient of `L.Formula α` by equivalence modulo a theory `T`. Puts a boolean algebra instance on `T.Formula α`, with `≤` corresponding to implication. --- - [x] depends on: #16799 - [x] depends on: #16800 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 174/60 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Types.lean | 3 | 30 | ['YaelDillies', 'awainverse', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'metinersin'] | YaelDillies | 7 months ago | unknown | unknown |
| 17458 | 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. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-zulip | 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 | 7 months ago | unknown | unknown |
| 17627 | hrmacbeth | feat: universal properties of vector bundle constructions | Characterizations for the smoothness of maps into the total spaces of (1) the direct sum of two vector bundles; (2) the pullback of a vector bundle. This gap in the library was exposed by #17358. --- - [x] depends on: #22804 [](https://gitpod.io/from-referrer/) | merge-conflict t-differential-geometry delegated | 311/9 | Mathlib/Data/Bundle.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean,Mathlib/Topology/FiberBundle/Constructions.lean | 4 | 24 | ['PatrickMassot', 'github-actions', 'grunweg', 'hrmacbeth', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'sgouezel'] | grunweg | 7 months ago | unknown | unknown |
| 22928 | javra | feat(CategoryTheory): infrastructure for inclusion morphisms into products in categories with 0-morphisms | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 52/14 | Mathlib/CategoryTheory/Limits/Shapes/BinaryBiproducts.lean,Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean,Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean | 3 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 22952 | eric-wieser | refactor: reimplement `RingQuot` in terms of `RingCon.Quotient` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 157/184 | Mathlib/Algebra/RingQuot.lean,Mathlib/GroupTheory/Congruence/Basic.lean,Mathlib/RingTheory/Congruence/Basic.lean,Mathlib/RingTheory/Congruence/Defs.lean | 4 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 24710 | chrisflav | chore(Data/Set): `tsum` version of `Set.encard_iUnion_of_finite` for non-finite types | As requested here: https://github.com/leanprover-community/mathlib4/pull/23849#discussion_r2081070200 --- - [ ] depends on: #23849 [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 163/0 | Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Data/Set/Card/Arithmetic.lean,Mathlib/Data/Set/Card/InfiniteArithmetic.lean,Mathlib/Data/Set/Finite/Lattice.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/Instances/ENat/Lemmas.lean | 7 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 24823 | eric-wieser | refactor: add `hom` lemmas for the `MonoidalCategory` structure on `ModuleCat` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 148/164 | Mathlib/Algebra/Category/FGModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Free.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Generator.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Internal/Module.lean,Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Rep.lean | 11 | 21 | ['101damnations', 'YaelDillies', 'eric-wieser', 'github-actions', 'joelriou', 'kbuzzard', 'leanprover-community-bot-assistant'] | 101damnations | 7 months ago | 242 days ago | 25 days |
| 25071 | erdOne | feat(EllipticCurve): basic API for singular cubics | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-geometry | 320/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Singular/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean | 3 | 35 | ['Multramate', 'acmepjz', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 25197 | eric-wieser | feat: Finset.sum induction for tensor products. | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra large-import | 81/0 | Mathlib/LinearAlgebra/TensorProduct/Basic.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 25218 | kckennylau | feat(AlgebraicGeometry): Tate normal form of elliptic curves | --- [](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 | 7 months ago | unknown | unknown |
| 25247 | alreadydone | Projective contraction | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 160/31 | Mathlib/Data/Finsupp/Defs.lean,Mathlib/LinearAlgebra/Contraction.lean,Mathlib/LinearAlgebra/Pi.lean,Mathlib/RingTheory/Finiteness/Finsupp.lean | 4 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 25561 | callesonne | feat(Category/Grpd): define the bicategory of groupoids | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 179/25 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean,Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean,Mathlib/CategoryTheory/Category/Cat.lean,Mathlib/CategoryTheory/Category/Grpd.lean | 6 | 6 | ['callesonne', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'robin-carlier'] | nobody | 7 months ago | 258 days ago | 10 days |
| 25671 | eric-wieser | refactor: generalize `OreSet` to work for bimodules | --- [](https://gitpod.io/from-referrer/) | merge-conflict large-import | 243/256 | Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/GroupTheory/OreLocalization/OreSet.lean,Mathlib/RingTheory/OreLocalization/Ring.lean,Mathlib/RingTheory/TensorProduct/Nontrivial.lean | 6 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 25988 | Multramate | refactor(AlgebraicGeometry/EllipticCurve/*): replace Fin 3 with products | This PR continues the work from #24593. Original PR: https://github.com/leanprover-community/mathlib4/pull/24593 | merge-conflict t-algebraic-geometry | 1000/1022 | Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean | 6 | 3 | ['Multramate', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 26002 | robin-carlier | feat(CategoryTheory/Monoidal/Action): action of `Type` on categories with coproducts | We show that if a category admits coproducts of size `w`, then `Type w` acts on the left on that category. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 213/0 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Action/ChosenTypeCopowers.lean | 2 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 26090 | grunweg | chore: make `finiteness` a default tactic | Opening for discussion. This PR continues the work from #25119. | merge-conflict | 423/366 | Archive/Wiedijk100Theorems/BallotProblem.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Asymptotics/ExpGrowth.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Convex/Integral.lean,Mathlib/Analysis/Fourier/AddCircle.lean,Mathlib/Analysis/Fourier/AddCircleMulti.lean,Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Holder.lean,Mathlib/Data/ENNReal/Inv.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/InformationTheory/KullbackLeibler/Basic.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/MeasureTheory/Function/ContinuousMapDense.lean,Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean,Mathlib/MeasureTheory/Function/Egorov.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/L1Space/AEEqFun.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Function/LocallyIntegrable.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean,Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Defs.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Complete.lean,Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Integral/MeanInequalities.lean,Mathlib/MeasureTheory/Integral/Prod.lean,Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean,Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean,Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean,Mathlib/MeasureTheory/Measure/Haar/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/DistribChar.lean,Mathlib/MeasureTheory/Measure/Haar/Quotient.lean,Mathlib/MeasureTheory/Measure/Haar/Unique.lean,Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean,Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/MeasureTheory/Measure/Tilted.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean,Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean,Mathlib/Probability/BorelCantelli.lean,Mathlib/Probability/Independence/Conditional.lean,Mathlib/Probability/Integration.lean,Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean,Mathlib/Probability/Kernel/Disintegration/CondCDF.lean,Mathlib/Probability/Kernel/Disintegration/Density.lean,Mathlib/Probability/Martingale/Convergence.lean,Mathlib/Probability/Martingale/OptionalStopping.lean,Mathlib/Probability/Moments/CovarianceBilin.lean,Mathlib/Probability/Moments/Tilted.lean,Mathlib/Probability/Moments/Variance.lean,Mathlib/Probability/UniformOn.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/Perfect.lean,scripts/noshake.json | 73 | 3 | ['github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 26465 | joelriou | feat(Algebra/Module): presentation of the `PiTensorProduct` | Given a presentation of a finite number of `R`-modules `M i`, we obtain a presentation of the module `⨂[R] i, M i`. --- - [ ] depends on: #26464 This PR continues the work from #18527. Original PR: https://github.com/leanprover-community/mathlib4/pull/18527 | merge-conflict file-removed t-algebra blocked-by-other-PR | 525/4 | Mathlib.lean,Mathlib/Algebra/Module/Presentation/PiTensor.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Set/ComplSingletonLift.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/TensorPower/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean,Mathlib/SetTheory/Cardinal/Finite.lean | 10 | 4 | ['github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 26467 | joelriou | feat(LinearAlgebra): the tensor product of a finite family of free modules is free | --- - [ ] depends on: #26464 - [ ] depends on: #26465 [](https://gitpod.io/from-referrer/) | WIP t-algebra blocked-by-other-PR merge-conflict file-removed | 607/7 | Mathlib.lean,Mathlib/Algebra/Module/Presentation/Free.lean,Mathlib/Algebra/Module/Presentation/PiTensor.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Set/ComplSingletonLift.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basis.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/TensorPower/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean,Mathlib/SetTheory/Cardinal/Finite.lean | 12 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 20784 | eric-wieser | fix: prevent `exact?` recursing forever on `n = 55` | Test case thanks to @llllvvuu: ```lean import Mathlib.SetTheory.Ordinal.Basic theorem natCast_inj {m n : ℕ} : (m : Ordinal) = n ↔ m = n := sorry example (n : Nat) : n = 55 := by exact? ``` This is surely a workaround for some unreported lean bug. The bug still exists for `n = 71` or higher, so we can still track down the bug after merging this patch. --- [](https://gitpod.io/from-referrer/) | t-set-theory | 22/3 | Mathlib/SetTheory/Ordinal/Basic.lean,MathlibTest/LibrarySearchRecDepth.lean | 2 | 15 | ['Command-Master', 'eric-wieser', 'github-actions', 'kbuzzard', 'kim-em', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mattrobball'] | nobody | 7 months ago | unknown | unknown |
| 24405 | mcdoll | refactor(Topology/Algebra/Module/WeakDual): Clean up | - Move `Dual` and `dualPairing` lower in the import-hierachy - deduplicate `dualPairing` - Make `WeakDual` and `WeakSpace` reducible --- New version of #11500 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology large-import | 146/162 | Mathlib.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/Dual.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/VonNeumannAlgebra/Basic.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/Topology/Algebra/Module/Dual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,docs/overview.yaml,docs/undergrad.yaml | 14 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 26647 | b-mehta | feat(Data/Sym/Sym2): lift commutative operations to sym2 | While we have `Sym2.lift`, it's often useful to lift operations which are known to be commutative to the typeclass system. Indeed, the existing `Sym2.mul` witnesses this already. Thus, this PR can also be seen as generalising `Sym2.mul`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-data | 48/28 | Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/Sym/Sym2/Finsupp.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/QuadraticForm/Basis.lean | 4 | 12 | ['b-mehta', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | 240 days ago | 3 days |
| 26878 | adomani | feat: declaration diff script in Lean | Although, it is still text-based, the parsing of the output of `git diff` is now done in Lean. The new script already performed better than the old one in a couple of situations: * #26877 See [this comment](https://github.com/leanprover-community/mathlib4/pull/26847#issuecomment-3045308885) * #26849 See [this comment](https://github.com/leanprover-community/mathlib4/pull/26849#issuecomment-3045092965) --- This is still work in progress: the parsing should be more or less done, but I have not yet hooked this into the action workflow. [](https://gitpod.io/from-referrer/) | 497/0 | scripts/DeclarationDiff_text_based.lean | 1 | 4 | ['adomani', 'bryangingechen', 'github-actions'] | bryangingechen | 7 months ago | unknown | unknown | |
| 26067 | mapehe | feat(Topology/StoneCech): exists_continuous_surjection_from_StoneCech_to_dense_range | This lemma formalises the following version of the maximality property of the Stone–Čech compactification: If `f : α → β` is a continuous map from a topological space `α` to a Hausdorff space `β` with dense range, then there exists a continuous surjection from `StoneCech α` to `β` extending `f`. In particular, `StoneCech α` is the “largest” compact Hausdorff space into which `α` densely embeds, in the sense that any other such space is a continuous image of it. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 18/0 | Mathlib/Topology/StoneCech.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | 238 days ago | 20 days |
| 10541 | xgenereux | feat(Algebra/SkewMonoidAlgebra/Basic): add SkewMonoidAlgebra | # Skew Monoid algebras This file presents a skewed version of `Mathlib.Algebra.MonoidAlgebra.Basic`. ## Definition We define `SkewMonoidAlgebra k G := G →₀ k` attached with a skewed convolution product. Here, the product of two elements `f g : SkewMonoidAlgebra k G` is the finitely supported function whose value at `a` is the sum of `f x * (x • g y)` over all pairs `x, y` such that `x * y = a`. This will be used in a later PR to define skew polynomial rings. Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- - [x] depends on: #15878 - [x] depends on: #19084 - [x] depends on: #22078 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra new-contributor | 1624/0 | Mathlib.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean,Mathlib/Algebra/SkewMonoidAlgebra/Lift.lean | 4 | 105 | ['AntoineChambert-Loir', 'YaelDillies', 'eric-wieser', 'fpvandoorn', 'github-actions', 'mariainesdff', 'mathlib4-dependent-issues-bot', 'mattrobball', 'xgenereux'] | AntoineChambert-Loir | 7 months ago | unknown | unknown |
| 25999 | bjoernkjoshanssen | feat(Topology/Compactification): projective line over ℝ is homeomorphic to the one-point compactification of ℝ | This PR continues the work from #18306. Original PR: https://github.com/leanprover-community/mathlib4/pull/18306 | merge-conflict t-topology | 920/0 | Mathlib.lean,Mathlib/Topology/Compactification/OnePointHomeomorph.lean,Mathlib/Topology/Compactification/OnePointRealLemmas.lean | 3 | 3 | ['bjoernkjoshanssen', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 26994 | Paul-Lez | feat(Topology/MetricSpace/Pseudo/Defs): add easy lemma about opens in topological spaces | Split from #26992 --- [](https://gitpod.io/from-referrer/) | awaiting-author t-topology easy | 9/0 | Mathlib/Topology/MetricSpace/Pseudo/Defs.lean | 1 | 4 | ['Paul-Lez', 'github-actions', 'grunweg'] | nobody | 7 months ago | 235 days ago | 2 hours |
| 21039 | eric-wieser | hack: override `instance` to insert `fast_instance%` | --- [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-meta | 40/4 | Mathlib/Algebra/Equiv/TransferInstance.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/Tactic/FastInstance.lean,Mathlib/Topology/FiberBundle/Basic.lean | 4 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 26911 | JovanGerb | chore: fix naming of `mono` and `monotone` | The naming convention says: "We use `_mono` for `a ≤ b → f a ≤ f b` and `_anti` for `a ≤ b → f b ≤ f a`, so we also use `_monotone` for `Monotone f`, `_antitone` for `Antitone f`, `_strictMono` for `StrictMono f`, `_strictAnti` for `StrictAnti f`, etc..." This PR swaps `mono`/`anti` and `monotone`/`antitone` where required so that `monotone` refers to `Monotone`, while `mono` refers to a lemma that might be tagged with `@[gcongr]` This PR does not address - `mul_left_monotone` and `mul_right_monotone` are exactly the wrong way around - `monotone_right`/`mono_right` vs `right_monotone`/`right_mono` - `monotone_arcsin` vs `arcsin_monotone` edit: TODO: `ideal_mono` and friends --- [](https://gitpod.io/from-referrer/) | merge-conflict delegated | 238/171 | Archive/Imo/Imo1962Q1.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Group/Basic.lean,Mathlib/Algebra/Order/Group/Finset.lean,Mathlib/Algebra/Order/Group/PosPart.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Convex/Deriv.lean,Mathlib/Analysis/Normed/Order/UpperLower.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Combinatorics/SetFamily/Kleitman.lean,Mathlib/Combinatorics/SimpleGraph/Girth.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean,Mathlib/Computability/Ackermann.lean,Mathlib/Data/ENNReal/Inv.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/Nat/Choose/Factorization.lean,Mathlib/Data/Real/Pi/Bounds.lean,Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean,Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean,Mathlib/MeasureTheory/OuterMeasure/Operations.lean,Mathlib/NumberTheory/Bertrand.lean,Mathlib/NumberTheory/FermatPsp.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/Order/Concept.lean,Mathlib/Order/Filter/AtTopBot/Defs.lean,Mathlib/Order/Fin/Basic.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Heyting/Boundary.lean,Mathlib/Order/Heyting/Regular.lean,Mathlib/Order/Hom/Set.lean,Mathlib/Order/Interval/Set/Fin.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/UpperLower/Closure.lean,Mathlib/Probability/StrongLaw.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/Ideal.lean,Mathlib/RingTheory/FractionalIdeal/Basic.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean,Mathlib/Topology/MetricSpace/Antilipschitz.lean,Mathlib/Topology/MetricSpace/Holder.lean | 59 | 8 | ['JovanGerb', 'bryangingechen', 'github-actions', 'leanprover-community-bot-assistant', 'linesthatinterlace', 'mathlib-bors'] | bryangingechen | 7 months ago | 235 days ago | 2 days |
| 25611 | erdOne | chore(RingTheory): add `Algebra (FractionRing R) (FractionRing S)` | Co-authored-by: Yakov Pechersky --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 152/108 | Mathlib.lean,Mathlib/Algebra/Algebra/NonZeroDivisors.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean,Mathlib/RingTheory/Ideal/Norm/RelNorm.lean,Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean,Mathlib/RingTheory/Localization/FractionRing.lean,Mathlib/RingTheory/Localization/FractionRingAlgebra.lean,Mathlib/RingTheory/Localization/Integral.lean | 10 | 20 | ['alreadydone', 'erdOne', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'pechersky'] | nobody | 7 months ago | 265 days ago | 2 days |
| 18230 | digama0 | feat(Tactic/ScopedNS): extend `scoped[NS]` to more commands | refactor `ScopedNS` to remove error prone repetitiveness and extend it to other commands such as `syntax`, `macro`, `elab`, etc.
Co-authored-by: Jon Eugster |
awaiting-author t-meta | 201/26 | Mathlib/Tactic/ScopedNS.lean,MathlibTest/scopedNS.lean | 2 | 7 | ['adomani', 'digama0', 'eric-wieser', 'github-actions', 'joneugster', 'kbuzzard'] | nobody | 7 months ago | unknown | unknown |
| 27330 | BoltonBailey | feat(Tactic/Linter): add TacticMs for natural subtraction and division | This is a (pair of) short tactic scripts I wrote for Project Numina while vetting formal formal statements (thanks to [this guide](https://github.com/mirefek/lean-tactic-programming-guide) for the primer). The scripts check for the presence of natural subtraction and natural division, which can often lead to mistakes. Of course, Mathlib allows natural subtraction freely, so it's not obvious this could be made useful to Mathlib itself. Still, maybe it's of use to some other project, so I'll leave it here. --- [](https://gitpod.io/from-referrer/) | t-linter | 66/0 | Mathlib/Tactic/Linter/TruncatedNat.lean | 1 | 2 | ['BoltonBailey', 'eric-wieser', 'github-actions'] | nobody | 7 months ago | unknown | unknown |
| 25284 | alreadydone | feat(LinearAlgebra/Contraction): bijectivity of `dualTensorHom` + generalize to CommSemiring | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 167/32 | Mathlib/Data/Finsupp/Defs.lean,Mathlib/LinearAlgebra/Contraction.lean,Mathlib/LinearAlgebra/Pi.lean,Mathlib/LinearAlgebra/Trace.lean,Mathlib/RingTheory/Finiteness/Finsupp.lean | 5 | 16 | ['alreadydone', 'eric-wieser', 'github-actions', 'kckennylau', 'leanprover-bot', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | 230 days ago | 10 days |
| 22749 | joelriou | feat(CategoryTheory/Abelian): the Gabriel-Popescu theorem as a localization with respect to a Serre class | This PR introduces a structure `GabrielPopescuPackage C` which contains the information to say that the abelian category `C` is a localization of a category of modules with respect to a suitable Serre class. --- - [x] depends on: #26033 - [ ] depends on: #26663 - [x] depends on: #22733 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 202/6 | Mathlib.lean,Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/GabrielPopescu.lean,Mathlib/CategoryTheory/Abelian/SerreClass/Bousfield.lean,Mathlib/CategoryTheory/Abelian/SerreClass/MorphismProperty.lean,Mathlib/CategoryTheory/ObjectProperty/ContainsZero.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 26784 | eric-wieser | chore: remove suppress_compilation | Still not exhaustive. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 0/37 | Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/Colimit/Module.lean,Mathlib/Algebra/Colimit/Ring.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/Analysis/Normed/Algebra/Unitization.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean,Mathlib/CategoryTheory/Abelian/Projective/Resolution.lean,Mathlib/CategoryTheory/Monoidal/Internal/Module.lean | 18 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 26987 | joelriou | chore: deprecating module LinearAlgebra.PiTensorProduct | --- - [ ] depends on: #26464 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra blocked-by-other-PR | 1209/934 | Mathlib.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/SubtypeNeLift.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/TensorPower/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean,Mathlib/SetTheory/Cardinal/Finite.lean | 10 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 27435 | callesonne | feat(Normed/Algebra/Logarithm): add FormalMultilinearSeries of logarithm around `1` | This PR adds the `FormalMultilinearSeries` corresponding to `log` around `1` (or rather, corresponding to `log(1 + x)`. For now, this PR just adds the definition, and copies over as many (easy) results as possible from the corresponding exponential file. In a follow up PR, we will add a criterion for when the logarithm converges on the unit disk (based on the growth of the inverse norms of naturals in the given algebra), and show that this holds for any Q_p algebra. This work has been done as part of the workshop "Formalizing Class Field Theory" in Oxford. Since much of this is copy-pasting the Exponential file, I have kept Anatole Dedecker and Eric Wieser as coauthors. --- [](https://gitpod.io/from-referrer/) | WIP t-analysis | 311/0 | Mathlib/Analysis/Normed/Algebra/Logarithm.lean | 1 | 1 | ['github-actions'] | nobody | 7 months ago | unknown | unknown |
| 24668 | robertmaxton42 | feat(LinearAlgebra): add inductive principle for the free product of algebras | * Add `FreeProduct.inductionOn` and `.asPowers.inductionOn`. - [ ] depends on: #24532 --- * `simp↓` on `empty_rel'_bot`: the LHS is indeed not in simp-normal form, but `simp` can't solve the full lemma (if only because `Function.onFun` isn't marked `@[simp]`) and the actual simp-normal form of `rel'` isn't terribly useful for humans. Since I do expect users to type `rel' R A` by hand, I claim this use of `simp↓` is justified. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR | 205/9 | Mathlib/LinearAlgebra/FreeProduct/Basic.lean | 1 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 13973 | digama0 | feat: lake exe refactor, initial framework | This is the initial framework code for `lake exe refactor`. To use it, you add your refactoring to `Refactor/Main.lean` (note, you have to actually write some metaprogramming code here for the refactoring itself), and the harness will run it on specified files and apply the generated edits. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 139/0 | Refactor/Main.lean,lakefile.lean | 2 | 11 | ['adomani', 'digama0', 'eric-wieser', 'github-actions', 'joneugster', 'leanprover-community-bot-assistant', 'mattrobball'] | nobody | 7 months ago | unknown | unknown |
| 12181 | adomani | lint also `let` vs `have` | This PR is symmetrical to #12157: here we lint for non-`Type`-valued `let`s. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter | 797/544 | Archive/Imo/Imo1962Q1.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Mathlib.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/BigOperators/Basic.lean,Mathlib/Algebra/DirectLimit.lean,Mathlib/Algebra/Group/UniqueProds.lean,Mathlib/Algebra/Homology/HomologicalComplexBiprod.lean,Mathlib/Algebra/Homology/HomologySequence.lean,Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean,Mathlib/Algebra/Homology/Localization.lean,Mathlib/Algebra/Homology/ShortComplex/Abelian.lean,Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean,Mathlib/Algebra/Homology/ShortComplex/Exact.lean,Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean,Mathlib/Algebra/Homology/ShortComplex/Homology.lean,Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean,Mathlib/Algebra/Homology/ShortComplex/Linear.lean,Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean,Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean,Mathlib/Algebra/Homology/ShortComplex/QuasiIso.lean,Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean,Mathlib/Algebra/Lie/Engel.lean,Mathlib/Algebra/Lie/Killing.lean,Mathlib/Algebra/Module/PID.lean,Mathlib/Algebra/Module/Submodule/Localization.lean,Mathlib/Algebra/Module/Zlattice.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/Pullbacks.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/Rademacher.lean,Mathlib/Analysis/Complex/Tietze.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/Rayleigh.lean,Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean,Mathlib/Analysis/NormedSpace/Spectrum.lean,Mathlib/Analysis/SpecialFunctions/Integrals.lean,Mathlib/CategoryTheory/Abelian/Basic.lean,Mathlib/CategoryTheory/Abelian/Exact.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/Abelian/Transfer.lean,Mathlib/CategoryTheory/Adhesive.lean,Mathlib/CategoryTheory/Closed/Cartesian.lean,Mathlib/CategoryTheory/Closed/Monoidal.lean,Mathlib/CategoryTheory/Comma/Arrow.lean,Mathlib/CategoryTheory/EffectiveEpi/Extensive.lean,Mathlib/CategoryTheory/Extensive.lean,Mathlib/CategoryTheory/Functor/EpiMono.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Galois/Basic.lean,Mathlib/CategoryTheory/Galois/Decomposition.lean,Mathlib/CategoryTheory/Galois/Examples.lean,Mathlib/CategoryTheory/GradedObject/Trifunctor.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/ConcreteCategory.lean,Mathlib/CategoryTheory/Limits/Constructions/EpiMono.lean,Mathlib/CategoryTheory/Limits/Constructions/WeaklyInitial.lean,Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/FintypeCat.lean,Mathlib/CategoryTheory/Limits/Fubini.lean,Mathlib/CategoryTheory/Limits/IsLimit.lean,Mathlib/CategoryTheory/Limits/Preserves/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean,Mathlib/CategoryTheory/Limits/VanKampen.lean,Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean,Mathlib/CategoryTheory/Localization/Pi.lean,Mathlib/CategoryTheory/Localization/Resolution.lean,Mathlib/CategoryTheory/Monad/Monadicity.lean,Mathlib/CategoryTheory/PUnit.lean,Mathlib/CategoryTheory/Sites/Coherent/CoherentSheaves.lean,Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean,Mathlib/CategoryTheory/Sites/Coverage.lean,Mathlib/CategoryTheory/Sites/LeftExact.lean,Mathlib/CategoryTheory/Sites/Preserves.lean,Mathlib/CategoryTheory/Sites/Pullback.lean,Mathlib/CategoryTheory/Sites/Sheaf.lean,Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean,Mathlib/Combinatorics/Colex.lean,Mathlib/Combinatorics/SetFamily/Kleitman.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity.lean | 271 | 0 | [] | nobody | 7 months ago | unknown | unknown |
| 10190 | jstoobysmith | feat(AlgebraicTopology): add Augmented Simplex Category | - Added the definition of the category FinLinOrd of finite linear ordered sets. - Added the definition of the augmented simplex category `AugmentedSimplexCategory`, and showed it is the Skeleton of FinLinOrd. - Showed that the category of augmented simplicial objects defined as a comma category is equivalent to the category of functors from `AugmentedSimplexCategory^\op` --- [](https://gitpod.io/from-referrer/) | t-algebraic-topology WIP t-category-theory new-contributor merge-conflict | 720/0 | Mathlib.lean,Mathlib/AlgebraicTopology/AugmentedSimplexCategory.lean,Mathlib/AlgebraicTopology/SimplicialObject.lean,Mathlib/Order/Category/FinLinOrd.lean | 4 | 5 | ['TwoFX', 'YaelDillies', 'joelriou', 'jstoobysmith'] | nobody | 7 months ago | unknown | unknown |
| 10084 | alreadydone | draft for Van Kampen | The part about the homotopy lifting property for covering maps has been extracted to #22649 --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebraic-topology | 91/24 | Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/VanKampen.lean | 2 | 1 | ['leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 25914 | eric-wieser | feat: add an ext lemma for the opposite category | This powers up `aesop_cat`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory awaiting-CI | 18/56 | Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/CategoryTheory/Abelian/Opposite.lean,Mathlib/CategoryTheory/Category/RelCat.lean,Mathlib/CategoryTheory/GuitartExact/Opposite.lean,Mathlib/CategoryTheory/Limits/Opposites.lean,Mathlib/CategoryTheory/Limits/Shapes/Products.lean,Mathlib/CategoryTheory/Opposites.lean,Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean,Mathlib/Combinatorics/Quiver/Basic.lean | 9 | 7 | ['eric-wieser', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'robin-carlier'] | nobody | 7 months ago | unknown | unknown |
| 20208 | js2357 | feat: Define the localization of a fractional ideal at a prime ideal | Define the localization of a fractional ideal at a prime ideal, and prove some basic properties. --- Alternate version of #14237 generalized to use `IsLocalization` and `IsFractionRing` rather than `Localization.AtPrime` and `FractionRing` [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 248/0 | Mathlib.lean,Mathlib/RingTheory/FractionalIdeal/LocalizedAtPrime.lean | 2 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 24260 | plp127 | feat(Topology): add API for Hereditarily Lindelof spaces | Copies the stuff about Lindelof spaces to Hereditarily Lindelof spaces. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 222/42 | Mathlib/Topology/Compactness/Lindelof.lean | 1 | 15 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'urkud'] | urkud | 7 months ago | unknown | unknown |
| 27181 | ADedecker | chore: more conceptual definition of `ValuativeRel.ValueGroupWithZero` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra large-import | 685/467 | Mathlib.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/GroupWithZero.lean,Mathlib/RingTheory/OreLocalization/Basic.lean,Mathlib/RingTheory/OreLocalization/NonZeroDivisors.lean,Mathlib/RingTheory/OreLocalization/Ring.lean,Mathlib/RingTheory/Valuation/ValuativeRel.lean | 9 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 7 months ago | unknown | unknown |
| 27813 | javra | feat: IMO 2025 Q1 | --- [](https://gitpod.io/from-referrer/) | IMO WIP | 882/0 | Archive/Imo/Imo2025Q1.lean | 1 | 1 | ['github-actions'] | nobody | 7 months ago | unknown | unknown |
| 27608 | RemyDegenne | feat(MeasureTheory): typeclasses for measures with finite moments | WIP because it seems useful for #26291 but I want to investigate more. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-measure-probability | 97/17 | Mathlib.lean,Mathlib/MeasureTheory/Measure/Typeclasses/FiniteMoments.lean,Mathlib/Probability/Moments/CovarianceBilin.lean | 3 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 7 months ago | unknown | unknown |
| 20008 | FLDutchmann | feat(NumberTheory): Selberg sieve | This PR is a working draft of the full proof of the fundamental theorem of the Selberg sieve. I will create dependent PRs as I clean up the code. This work was used in the first proof of the prime number theorem in PNT+. --- - [x] depends on: #20025 - [x] depends on: #20026 - [x] depends on: #20779 - [x] depends on: #21880 - [ ] depends on: #27702 - [ ] depends on: #27707 [](https://gitpod.io/from-referrer/) | t-number-theory blocked-by-other-PR merge-conflict awaiting-author t-analysis | 937/0 | Mathlib/NumberTheory/SelbergSieve/Basic.lean,Mathlib/NumberTheory/SelbergSieve/Selberg.lean,docs/references.bib | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 27826 | xgenereux | feat(Subsemiring): mk_eq_zero | Add a `mk_eq_zero` lemma for `Subsemiring`. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra | 4/0 | Mathlib/Algebra/Ring/Subsemiring/Defs.lean | 1 | 3 | ['eric-wieser', 'github-actions', 'xgenereux'] | nobody | 7 months ago | 214 days ago | 1 hour |
| 27050 | BoltonBailey | doc(Control/Monad/Cont): add docstrings | Split of #25917. Adds docstrings to this file. Note: this documentation was written by asking Cursor (Claude 3.5 sonnet) to write the docstrings. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data | 183/0 | Mathlib/Control/Monad/Cont.lean | 1 | 8 | ['BoltonBailey', 'eric-wieser', 'github-actions'] | nobody | 7 months ago | 233 days ago | 22 hours |
| 27225 | eric-wieser | refactor(Tactic/Lift): deprecate the third with argument | We already have a number of tactics where the clearing happens all the time, and you have to opt out with `id h`. This also fixes a bug where `lift z to Nat with n hn this_is_unused` would silently ignore `this_is_unused`. --- - [ ] depends on: #27223 [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 21/9 | Mathlib/Tactic/Lift.lean,MathlibTest/lift.lean | 2 | 8 | ['JovanGerb', 'adomani', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'vihdzp'] | JovanGerb | 7 months ago | 213 days ago | 15 days |
| 26383 | eric-wieser | feat: `Real.sin_eq_one_iff` and similar | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 155/101 | Mathlib/Algebra/ModEq.lean,Mathlib/Analysis/SpecialFunctions/Complex/Log.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean | 5 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 25991 | Multramate | feat(AlgebraicGeometry/EllipticCurve): generalise nonsingular condition | This PR continues the work from #25219. Original PR: https://github.com/leanprover-community/mathlib4/pull/25219 | merge-conflict t-algebraic-geometry | 2127/1561 | Mathlib/Algebra/Group/Units/Basic.lean,Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/Algebra/Module/PID.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Span.lean | 15 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 25986 | Multramate | feat(AlgebraicGeometry/EllipticCurve/NumberField/Height): define heights on Weierstrass curves | This PR continues the work from #15786. Original PR: https://github.com/leanprover-community/mathlib4/pull/15786 | t-algebraic-geometry | 650/0 | Mathlib/AlgebraicGeometry/EllipticCurve/NumberField/Height.lean | 1 | 2 | ['Multramate', 'github-actions'] | nobody | 6 months ago | unknown | unknown |
| 25985 | Multramate | feat(AlgebraicGeometry/EllipticCurve/Jacobian): add equivalences between points and explicit WithZero types | This PR continues the work from #14923. Original PR: https://github.com/leanprover-community/mathlib4/pull/14923 | merge-conflict t-algebraic-geometry | 262/66 | Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean,scripts/style-exceptions.txt | 4 | 1 | ['Multramate'] | nobody | 6 months ago | unknown | unknown |
| 25982 | Multramate | feat(AlgebraicGeometry/EllipticCurve/Group): compute range of baseChange | This PR continues the work from #10142. Original PR: https://github.com/leanprover-community/mathlib4/pull/10142 | merge-conflict t-algebraic-geometry | 421/212 | Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean,Mathlib/GroupTheory/GroupAction/Basic.lean,Mathlib/GroupTheory/Subgroup/Basic.lean,Mathlib/GroupTheory/Submonoid/Operations.lean | 6 | 1 | ['Multramate'] | nobody | 6 months ago | unknown | unknown |
| 25486 | VTrelat | feat(SetTheory/ZFC/Integers): define integers in ZFC | Extend the model of ZFC with integers following the converse direction as for naturals. We first define a type and then build a set. We finally show that both representations have coercions in both direction: - define a proper type `ZFInt` representing integers based on `ZFNat × ZFNat` and following the usual construction of integers - add theorems on usual algebraic properties of integers - define a set `Int` and show that it matches-i.e. that it is isomorphic to-the type `ZFInt` --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #25483 - [ ] depends on: #25485 | merge-conflict t-set-theory blocked-by-other-PR new-contributor | 2003/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean,Mathlib/SetTheory/ZFC/Integers.lean | 4 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 25485 | VTrelat | feat(SetTheory/ZFC/Naturals): define natural numbers in ZFC | Extend the model of ZFC with naturals: - define a set `Nat` of naturals following the usual construction (∅, {∅}, {∅, {∅}}, ...) - define a proper type `ZFNat` representing naturals - add theorems on usual algebraic properties of naturals - provide a recursor and induction schemes to define/prove by induction --- [](https://gitpod.io/from-referrer/) - [ ] depend on: #25483 | merge-conflict t-set-theory new-contributor | 2095/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean,Mathlib/SetTheory/ZFC/Naturals.lean | 4 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 25484 | VTrelat | feat(SetTheory/ZFC/Booleans): define Boolean algebra in ZFC | Extend the model of ZFC with Boolean algebra: - define a set 𝔹 of booleans - define a proper type `ZFBool` representing booleans - add theorems on usual algebraic properties of booleans - provide usual boolean notations like `⊤`, `⊥`, `∧`, `∨`, etc. --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #25483 | merge-conflict t-set-theory blocked-by-other-PR new-contributor | 619/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean | 3 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 25427 | Paul-Lez | feat(Analysis/Calculus/PartialDerivatives): Propose notation for partial derivatives. | This PR introduces a notation for partial derivatives, taken with respect to a canonical basis. The idea here is that this might be useful for e.g. writing down PDEs. The notation allows use to write things like
```lean
-- The canonical basis for `ℝ × ℝ` is indexed by `Fin 0` so `∂₀[ℝ]` corresponds to taking
-- the first partial derivative
example : (∂₀[ℝ] fun (x : ℝ × ℝ) => x.1) 0 = 1 := by
simp [Pi.zero_def, lineDeriv]
```
This has already been discussed on Zulip [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Partial.20derivatives).
I've opened this PR as a draft in order to get preliminary feedback on the contents (e.g. is this appropriate for Mathlib?); the file contains some demos of the notation in action.
Co-authored-by: Eric Wieser |
merge-conflict blocked-by-other-PR t-analysis | 195/0 | Mathlib.lean,Mathlib/Analysis/Calculus/PartialDerivatives/Notation.lean,Mathlib/LinearAlgebra/Basis/HasCanonicalBasis.lean | 3 | 16 | ['Paul-Lez', 'github-actions', 'leanprover-community-bot-assistant', 'lecopivo', 'mathlib4-dependent-issues-bot', 'ocfnash'] | nobody | 6 months ago | unknown | unknown |
| 25425 | Paul-Lez | feat(LinearAlgebra/Basis/HasCanonicalBasis): propose `HasCanonicalBasis` class | Context: in some cases, e.g. writing down PDEs, having a notion of partial derivatives can be useful. In an ideal world (as mentioned by @ocfnash in [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Partial.20derivatives/with/463936246)), one could write something along the lines of `open scoped PartialDerivatives` in order to access nice notation for this.
This PR introduces a notion of a canonical basis for a module in order to allow taking partial derivatives with respect to it.
A later PR (which I am about open) would then propose a notation for taking partial derivatives (defined using `lineDeriv` in order to avoid requiring Frechet-differentiability assumptions). The goal here is to have notation that works equally well on e.g. `𝕜 × 𝕜` and `EuclideanSpace 𝕜 (Fin 2)` and so on.
I've opened this PR as a draft in order to get some initial feedback on the content (and whether this is considered appropriate for Mathlib!); the file itself would need to be split (e.g. the instances defined should probably go in different files)
Co-authored-by: Eric Wieser |
merge-conflict t-algebra | 105/0 | Mathlib.lean,Mathlib/LinearAlgebra/Basis/HasCanonicalBasis.lean | 2 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 25362 | adomani | feat: a linter for duplicated `open` | This linter warns when a namespace is repeated. It makes an effort to report only the problematic namespaces, but is not especially robust. The linter has some awareness of the `namespace` command, so ```lean def X.Y := 0 open X namespace X open Y ``` will flag both `namespace X` and `open Y` as problematic, even though it was the `open `X` that became redundant with `namespace X`. However, I will not have much time to devote to polishing this and there are quite a few exception in Mathlib before a better version could be seriously considered for adoption. [#mathlib4 > linter requests @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/linter.20requests/near/520273644) --- [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-linter large-import | 191/94 | Mathlib.lean,Mathlib/Algebra/Group/Pi/Basic.lean,Mathlib/Algebra/GroupWithZero/Pi.lean,Mathlib/Algebra/Order/Ring/InjSurj.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Basic.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Finite/Defs.lean,Mathlib/Data/Ineq.lean,Mathlib/Data/List/Lemmas.lean,Mathlib/Data/List/NatAntidiagonal.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/Nat/Prime/Basic.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Init.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/Embedding/Set.lean,Mathlib/Logic/Pairwise.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/OreLocalization/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ApplyFun.lean,Mathlib/Tactic/Bound.lean,Mathlib/Tactic/CongrM.lean,Mathlib/Tactic/Find.lean,Mathlib/Tactic/Lift.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/DupOpen.lean,Mathlib/Tactic/NormNum/PowMod.lean,Mathlib/Tactic/Recover.lean,Mathlib/Tactic/ReduceModChar.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/SelectInsertParamsClass.lean,Mathlib/Tactic/Widget/StringDiagram.lean,Mathlib/Topology/CWComplex/Abstract/Basic.lean,Mathlib/Topology/ContinuousMap/Interval.lean,Mathlib/Topology/Germ.lean,Mathlib/Topology/Homotopy/HSpaces.lean,Mathlib/Topology/Order/LowerUpperTopology.lean,Mathlib/Topology/Order/PartialSups.lean,Mathlib/Topology/Separation/DisjointCover.lean,Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Util/CountHeartbeats.lean,MathlibTest/DupOpen.lean | 47 | 14 | ['adomani', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 25238 | Hagb | feat(Tactic/ComputeDegree): add support for scalar multiplication with different types | It would be able to deal with `a • (X : R[X])` where `a : S` is in a different type `S` with `[SMulZeroClass S R]`. --- - [x] depends on: #25237 [](https://gitpod.io/from-referrer/) | merge-conflict t-meta new-contributor | 17/5 | Mathlib/Tactic/ComputeDegree.lean,MathlibTest/ComputeDegree.lean | 2 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 17145 | Command-Master | feat(Archive/Ioi/Ioi2024Q2): a proof of the solution of question 2 from IOI 2024. | --- - [x] depends on: #17189 - [x] depends on: #17190 - [x] depends on: #17191 [](https://gitpod.io/from-referrer/) | merge-conflict WIP IMO large-import | 1013/1 | Archive.lean,Archive/Ioi/Ioi2024Q2.lean,Mathlib.lean,Mathlib/Combinatorics/Orbits.lean,Mathlib/Data/List/SplitLengths.lean,Mathlib/Data/List/Transpose.lean,Mathlib/Data/List/Zip.lean,Mathlib/Data/Vector/Basic.lean,Mathlib/Data/Vector/Defs.lean,Mathlib/Data/Vector/MapLemmas.lean,Mathlib/Data/Vector/Transpose.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/Logic/Function/Iterate.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Partition/Finpartition.lean | 15 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 27643 | ADedecker | Ad bdd unif conv | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 111/26 | Mathlib/Analysis/LocallyConvex/Bounded.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Module/UniformConvergence.lean,Mathlib/Topology/Bornology/Absorbs.lean | 4 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 26385 | jjdishere | feat(RingTheory/Perfectoid): define integral perfectoid rings | This PR continues the work from #22331. Original PR: https://github.com/leanprover-community/mathlib4/pull/22331 | merge-conflict WIP t-ring-theory | 1081/15 | Mathlib.lean,Mathlib/Algebra/Ring/Aut.lean,Mathlib/FieldTheory/Perfect.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Quotient/Defs.lean,Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/RingTheory/Perfectoid/BDeRham.lean,Mathlib/RingTheory/Perfectoid/FontaineTheta.lean,Mathlib/RingTheory/Perfectoid/IntergalPerfectoid.lean,Mathlib/RingTheory/Perfectoid/Untilt.lean,Mathlib/RingTheory/WittVector/Basic.lean,Mathlib/RingTheory/WittVector/Complete.lean,Mathlib/RingTheory/WittVector/TeichmullerSeries.lean,docs/references.bib | 16 | 3 | ['github-actions', 'jjdishere', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 22909 | AntoineChambert-Loir | feat(RingTheory/Pure): pure submodules | A submodule `N` of an `R`-module is *pure* if all maps `S ⊗[R] N → S ⊗[R] M` deduced by base change from the injection of `N` into `M` are injective, for all `R`-algebras `S`. This is expressed by the class `Submodule.IsPure`. For type theoretic reason, the definition of `Submodule.IsPure` only considers algebras `S` in the same universe as `R`, but `Submodule.IsPure.baseChange_injective` establishes the property for all universes. * `Submodule.IsComplemented.isPure` : a complemented submodule is pure. Co-authored with @mariainesdff --- - [ ] depends on: #22898 - [ ] depends on: #22908 - [x] depends on: #22911 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory blocked-by-other-PR | 592/3 | Mathlib.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/RingTheory/Adjoin/FG.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Finiteness/Cardinality.lean,Mathlib/RingTheory/Finiteness/Small.lean,Mathlib/RingTheory/Pure.lean,Mathlib/RingTheory/Spectrum/Prime/RingHom.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/FG.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/Small.lean | 11 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 22908 | AntoineChambert-Loir | feat(RingTheory/Finiteness/Small): tensor product of the system of small submodules | The directed limit of a tensor product for the directed system of small submodules. Co-authored with @mariainesdff --- - [ ] depends on: #22898 - [x] depends on: #22911 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory blocked-by-other-PR | 624/2 | Mathlib.lean,Mathlib/RingTheory/Adjoin/FG.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Finiteness/Cardinality.lean,Mathlib/RingTheory/Finiteness/Small.lean,Mathlib/RingTheory/Spectrum/Prime/RingHom.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/FG.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/Small.lean | 9 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 22898 | AntoineChambert-Loir | feat(RingTheory/TensorProduct/DirectLimit/FG): direct limit of finitely generated submodules and tensor product | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-ring-theory | 399/0 | Mathlib.lean,Mathlib/RingTheory/Adjoin/FG.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/FG.lean | 5 | 9 | ['AntoineChambert-Loir', 'alreadydone', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 20431 | erdOne | feat(RingTheory/AdicCompletion): monotonicity of adic-completeness | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 206/16 | Mathlib.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Mono.lean,Mathlib/RingTheory/Finiteness/Ideal.lean | 7 | 13 | ['chrisflav', 'erdOne', 'github-actions'] | nobody | 6 months ago | unknown | unknown |
| 19596 | Command-Master | feat(RingTheory/Valuation/PrimeMultiplicity): define `WithTop ℤ`-valued prime multiplicity on a fraction field | Moves: - `multiplicity_addValuation` -> `AddValuation.multiplicity` - `multiplicity_addValuation_apply` -> `AddValuation.multiplicity_apply` --- - [x] depends on: #19149 - [x] depends on: #18786 - [x] depends on: #19122 - [x] depends on: #18954 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory large-import | 101/37 | Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/Valuation/PrimeMultiplicity.lean | 3 | 11 | ['ChrisHughes24', 'Command-Master', 'Vierkantor', 'faenuccio', 'github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 18646 | jxjwan | feat(RingTheory): isotypic components | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory new-contributor | 308/0 | Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/RingTheory/Isotypic.lean,Mathlib/RingTheory/SimpleModule.lean | 3 | 1 | ['github-actions'] | nobody | 6 months ago | unknown | unknown |
| 17246 | pechersky | feat(RingTheory/PrimaryDecomposition): PIR of Noetherian under jacobson condition | --- - [x] depends on: #17634 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 653/1 | Mathlib.lean,Mathlib/NumberTheory/KummerDedekind.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Jacobson/Ideal.lean,Mathlib/RingTheory/PrimaryDecomposition.lean,docs/references.bib | 8 | 8 | ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot'] | erdOne | 6 months ago | unknown | unknown |
| 21474 | erdOne | feat(RingTheory): replace `Ring.DimensionLEOne` with `Ring.KrullDimLE` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory large-import | 285/170 | Mathlib.lean,Mathlib/RingTheory/DedekindDomain/Basic.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/DedekindDomain/Ideal.lean,Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/KrullDimension/Basic.lean,Mathlib/RingTheory/KrullDimension/Localization.lean,Mathlib/RingTheory/KrullDimension/Polynomial.lean,Mathlib/RingTheory/KrullDimension/Quotient.lean,Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean,Mathlib/RingTheory/Nilpotent/End.lean,Mathlib/RingTheory/Nilpotent/Lemmas.lean,Mathlib/RingTheory/PID/Quotient.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/Spectrum/Maximal/Localization.lean | 16 | 1 | ['github-actions'] | nobody | 6 months ago | unknown | unknown |
| 8195 | newell | feat: add a group presentation of the `DihedralGroup n` | Add group presentation $\< a, b\ |\ a ^ 2 = 1, b ^ 2 = 1, (a * b) ^ n = 1 \>$ for `DihedralGroup n`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-group-theory | 206/2 | Mathlib/GroupTheory/PresentedGroup.lean,Mathlib/GroupTheory/SpecificGroups/Dihedral.lean | 2 | 6 | ['kbuzzard', 'newell'] | nobody | 6 months ago | unknown | unknown |
| 11212 | shuxuezhuyi | feat(GroupTheory/GroupAction): instance `MulAction (β ⧸ H) α` | We instance this naturally from `MulAction β α` when `H` is a normal subgroup and acts trivially on `α`. We also instance `IsometricSMul (M ⧸ N) X` in this way. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-group-theory large-import | 53/1 | Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/Topology/MetricSpace/IsometricSMul.lean | 2 | 6 | ['YaelDillies', 'github-actions', 'grunweg', 'urkud'] | eric-wieser | 6 months ago | unknown | unknown |
| 27886 | alreadydone | feat(Algebra): (Mv)Polynomial.X is irreducible assuming NoZeroDivisors | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 178/66 | Archive/Examples/Eisenstein.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Domain.lean,Mathlib/Algebra/Polynomial/Degree/Units.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean,Mathlib/RingTheory/Polynomial/Content.lean,Mathlib/RingTheory/Polynomial/Eisenstein/Criterion.lean | 13 | 3 | ['alreadydone', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 211 days ago | 19 hours |
| 26200 | adomani | fix: add label when landrun fails | Adds the `permission-denied` label on PRs that get blocked by landrun. --- [](https://gitpod.io/from-referrer/) | merge-conflict CI | 68/8 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml | 4 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 210 days ago | 46 days |
| 17469 | joelriou | feat(Algebra/ModuleCat/Differentials/Presheaf): the presheaf of relative differentials | Given a functor `F : C ⥤ D`, presheaves of commutative rings `S`, `R` and a morphism `φ : S ⟶ F.op ⋙ R`, we show that derivations relative to `φ` are representable by a presheaf of `R`-modules. This is obtained by reducing to the case of absolute differentials. The construction shall allow to deduce the presheaf version of the cokernel sequence $$f^\star \Omega_{Y/S} ⟶ \Omega_{X/S} ⟶ \Omega_{X/Y} ⟶ 0$$ when `f : X ⟶ Y` and `g : Y ⟶ S` are morphisms of schemes. --- - [x] depends on: #17366 - [x] depends on: #19507 - [x] depends on: #17388 - [x] depends on: #16755 [](https://gitpod.io/from-referrer/) | WIP t-category-theory large-import merge-conflict t-algebraic-geometry | 391/10 | Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean | 1 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 25288 | robertmaxton42 | feat(CategoryTheory): generalize `Discrete` to arbitrary morphism levels | Using an unused `let`, add an 'anchor' to the definition of `Discrete`, allowing it to carry a second universe level that is then used to permit discrete categories to live in any `Cat.{v, u}`. (This trick was borrowed from the code of `ULiftHom`.) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 38/32 | Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean,Mathlib/CategoryTheory/Discrete/Basic.lean,Mathlib/CategoryTheory/IsConnected.lean | 3 | 3 | ['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 27709 | kckennylau | chore: fix links | --- See https://github.com/leanprover-community/mathlib4/pull/27545#discussion_r2238206933 [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 269/256 | Mathlib/Algebra/Algebra/Bilinear.lean,Mathlib/Algebra/GCDMonoid/Multiset.lean,Mathlib/Algebra/Group/Even.lean,Mathlib/Algebra/Group/Pi/Basic.lean,Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Module/Hom.lean,Mathlib/Algebra/Module/Submodule/Bilinear.lean,Mathlib/Algebra/Order/Field/Pi.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Hom/Basic.lean,Mathlib/Algebra/Order/Monovary.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Ring/Basic.lean,Mathlib/Algebra/Squarefree/Basic.lean,Mathlib/Algebra/Star/BigOperators.lean,Mathlib/Algebra/Star/Free.lean,Mathlib/Algebra/Star/SelfAdjoint.lean,Mathlib/Analysis/Analytic/RadiusLiminf.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/Deriv/Inverse.lean,Mathlib/Analysis/Calculus/Deriv/Linear.lean,Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Complex/Circle.lean,Mathlib/Analysis/Complex/OperatorNorm.lean,Mathlib/Analysis/Convex/Function.lean,Mathlib/Analysis/Convex/Jensen.lean,Mathlib/Analysis/Meromorphic/IsolatedZeros.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,Mathlib/Analysis/SpecialFunctions/Exponential.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean,Mathlib/CategoryTheory/Abelian/Opposite.lean,Mathlib/CategoryTheory/Adjunction/Opposites.lean,Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean,Mathlib/CategoryTheory/Closed/Monoidal.lean,Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean,Mathlib/CategoryTheory/Localization/Equivalence.lean,Mathlib/CategoryTheory/Localization/Trifunctor.lean,Mathlib/CategoryTheory/ObjectProperty/Basic.lean,Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean,Mathlib/Combinatorics/Colex.lean,Mathlib/Combinatorics/Hall/Finite.lean,Mathlib/Combinatorics/Pigeonhole.lean,Mathlib/Combinatorics/Quiver/Covering.lean,Mathlib/Combinatorics/Quiver/Path.lean,Mathlib/Control/LawfulFix.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/Fin/Pigeonhole.lean,Mathlib/Data/FinEnum/Option.lean,Mathlib/Data/Finset/Filter.lean,Mathlib/Data/Finsupp/Fin.lean,Mathlib/Data/Fintype/BigOperators.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Int/Basic.lean,Mathlib/Data/Int/Cast/Basic.lean,Mathlib/Data/Int/Cast/Lemmas.lean,Mathlib/Data/Int/Lemmas.lean,Mathlib/Data/Int/Order/Lemmas.lean,Mathlib/Data/Int/Range.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Dedup.lean,Mathlib/Data/List/Destutter.lean,Mathlib/Data/List/Forall2.lean,Mathlib/Data/List/Lattice.lean,Mathlib/Data/List/Lemmas.lean,Mathlib/Data/List/Nodup.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/List/Permutation.lean,Mathlib/Data/List/ProdSigma.lean,Mathlib/Data/List/Sections.lean,Mathlib/Data/List/Sublists.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Data/Matroid/Minor/Restrict.lean,Mathlib/Data/Multiset/FinsetOps.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Cast/WithTop.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/Nat/Factorization/Basic.lean,Mathlib/Data/Nat/Factorization/LCM.lean,Mathlib/Data/PSigma/Order.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Rat/Encodable.lean,Mathlib/Data/Set/Card.lean,Mathlib/Data/Set/Defs.lean,Mathlib/Data/Set/Finite/Basic.lean,Mathlib/Data/Set/Finite/Lattice.lean,Mathlib/Data/Set/Functor.lean,Mathlib/Data/Set/Notation.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/Data/Set/Prod.lean,Mathlib/Data/Sigma/Lex.lean | 157 | 87 | ['github-actions', 'kbuzzard', 'kckennylau', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 10345 | newell | feat(Algebra.Module.Zlattice): Add Voronoi Domain | Adds the definition for a Voronoi Domain in regards to the $\mathbb{Z}$-lattice: $$C := \lbrace\mathbf{w} \in \mathbb{V}^n\ :\ |\mathbf{w}| \leq |\mathbf{w} - \mathbf{v}|\ \text{for all}\ \mathbf{v} \in \mathbf{L} \rbrace$$ where $\mathbf{L}\$ is the $\mathbb{Z}$-lattice. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 17/0 | Mathlib/Algebra/Module/Zlattice.lean | 1 | 3 | ['alreadydone', 'newell'] | nobody | 6 months ago | unknown | unknown |
| 28075 | tristan-f-r | chore(Finsupp/Indicator): make non-classical | This was surprising to see on a data-carrying definition. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data easy | 11/9 | Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Indicator.lean | 2 | 3 | ['github-actions', 'ocfnash', 'tristan-f-r'] | nobody | 6 months ago | 207 days ago | 7 hours |
| 28168 | astrainfinita | feat: hensel's lemma for topological rings | --- [](https://gitpod.io/from-referrer/) | t-algebra WIP t-ring-theory t-topology | 616/0 | Mathlib/RingTheory/Polynomial/Hensel.lean | 1 | 1 | ['github-actions'] | nobody | 6 months ago | unknown | unknown |
| 20671 | thefundamentaltheor3m | feat(Analysis/Asymptotics/SpecificAsymptotics): Proving that 𝛔ₖ(n) = O(nᵏ⁺¹) | This PR proves a result about the $\sigma_k(n)$ arithmetic function, namely, that it is $O\left(n^{k+1}\right)$. Main theorem: `theorem sigma_asymptotic (k : ℕ) : (fun n ↦ (σ k n : ℝ)) =O[atTop] (fun n ↦ (n ^ (k + 1) : ℝ))` This result was proved as part of the sphere packing project. --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor large-import merge-conflict awaiting-author | 29/0 | Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean | 1 | 3 | ['b-mehta', 'github-actions', 'mathlib4-merge-conflict-bot'] | b-mehta | 6 months ago | unknown | unknown |
| 20267 | joelriou | feat(CategoryTheory): comma categories are accessible | --- (I shall probably not work on this PR in the near future.) - [ ] depends on: #19937 - [ ] depends on: #19945 - [ ] depends on: #19959 - [ ] depends on: #20005 - [ ] depends on: #19955 - [x] depends on: #20263 [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author t-category-theory | 1513/7 | Mathlib.lean,Mathlib/CategoryTheory/Comma/Arrow.lean,Mathlib/CategoryTheory/Comma/CardinalArrow.lean,Mathlib/CategoryTheory/EssentiallySmall.lean,Mathlib/CategoryTheory/Limits/Comma.lean,Mathlib/CategoryTheory/Limits/TypesFiltered.lean,Mathlib/CategoryTheory/Presentable/Basic.lean,Mathlib/CategoryTheory/Presentable/CardinalFilteredPresentation.lean,Mathlib/CategoryTheory/Presentable/Comma.lean,Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/CategoryTheory/Presentable/Limits.lean,Mathlib/CategoryTheory/Presentable/LocallyPresentable.lean,Mathlib/CategoryTheory/Presentable/ParallelMaps.lean,Mathlib/SetTheory/Cardinal/HasCardinalLT.lean,docs/references.bib | 15 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 27451 | kckennylau | feat(RingTheory/Valuation): define ball, closed ball, and sphere | *From the 2025 Local Class Field Theory Workshop.* --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 27/0 | Mathlib/RingTheory/Valuation/Basic.lean | 1 | 13 | ['JovanGerb', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'pechersky', 'wwylele'] | nobody | 6 months ago | 204 days ago | 17 days |
| 27987 | kckennylau | feat(RingTheory/Valuation): define ball, closed ball, and sphere | --- The pullback PR of #26827 and #27451. [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory large-import | 73/0 | Mathlib/RingTheory/Valuation/Basic.lean | 1 | 4 | ['JovanGerb', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 204 days ago | 6 days |
| 27444 | grunweg | feat: generalise more lemmas to enorms | The selection of lemmas may seem eclectic, but follows a clear path: I'm working on generalising the last section of `IntegrableOn.lean` to enorms. (This will be continued in a later PR.) --- Commits can be reviewed independently. - [x] depends on: #27419 (first commits) - [x] depends on: #27456 (last commits) [](https://gitpod.io/from-referrer/) | carleson WIP | 10/0 | Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean | 1 | 3 | ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 24862 | grunweg | feat(LocallyIntegrable): generalise more to enorms | --- Note: github's diff is very confused; it includes changes which very clearly are already on the master branch. I'll see which of the remaining changes after the dependencies have landed is already polished enough. - [x] depends on: #24352 - [x] depends on: #27457 (this half is settled already) - [ ] open question: filter lemmas; IsBoundedUnder is not the right condition as-is; need to think (or just not generalise) [](https://gitpod.io/from-referrer/) | merge-conflict WIP carleson t-measure-probability | 171/88 | Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean,Mathlib/MeasureTheory/Function/LocallyIntegrable.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean | 3 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 27226 | xcloudyunx | feat(Combinatorics/SimpleGraph): Add Subgraph.inclusion_edge_apply_coe and inclusion_edgeSet_apply_coe | This PR continues the work from #25248. Original PR: https://github.com/leanprover-community/mathlib4/pull/25248 | awaiting-author t-combinatorics new-contributor | 14/0 | Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 1 | 3 | ['b-mehta', 'github-actions', 'xcloudyunx'] | b-mehta | 6 months ago | 204 days ago | 25 days |
| 25133 | erdOne | feat(Tactic/NormNum): support positive characteristic | Co-authored-by: Heather Macbeth --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP large-import t-meta | 250/39 | Mathlib/Tactic/NormNum/CharP.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/NormNum/Eq.lean,Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/Test.lean | 5 | 5 | ['erdOne', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 27003 | eric-wieser | chore: use `Simp.ResultQ` more often | Also uses `~q` in place of manual `isDefEq` matching. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 18/22 | Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/NormNum/Result.lean,Mathlib/Tactic/ReduceModChar.lean | 3 | 7 | ['JovanGerb', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | JovanGerb | 6 months ago | 202 days ago | 32 days |
| 22925 | ggranberry | feat(Mathlib/PlaceHolder/ToeplitzHausdorff): Toeplitz-Hausdorff | --- [](https://gitpod.io/from-referrer/) | WIP new-contributor will-close-soon awaiting-author help-wanted t-analysis | 411/0 | Mathlib/PlaceHolder/ToeplitzHausdorff.lean,Mathlib/PlaceHolder/ToeplitzHausdorff_v2.lean | 2 | 11 | ['faenuccio', 'ggranberry', 'github-actions'] | faenuccio | 6 months ago | unknown | unknown |
| 25483 | VTrelat | chore(Data/Set/Prod, SetTheory/ZFC/Basic): add theorem prod_subset_of_prod and extend ZFC model | Required by @eric-wieser in #24281 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 103/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean | 2 | 10 | ['Ruben-VandeVelde', 'VTrelat', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 16150 | urkud | feat(Dynamics): Hopf decomposition | Prove Hopf decomposition. - [ ] rewrite to work with the saturations right away, not with a wandering set. - [ ] generalize to an action of a countable group, use fundamental domains. --- - [ ] depends on: #16146 - [ ] depends on: #16126 [](https://gitpod.io/from-referrer/) | merge-conflict t-dynamics t-measure-probability | 212/0 | Mathlib.lean,Mathlib/Dynamics/Ergodic/Dissipative.lean,Mathlib/MeasureTheory/MeasurableSpace/Basic.lean | 3 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 6 months ago | unknown | unknown |
| 25401 | digama0 | feat(Util): SuppressSorry option | See also leanprover/lean4#8611 and [#lean4 > Silent sorry @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Silent.20sorry/near/503537964). This is a stop-gap solution while leanprover/lean4#8611 is underway, but it works about as well as any other built in option. Hooking declaration elaborators turns out to be a very powerful technique. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 342/0 | Mathlib.lean,Mathlib/Util/CommandElabHook.lean,Mathlib/Util/SuppressSorry.lean,MathlibTest/suppressSorry.lean | 4 | 15 | ['digama0', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | alexjbest | 6 months ago | unknown | unknown |
| 27759 | plp127 | chore(FreeAbelianGroup): deprecate multiplication | Deprecate multiplication on `FreeAbelianGroup` in favor of using `MonoidAlgebra`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra large-import | 176/86 | Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/MonoidAlgebra/MapDomain.lean,Mathlib/GroupTheory/FreeAbelianGroup.lean,Mathlib/RingTheory/FreeCommRing.lean,Mathlib/RingTheory/FreeRing.lean | 5 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 7873 | astrainfinita | perf: reorder `extends` and change instance priority in algebra hierarchy | There are no strict rules, but in general `Cancel` is dropped first, then `Comm`, then `Neg / Inv`, then `Assoc`. Not sure if there's a better way. --- - [ ] depends on: #14712 - [x] depends on: #16638 - [ ] depends on: #18464 - [ ] depends on: #18468 - [ ] depends on: #18470 - [ ] depends on: #18472 - [ ] depends on: #18474 [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra blocked-by-other-PR | 494/204 | Archive/Imo/Imo1998Q2.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Associated.lean,Mathlib/Algebra/BigOperators/Ring/List.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean,Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/EuclideanDomain/Field.lean,Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/Defs.lean,Mathlib/Algebra/Field/IsField.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/GroupWithZero/Basic.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/GroupWithZero/Prod.lean,Mathlib/Algebra/GroupWithZero/Semiconj.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/Algebra/Order/AddGroupWithTop.lean,Mathlib/Algebra/Order/Field/Canonical/Defs.lean,Mathlib/Algebra/Order/Field/Defs.lean,Mathlib/Algebra/Order/Group/Abs.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/Algebra/Ring/BooleanRing.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/Algebra/Ring/Ext.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/Rat.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/InnerProductSpace/Orientation.lean,Mathlib/Analysis/InnerProductSpace/Symmetric.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/NormedSpace/Star/Multiplier.lean,Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean,Mathlib/CategoryTheory/Preadditive/SingleObj.lean,Mathlib/CategoryTheory/Triangulated/Functor.lean,Mathlib/Data/Finset/NoncommProd.lean,Mathlib/Data/Int/Cast/Defs.lean,Mathlib/Data/Nat/Cast/Defs.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/Data/Num/Lemmas.lean,Mathlib/Data/Rat/Denumerable.lean,Mathlib/Data/Real/ENatENNReal.lean,Mathlib/Dynamics/Ergodic/AddCircle.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/GroupTheory/Congruence/Basic.lean,Mathlib/GroupTheory/MonoidLocalization.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/Torsion.lean,Mathlib/Init/ZeroOne.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/LinearAlgebra/Orientation.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean,Mathlib/MeasureTheory/Decomposition/Jordan.lean,Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean,Mathlib/NumberTheory/ArithmeticFunction.lean,Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean,Mathlib/NumberTheory/RamificationInertia.lean,Mathlib/NumberTheory/WellApproximable.lean,Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean,Mathlib/Order/Filter/Germ.lean,Mathlib/Order/Interval/Finset/Box.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/Coalgebra/Hom.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/Filtration.lean,Mathlib/RingTheory/Henselian.lean,Mathlib/RingTheory/Ideal/IsPrincipal.lean,Mathlib/RingTheory/Ideal/LocalRing.lean,Mathlib/RingTheory/Ideal/Norm.lean,Mathlib/RingTheory/Localization/Integral.lean,Mathlib/RingTheory/MvPolynomial/Symmetric.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean,Mathlib/RingTheory/UniqueFactorizationDomain.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/Tactic/Positivity/Core.lean | 104 | 84 | ['MichaelStollBayreuth', 'astrainfinita', 'github-actions', 'kim-em', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mattrobball'] | nobody | 6 months ago | unknown | unknown |
| 21776 | alreadydone | Invertible modules | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 571/26 | Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Module/Submodule/Equiv.lean,Mathlib/Data/Set/Semiring.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/RingTheory/PicardGroup.lean | 5 | 3 | ['alreadydone', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 20722 | ctchou | feat(Counterexamples): the Vitali set is non-measurable | --- [](https://gitpod.io/from-referrer/) | please-adopt t-measure-probability new-contributor merge-conflict awaiting-author | 258/3 | Counterexamples.lean,Counterexamples/VitaliSetNotMeasurable.lean,Mathlib/MeasureTheory/Measure/NullMeasurable.lean,docs/1000.yaml | 4 | 76 | ['ctchou', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'vihdzp'] | vihdzp | 6 months ago | unknown | unknown |
| 27446 | grunweg | chore: more enorm lemmas | Nothing to see yet: this is a big mess! Start unrolling at `eLpNorm_le_eLpNorm_top_mul_eLpNorm_enorm`; that proof could be a good next target. Need a version of `eLpNorm'_const_smul' which applies to NNReal (or ENNReal, I guess): need to generalise a bunch of lemmas for that. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP carleson | 107/9 | Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean | 3 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 14583 | lecopivo | fix: make concrete cycle notation local | fix: make c[...] notation for concrete cycles local --- The notation for concrete cycles prevents you using `c[i]` notation for `c : Array _` This currently does not work ``` import Mathlib variable (c : Array Nat) (i : Fin c.size) #check c[i] -- breaks because of notation for concrete cycles ``` This PR just marks it as local to prevent this issue. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 1/1 | Mathlib/GroupTheory/Perm/Cycle/Concrete.lean | 1 | 3 | ['eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 5897 | eric-wieser | feat: add a `MonadError` instance for `ContT` | We already have a `MonadExcept` instance; this promotes it to `MonadError`. Note the issue with the existing `MonadExcept` instance still applies. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 16/0 | Mathlib/Control/Monad/Cont.lean | 1 | 25 | ['Vierkantor', 'YaelDillies', 'eric-wieser', 'github-actions', 'kmill'] | nobody | 6 months ago | unknown | unknown |
| 28276 | eric-wieser | refactor: tidy `lift_unique` lemmas | --- - [ ] depends on: #28275 [](https://gitpod.io/from-referrer/) | t-algebra | 37/20 | Mathlib/Algebra/FreeAlgebra.lean,Mathlib/Algebra/Lie/UniversalEnveloping.lean,Mathlib/LinearAlgebra/DFinsupp.lean,Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 28502 | gilesgshaw | feat(Logic/Basic): avoid unnecessary uses of choice | Certain proofs are modified to remove a dependence on the axoim of choice --- - [ ] depends on: #28623 | blocked-by-other-PR new-contributor merge-conflict awaiting-author t-logic | 83/74 | Mathlib/Logic/Basic.lean | 1 | 7 | ['Ruben-VandeVelde', 'eric-wieser', 'gilesgshaw', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 199 days ago | 9 hours |
| 28622 | alreadydone | chore(Mathlib): replace `=>` by `↦` | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 51792/51792 | Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Bilinear.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Hom/Rat.lean,Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Opposite.lean,Mathlib/Algebra/Algebra/Prod.lean,Mathlib/Algebra/Algebra/Rat.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/Algebra/Spectrum/Pi.lean,Mathlib/Algebra/Algebra/Spectrum/Quasispectrum.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean,Mathlib/Algebra/Algebra/Subalgebra/Directed.lean,Mathlib/Algebra/Algebra/Subalgebra/IsSimpleOrder.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Algebra/Subalgebra/Matrix.lean,Mathlib/Algebra/Algebra/Subalgebra/Operations.lean,Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean,Mathlib/Algebra/Algebra/Subalgebra/Prod.lean,Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Algebra/TransferInstance.lean,Mathlib/Algebra/Algebra/Unitization.lean,Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Algebra/AlgebraicCard.lean,Mathlib/Algebra/BigOperators/Associated.lean,Mathlib/Algebra/BigOperators/Expect.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/BigOperators/Finsupp/Fin.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean,Mathlib/Algebra/BigOperators/Group/Finset/Sigma.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean,Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/BigOperators/Intervals.lean,Mathlib/Algebra/BigOperators/Option.lean,Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Algebra/BigOperators/Ring/Multiset.lean,Mathlib/Algebra/Category/AlgCat/Basic.lean,Mathlib/Algebra/Category/AlgCat/Limits.lean,Mathlib/Algebra/Category/AlgCat/Monoidal.lean,Mathlib/Algebra/Category/BialgCat/Basic.lean,Mathlib/Algebra/Category/BoolRing.lean,Mathlib/Algebra/Category/CoalgCat/Basic.lean,Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean,Mathlib/Algebra/Category/FGModuleCat/Limits.lean,Mathlib/Algebra/Category/Grp/AB.lean,Mathlib/Algebra/Category/Grp/Adjunctions.lean,Mathlib/Algebra/Category/Grp/Basic.lean,Mathlib/Algebra/Category/Grp/Biproducts.lean,Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean,Mathlib/Algebra/Category/Grp/Colimits.lean,Mathlib/Algebra/Category/Grp/EpiMono.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/Grp/Images.lean,Mathlib/Algebra/Category/Grp/Kernels.lean,Mathlib/Algebra/Category/Grp/LargeColimits.lean,Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean,Mathlib/Algebra/Category/Grp/Limits.lean,Mathlib/Algebra/Category/Grp/Preadditive.lean,Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean,Mathlib/Algebra/Category/Grp/Zero.lean,Mathlib/Algebra/Category/GrpWithZero.lean,Mathlib/Algebra/Category/HopfAlgCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Biproducts.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Colimits.lean,Mathlib/Algebra/Category/ModuleCat/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/Images.lean,Mathlib/Algebra/Category/ModuleCat/Injective.lean,Mathlib/Algebra/Category/ModuleCat/Kernels.lean,Mathlib/Algebra/Category/ModuleCat/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Abelian.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean,Mathlib/Algebra/Category/ModuleCat/Products.lean | 3838 | 4 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 196 days ago | 15 hours |
| 24793 | tristan-f-r | feat: trace of unitarily similar matrices | adds a theorem relating trace to unitarily similar matrices used in the easy direction of specht's theorem --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 7/0 | Mathlib/LinearAlgebra/UnitaryGroup.lean | 1 | 4 | ['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'tristan-f-r'] | nobody | 6 months ago | unknown | unknown |
| 26645 | erdOne | feat(RingTheory/PowerSeries): Construction of `Q` such that `P(Q(X)) = X` | Co-authored-by: Junnosuke Koizumi Co-authored-by: Hyeon, Seung-Hyeon Co-authored-by: Yuichiro Taguchi This contribution was created as part of the ZMC conference 2025 "Anabelian Geometry and its Computer Formalization". --- [](https://gitpod.io/from-referrer/) | awaiting-author t-ring-theory | 133/0 | Mathlib/RingTheory/PowerSeries/Substitution.lean | 1 | 9 | ['chrisflav', 'erdOne', 'github-actions', 'kckennylau'] | kbuzzard | 6 months ago | 195 days ago | 48 days |
| 28675 | vihdzp | chore: deprecate `bsup`, `lsub`, `blsub` | This PR formally deprecates `Ordinal.bsup`, `Ordinal.lsub`, and `Ordinal.blsub`. These arose as ways to construct suprema of ordinals, before we realized it was a much better idea to simply work with the `ConditionallyCompleteLinearOrderBot` structure of `Ordinal`. As a consequence, it gets rid of some longstanding non-deprecated material depending on deprecated material. --- - [x] depends on: #28677 [](https://gitpod.io/from-referrer/) | merge-conflict t-set-theory | 315/130 | Mathlib/Order/IsNormal.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Game/Birthday.lean,Mathlib/SetTheory/Ordinal/Family.lean,Mathlib/SetTheory/Ordinal/NaturalOps.lean,Mathlib/SetTheory/Ordinal/Topology.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 28626 | alreadydone | chore(Archive, Counterexamples): replace => by ↦ | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 288/288 | Archive/Arithcc.lean,Archive/Examples/IfNormalization/Result.lean,Archive/Examples/IfNormalization/WithoutAesop.lean,Archive/Examples/PropEncodable.lean,Archive/Imo/Imo1959Q1.lean,Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1962Q4.lean,Archive/Imo/Imo1972Q5.lean,Archive/Imo/Imo1977Q6.lean,Archive/Imo/Imo1981Q3.lean,Archive/Imo/Imo1987Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q2.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2006Q5.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2013Q1.lean,Archive/Imo/Imo2019Q1.lean,Archive/Imo/Imo2024Q5.lean,Archive/MiuLanguage/Basic.lean,Archive/MiuLanguage/DecisionSuf.lean,Archive/OxfordInvariants/Summer2021/Week3P1.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Archive/Wiedijk100Theorems/BirthdayProblem.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Archive/Wiedijk100Theorems/Partition.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Archive/ZagierTwoSquares.lean,Counterexamples/AharoniKorman.lean,Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean,Counterexamples/CharPZeroNeCharZero.lean,Counterexamples/CliffordAlgebraNotInjective.lean,Counterexamples/DirectSumIsInternal.lean,Counterexamples/GameMultiplication.lean,Counterexamples/Girard.lean,Counterexamples/HomogeneousPrimeNotPrime.lean,Counterexamples/MapFloor.lean,Counterexamples/MonicNonRegular.lean,Counterexamples/Phillips.lean,Counterexamples/Pseudoelement.lean,Counterexamples/QuadraticForm.lean,Counterexamples/SorgenfreyLine.lean,Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean | 54 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 194 days ago | 2 days |
| 26078 | kckennylau | feat(AlgebraicGeometry): add x, y, px, py for points on elliptic curves | --- Split from #25218. [](https://gitpod.io/from-referrer/) | awaiting-author t-algebraic-geometry | 44/0 | Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean | 1 | 12 | ['MichaelStollBayreuth', 'Multramate', 'acmepjz', 'dagurtomas', 'github-actions', 'kckennylau'] | dagurtomas | 6 months ago | 194 days ago | 64 days |
| 19582 | yu-yama | feat(GroupExtension/Abelian): define `OfMulDistribMulAction.equivH2` | Mainly defines: - `structure GroupExtension.OfMulDistribMulAction N G [MulDistribMulAction G N]`: group extensions of `G` by `N` where the multiplicative action of `G` on `N` is the conjugation - `structure GroupExtension.OfMulDistribMulActionWithSection N G [MulDistribMulAction G N]`: group extensions with specific choices of sections - `def GroupExtension.OfMulDistribMulAction.equivH2`: a bijection between the equivalence classes of group extensions and $H^2 (G, N)$ --- - [x] depends on: #20802 (split PR: contains changes to the `Defs` file) - [x] depends on: #20998 (split PR: mainly adds the `Basic` file) - [ ] depends on: #26670 (split PR: adds the first part of the `Abelian` file) Here is a relevant TODO in Mathlib: https://github.com/leanprover-community/mathlib4/blob/4e9fa40d7c480937e09cd6e47a591bd6f3b8be42/Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean#L46-L48 I would appreciate your comments. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR new-contributor | 750/14 | Mathlib.lean,Mathlib/GroupTheory/GroupExtension/Abelian.lean,Mathlib/GroupTheory/GroupExtension/Defs.lean,docs/references.bib | 4 | 5 | ['YaelDillies', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 7300 | ah1112 | feat: synthetic geometry | This is adding synthetic geometry using Avigad's axioms and formalizing Euclid Book I, through the Pythagorean theorem. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author help-wanted t-euclidean-geometry | 2661/0 | Mathlib.lean,Mathlib/Geometry/Synthetic/Avigad/Axioms.lean,Mathlib/Geometry/Synthetic/Avigad/EuclidBookI.lean,Mathlib/Geometry/Synthetic/Avigad/Tactics.lean | 4 | 74 | ['ah1112', 'alreadydone', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'plp127', 'tb65536', 'urkud'] | nobody | 6 months ago | unknown | unknown |
| 13795 | astrainfinita | perf(Algebra/{Group, GroupWithZero, Ring}/InjSurj): reduce everything | --- - [ ] depends on: #15192 - [ ] depends on: #15476 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 340/194 | Mathlib/Algebra/Equiv/TransferInstance.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Ring/InjSurj.lean,scripts/noshake.json | 9 | 37 | ['MichaelStollBayreuth', 'astrainfinita', 'eric-wieser', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mattrobball'] | nobody | 6 months ago | unknown | unknown |
| 28095 | Equilibris | Univ generic corec | Draft PR: Adding variable universe corecursor for PFunctor --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor | 321/70 | Mathlib/Data/PFunctor/Multivariate/Basic.lean,Mathlib/Data/PFunctor/Multivariate/M.lean,Mathlib/Data/TypeVec.lean | 3 | 7 | ['Equilibris', 'alexkeizer', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 28150 | Equilibris | chore: clean up proofs typevec proofs | While adding variable universe corecs I found a lot of theorems in typevec that could do with a bit of a clean-up --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 24/26 | Mathlib/Data/TypeVec.lean | 1 | 7 | ['Equilibris', 'alexkeizer', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 193 days ago | 13 days |
| 25488 | VTrelat | feat(SetTheory/ZFC/Rationals): define rationals in ZFC | Extend the model of ZFC with rationals: we define a proper type `ZFRat` representing integers based on pairs of `ZFInt` (enforcing the res to be nonzero) and following the usual construction of rationals. --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #25483 - [ ] depends on: #25485 - [ ] depends on: #25486 | merge-conflict t-set-theory blocked-by-other-PR new-contributor | 2070/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean,Mathlib/SetTheory/ZFC/Integers.lean,Mathlib/SetTheory/ZFC/Rationals.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 27403 | MoritzBeroRoos | fix: replace probably erroneous usage of ⬝ (with old \cdot) by · (with \centerdot) | Discussion at [zulip](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.5Ccdot.20!.3D.20.5Ccenterdot). Currently the abbreviations \cdot and \centerdot resolve to different, with the naked eye nearly undistinguishable symbols (despite the c in cdot surely standing for center..). This pr replaces instances of ⬝ where · was probably meant. All of the replacement is in comments, except for the file bench_summary.lean which is used for priting the github benchmark results. Since this file is about scientific notation of numbers, sure · was meant to be used, not a rectangle. [Related](https://github.com/leanprover-community/mathlib4/pull/27399) --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor | 195/195 | Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/DirectSum/Idempotents.lean,Mathlib/Algebra/Lie/Derivation/Basic.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/InnerProductSpace/Dual.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/SpecialFunctions/Complex/CircleAddChar.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Data/Matrix/Block.lean,Mathlib/Data/Matrix/ConjTranspose.lean,Mathlib/Data/Matrix/Hadamard.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Data/Matrix/Reflection.lean,Mathlib/Data/Matrix/RowCol.lean,Mathlib/Data/Matrix/Vec.lean,Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/LinearAlgebra/CrossProduct.lean,Mathlib/LinearAlgebra/Matrix/BilinearForm.lean,Mathlib/LinearAlgebra/Matrix/DotProduct.lean,Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean,Mathlib/LinearAlgebra/Matrix/Orthogonal.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/LinearAlgebra/Matrix/SchurComplement.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/LinearAlgebra/Matrix/Trace.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean,Mathlib/LinearAlgebra/Projectivization/Constructions.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean,Mathlib/NumberTheory/SiegelsLemma.lean,Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean,Mathlib/SetTheory/Ordinal/Veblen.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,Mathlib/Topology/Instances/Matrix.lean,scripts/bench_summary.lean | 49 | 5 | ['eric-wieser', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | 215 days ago | 7 days |
| 28042 | kckennylau | feat(Topology/ValuativeRel): a topological basis indexed by pairs of elements | --- The pullback PR of #27314 and #27163. [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 140/23 | Mathlib/RingTheory/Valuation/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean | 2 | 3 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 202 days ago | 7 days |
| 23966 | astrainfinita | refactor: unbundle algebra from `{Seminormed, Normed}(Add)(Comm)Group` | --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #23621 - [ ] depends on: #23961 | t-algebra blocked-by-other-PR merge-conflict slow-typeclass-synthesis t-analysis | 3233/2752 | Archive/Imo/Imo1998Q2.lean,Counterexamples/LinearOrderWithPosMulPosEqZero.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/Order/Field/Canonical.lean,Mathlib/Algebra/Order/Field/Rat.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Nonneg/Field.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/CPolynomial.lean,Mathlib/Analysis/Analytic/CPolynomialDef.lean,Mathlib/Analysis/Analytic/ChangeOrigin.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/Analytic/Linear.lean,Mathlib/Analysis/Analytic/Order.lean,Mathlib/Analysis/Analytic/Polynomial.lean,Mathlib/Analysis/Analytic/RadiusLiminf.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Analytic/Within.lean,Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean,Mathlib/Analysis/Asymptotics/Defs.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/Asymptotics/Theta.lean,Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/BoxIntegral/Integrability.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Measure.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/ContinuousLinearMap.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean,Mathlib/Analysis/CStarAlgebra/Module/Defs.lean,Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean,Mathlib/Analysis/Calculus/AddTorsor/Coord.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean,Mathlib/Analysis/Calculus/BumpFunction/Normed.lean,Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean,Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/ContDiff/RCLike.lean,Mathlib/Analysis/Calculus/ContDiff/WithLp.lean,Mathlib/Analysis/Calculus/DSlope.lean,Mathlib/Analysis/Calculus/Deriv/Abs.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/AffineMap.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Comp.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/Deriv/Inverse.lean,Mathlib/Analysis/Calculus/Deriv/Linear.lean,Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/Calculus/Deriv/Prod.lean,Mathlib/Analysis/Calculus/Deriv/Shift.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/Analysis/Calculus/Deriv/Star.lean,Mathlib/Analysis/Calculus/Deriv/Support.lean,Mathlib/Analysis/Calculus/Deriv/ZPow.lean,Mathlib/Analysis/Calculus/DiffContOnCl.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean,Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/FDeriv/Equiv.lean,Mathlib/Analysis/Calculus/FDeriv/Extend.lean,Mathlib/Analysis/Calculus/FDeriv/Linear.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean,Mathlib/Analysis/Calculus/FDeriv/Norm.lean,Mathlib/Analysis/Calculus/FDeriv/Pi.lean,Mathlib/Analysis/Calculus/FDeriv/Prod.lean,Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean,Mathlib/Analysis/Calculus/FDeriv/Star.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/FDeriv/WithLp.lean,Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean | 579 | 7 | ['astrainfinita', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 27399 | MoritzBeroRoos | chore: replace every usage of ⬝ᵥ (with old \cdot) by ·ᵥ (with \centerdot) | Discussion at [zulip](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.5Ccdot.20!.3D.20.5Ccenterdot). Currently the abbreviations `\cdot` and `\centerdot` resolve to different, with the naked eye nearly undistinguishable symbols (despite the c in cdot surely standing for `center`..): - `\cdot` gives ⬝ [U+2B1D](https://www.compart.com/en/unicode/U+2B1D) "Black Very Small Square" - `\centerdot` gives · [U+00B7](https://www.compart.com/en/unicode/U+00B7) "Middle Dot" Mathlib mostly uses the `\centerdot` variant, except for the dotProduct notation and some probably unsuspecting people wanting \centerdot but getting \cdot in their comments and 6 uses of a notation using the raw `\cdot` without any subscript at `Mathlib\Topology\Homotopy\Product.lean`. This PR replaces the dot product `⬝ᵥ` with its `\centerdot` counterpart `·ᵥ`. The related PR [here](https://github.com/leanprover/vscode-lean4/pull/639) can then overwrite the `\cdot` abbreviation, to produce the same symbol as the `centerdot` abbreviation does. --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor | 133/133 | Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Data/Matrix/Block.lean,Mathlib/Data/Matrix/ConjTranspose.lean,Mathlib/Data/Matrix/Hadamard.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Data/Matrix/Reflection.lean,Mathlib/Data/Matrix/RowCol.lean,Mathlib/Data/Matrix/Vec.lean,Mathlib/LinearAlgebra/CrossProduct.lean,Mathlib/LinearAlgebra/Matrix/BilinearForm.lean,Mathlib/LinearAlgebra/Matrix/DotProduct.lean,Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean,Mathlib/LinearAlgebra/Matrix/Orthogonal.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/LinearAlgebra/Matrix/SchurComplement.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/LinearAlgebra/Matrix/Trace.lean,Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean,Mathlib/LinearAlgebra/Projectivization/Constructions.lean,Mathlib/Topology/Instances/Matrix.lean | 25 | 6 | ['MoritzBeroRoos', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | 215 days ago | 7 days |
| 27479 | iu-isgood | feat: Abel's Binomial Theorem | We have formalized Abel's Binomial Theorem as part of an REU project. There are a few remaining sorrys, but we will finish them soon. I will edit this PR message later according to community rules. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data new-contributor | 326/0 | Mathlib/Data/Nat/Choose/AbelBinomial.lean | 1 | 28 | ['ElifUskuplu', 'FrankieNC', 'github-actions', 'iu-isgood'] | nobody | 6 months ago | unknown | unknown |
| 28787 | alreadydone | feat(Counterexamples): a domain whose ring of differences is not a domain | Example produced by Gemini 2.5 Pro: https://gemini.google.com/share/9558539e1309 --- - [ ] depends on: #28468 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR large-import | 1200/204 | Counterexamples.lean,Counterexamples/GrothendieckAddGroupIsDomain.lean,Mathlib.lean,Mathlib/Algebra/Group/Subsemigroup/Defs.lean,Mathlib/Algebra/Module/End.lean,Mathlib/Algebra/Module/LocalizedModule/IsLocalization.lean,Mathlib/Algebra/Order/Nonneg/Basic.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Ring/Invertible.lean,Mathlib/GroupTheory/MonoidLocalization/Archimedean.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Lemmas.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/Localization/Additive.lean,Mathlib/RingTheory/Localization/Away/Basic.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean,Mathlib/RingTheory/Localization/Ideal.lean,Mathlib/RingTheory/Localization/StrongRankCondition.lean,Mathlib/RingTheory/Smooth/StandardSmooth.lean,Mathlib/RingTheory/Trace/Quotient.lean | 23 | 6 | ['alreadydone', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] | nobody | 6 months ago | 191 days ago | 1 day |
| 24719 | madvorak | feat(LinearAlgebra/Matrix/NonsingularInverse): inverting `Matrix` inverts its `LinearEquiv` | --- Discussion: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2324719.20cannot.20find.20home/with/517142655 | awaiting-author t-algebra | 10/0 | Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean | 1 | 16 | ['eric-wieser', 'github-actions', 'madvorak', 'ocfnash'] | nobody | 6 months ago | unknown | unknown |
| 27437 | kckennylau | feat(RingTheory/Valuation): some lemmas about comparing with 1 and 0 and with each other | *From the 2025 Local Class Field Theory Workshop.* --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-ring-theory | 109/22 | Mathlib/NumberTheory/Padics/ValuativeRel.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/Extension.lean,Mathlib/RingTheory/Valuation/ValuativeRel.lean | 4 | 20 | ['erdOne', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'matthewjasper', 'pechersky'] | nobody | 6 months ago | 208 days ago | 14 days |
| 28148 | kckennylau | feat(Matrix): Simproc and Rw-proc for Matrix Transpose | Co-authored by Aaron Liu. ```lean example : !![1, 2, 3; 4, 5, 6]ᵀ = !![1, 4; 2, 5; 3, 6] := by rw [transpose_of% 2 3] example : !![1, 2, 3; 4, 5, 6]ᵀ = !![1, 4; 2, 5; 3, 6] := by rw [transpose_of] example : !![1, 2, 3; 4, 5, 6]ᵀ = !![1, 4; 2, 5; 3, 6] := by simp only [matrix_transpose] ``` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 267/8 | Mathlib.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/LinearAlgebra/UnitaryGroup.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/Matrix.lean,MathlibTest/Simproc/Matrix.lean,MathlibTest/matrix.lean,scripts/noshake.json | 8 | 32 | ['eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'plp127'] | eric-wieser | 6 months ago | 188 days ago | 12 days |
| 28686 | mitchell-horner | feat(Combinatorics/SimpleGraph): prove the Erdős-Stone theorem | Proves the Erdős-Stone theorem: If `G` has at least `(1 - 1 / r + o(1)) * card V ^ 2 / 2` many edges, then `G` contains a copy of a `completeEquipartiteGraph (r + 1) t`. --- - [ ] depends on: #28685 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR t-combinatorics | 757/14 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/Nat/Cast/Order/Field.lean | 10 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 28687 | mitchell-horner | feat(Combinatorics/SimpleGraph): prove the Erdős-Stone-Simonovits theorem | Proves the Erdős-Stone-Simonovits theorem: If the chromatic number of `H` equals `r + 1 > 0`, then the `extremalNumber` of `H` is greater than `(1 - 1 / r - o(1)) * card V ^ 2 / 2` and at most `(1 - 1 / r + o(1)) * card V ^ 2 / 2`. --- - [ ] depends on: #28686 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR t-combinatorics | 879/14 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/Nat/Cast/Order/Field.lean | 10 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 28689 | mitchell-horner | feat(Combinatorics/SimpleGraph): prove well-known corollaries of the Erdős-Stone-Simonovits theorem | Proves well-known corollaries of the Erdős-Stone-Simonovits theorem: E.g., if the chromatic number of `H` equals `r + 1 > 1`, then `extremalNumber n H` is asymptotically equivalent to `(1 - 1 / r) * n.choose 2` as `n → ∞` --- - [ ] depends on: #28687 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR t-combinatorics | 958/14 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/Nat/Cast/Order/Field.lean | 10 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 26952 | robin-carlier | feat(CategoryTheory/DayConvolution): monoid objects internal to day convolutions | In this file, given `F : C ⊛⥤ V`, we provide a bijective correspondence between lax monoidal structures on `F.functor` and `Mon_Class F` structures. We also prove that through this correspondance, monoidal natural transformations correspond to morphisms of internal monoid objects. --- - [ ] depends on: #26890 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory | 1574/19 | Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Mon_.lean | 5 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 27133 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): `C ⊛⥤ V` is monoidal closed when `V` is | When `V` is a monoidal closed category admitting enough limits, we show that the type alias `C ⊛⥤ V` for functors `C ⥤ V` with Day convolution monoidal structure is monoidal closed using the API for `LawfulDayConvolutionClosedMonoidalCategoryStruct` developped in #27119. We expose the required data to exhibit (realization as a functor of) the internal hom as a suitable, and we port the lemmas that characterize its functoriality in that regard, as well as the evaluation and coevaluation morphisms. --- - [ ] depends on: #27119 - [ ] depends on: #26890 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory | 1706/20 | Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean | 5 | 6 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 232 days ago | 6 minutes |
| 27151 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): `C ⊛⥤ V` is braided/symmetric when `C` and `V` are braided/symmetric | We use the machinery from #27150 to show that Day functors (the type alias for functors endowed with the Day convolution monoidal structure) are braided/symmetric when the base categories are. --- - [ ] depends on: #27150 - [ ] depends on: #26890 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory | 1591/20 | Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Braided.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean | 5 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 231 days ago | 7 minutes |
| 27175 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): `LawfulDayConvolutionMonoidalCategoryStruct.ι C V D` is monoidal when the target is `C ⊛⥤ V` | We prove a "soundness" result for our notion of `LawfulDayConvolutionMonoidalCategoryStruct`, i.e that when be interpret its field `ι` as valued in Day functors (the type alias for functors endowed with the Day convolution monoidal structure), the data from `LawfulDayConvolutionMonoidalCategoryStruct` turn `ι` in a monoidal functor, proving that the categories endowed with such a structure are precisely those that can be identified to monoidal (not necessarily full) subcategories of Day functors. Implicitly, the structure isomorphisms for this monoidal structure bundle isomorphisms asserting unicity up to isomorphisms of day convolutions. --- - [ ] depends on: #26890 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory | 1585/24 | Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean | 4 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 26097 | adomani | dev: the relative linter | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author t-linter | 316/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/Local.lean,Mathlib/Util/ParseGit.lean | 4 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 28279 | Equilibris | feat: univ generic W | A simple change making `W.ind`'s motive universe generic. --- A theorem `w_ind_eq` will now be needed, but this will depend on getting `dcongr_heq` merged, and hence I will do this in a separate PR. [](https://gitpod.io/from-referrer/) | t-data new-contributor | 16/21 | Mathlib/Data/PFunctor/Multivariate/W.lean | 1 | 8 | ['Equilibris', 'alexkeizer', 'github-actions'] | nobody | 6 months ago | unknown | unknown |
| 25741 | robin-carlier | feat(AlgebraicTopology/SimplexCategory/SimplicialObject): definitions of simplicial objects by generators and relation | We leverage the equivalence between `SimplexCategory` and `SimplexCategoryGenRel` to give new constructors for (co)simplicial objects, as well as constructors for natural transformations (resp. isomorphism) between those. Final PR in the series of PR formalising the equivalence between `SimplexCategory` and `SimplexCategoryGenRel`. --- - [ ] depends on: #25740 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #21748.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/21748* | t-algebraic-topology blocked-by-other-PR t-category-theory large-import merge-conflict | 1363/9 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Equivalence.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean,Mathlib/AlgebraicTopology/SimplicialObject/GeneratorsRelations.lean | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 26931 | javra | feat(CategoryTheory/Enriched): `V`-enriched isomorphisms | Defines isomorphisms in `V`-enriched categories and relate them to ordinary isomorphisms in the case of ordinary enriched categories. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory infinity-cosmos | 211/14 | Mathlib.lean,Mathlib/CategoryTheory/Enriched/Basic.lean,Mathlib/CategoryTheory/Enriched/Iso.lean,Mathlib/CategoryTheory/Enriched/Opposite.lean,Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean,Mathlib/CategoryTheory/Enriched/Ordinary/Iso.lean | 6 | 21 | ['emilyriehl', 'github-actions', 'javra', 'joelriou', 'mathlib4-merge-conflict-bot', 'mckoen'] | nobody | 6 months ago | 217 days ago | 15 days |
| 27707 | FLDutchmann | feat(NumberTheory/SelbergSieve): define Selberg's weights and prove basic results. | This PR continues the work from #23635. Original PR: https://github.com/leanprover-community/mathlib4/pull/23635 - [ ] depends on: #27702 | merge-conflict t-number-theory blocked-by-other-PR t-analysis | 407/83 | Mathlib/NumberTheory/Divisors.lean,Mathlib/NumberTheory/SelbergSieve.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | 213 days ago | 1 day |
| 25208 | erdOne | feat(LinearAlgebra): `tensor_induction` macro | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 87/116 | Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Central/TensorProduct.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/RingTheory/Flat/Equalizer.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/Finite.lean,Mathlib/RingTheory/Unramified/Finite.lean | 8 | 8 | ['chrisflav', 'eric-wieser', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 28803 | 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 | 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 | 6 months ago | 190 days ago | 4 hours |
| 26935 | Paul-Lez | feat(Analysis/SpecialFunction/NthRoot): definition and basic API of Real.nthRoot | This PR continues the work from #25364.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25364
Co-authored-by: Eric Wieser |
t-analysis | 311/0 | Mathlib/Analysis/SpecialFunctions/NthRoot.lean | 1 | 10 | ['Paul-Lez', 'eric-wieser', 'github-actions', 'mo271', 'smmercuri', 'yury-harmonic'] | nobody | 6 months ago | unknown | unknown |
| 27995 | kckennylau | feat(RingTheory/Valuation): alternate constructors for Valuation | --- [](https://gitpod.io/from-referrer/) | t-ring-theory awaiting-CI | 82/0 | Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/FieldTheory/RatFunc/Degree.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/RingTheory/Valuation/Basic.lean | 4 | 22 | ['YaelDillies', 'github-actions', 'grunweg', 'kckennylau', 'pechersky'] | nobody | 5 months ago | 192 days ago | 17 days |
| 26159 | upobir | feat(Algebra/QuadraticDiscriminant): Adding inequalities on quadratic from inequalities on discriminant | This PR continues the work from #24517. Original PR: https://github.com/leanprover-community/mathlib4/pull/24517 --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 34/0 | Mathlib/Algebra/QuadraticDiscriminant.lean | 1 | 8 | ['chrisflav', 'github-actions', 'tb65536', 'upobir'] | chrisflav | 5 months ago | 202 days ago | 55 days |
| 28151 | iehality | feat(Computability): r.e. sets are closed under inter/union/projection/composition | Prove that r.e. sets are closed under intersections, unions, projection and composition. --- This PR continues the work from #16705. Original PR: https://github.com/leanprover-community/mathlib4/pull/16705 | merge-conflict t-computability awaiting-author | 120/0 | Mathlib/Computability/Halting.lean | 1 | 13 | ['YaelDillies', 'github-actions', 'iehality', 'mathlib4-merge-conflict-bot'] | YaelDillies | 5 months ago | 196 days ago | 7 days |
| 26908 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): alternative ext principle for unitors | Currently, our infrastructure for left/right unitors for Day convolution of functors `C ⥤ V` do not have satisfactory extensionality principle: the current way to characterize morphisms out of `U ⊛ F` is the default extensionality principle for Day convolution, which characterizes first such functors via functors out of `U ⊠ F`. Left unitors are then obtained using the fact `U ⊠ F` is a left Kan extension of a functor from `PUnit × C` (which is equivalent to `C`) but we did not record on its own this principle. Using the transitivity of left Kan extensions proved in #26899, we directly exhibit `U ⊛ F` as a left Kan extension of `F ⋙ tensorLeft (𝟙_ V)` along `tensorLeft (𝟙_ C)`. The unit of this Kan extension is composed exactly of the morphisms that appear in the [characterization of left unitors](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Monoidal/DayConvolution.html#CategoryTheory.MonoidalCategory.DayConvolutionUnit.leftUnitor_hom_unit_app). We also slightly generalize the instances that express that external products with unitors are left Kan extensions, so that they can be used when taking external products with more complicated functors than currently. This is again useful when chaining extensionality lemmas for morphisms out of terms of the form `(F ⊛ U) ⊛ G`. We prove a similar thing for right unitors With this, it should be possible to have a much more satisfactory way of working with Day convolutions: this allows to "elimiinate" units without ending up with terms in an external product. --- - [ ] depends on: #26899 - [ ] depends on: #26906 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 307/18 | Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean | 2 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 176 days ago | 17 minutes |
| 27150 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): constructors for braided and symmetric structure on day convolutions monoidal categories | Following the pattern in #27119, we give API to construct `BraidedCategory` and `SymmetricCategory` structures on a monoidal category equipped with a `LawfulDayConvolutionMonoidalCategoryStruct`. To achieve this, we introduce an other type class `LawfulDayConvolutionBraidedCategoryStruct` that bundles an associator isomorphism that behaves like the one constructed for functors in #27067. We provide a noncomputable constructor for this typeclass that takes as input fullness of the "realization" functor to a category of functors, and we show that the typeclasses are sufficient to define the desired structures. --- - [x] depends on: #27067 - [x] depends on: #26820 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 826/9 | Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Braided.lean | 2 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 231 days ago | 51 seconds |
| 26462 | PSchwahn | feat(LinearAlgebra/Projection): add results about inverse of `Submodule.prodEquivOfIsCompl` | Add two theorems `Submodule.prodEquivOfIsCompl_symm_apply` and `Submodule.prodEquivOfIsCompl_symm_add`, which are API for `Submodule.prodEquivOfIsCompl`. We believe these theorems are useful; for example, we have used their statements in a [classification formalization project](https://github.com/LieLean/LowDimSolvClassification). Co-authored by: - [Viviana del Barco](https://github.com/vdelbarc) - [Gustavo Infanti](https://github.com/GuQOliveira) - [Exequiel Rivas](https://github.com/erivas) --- I am not sure whether the `prodEquivOfIsCompl_symm_apply` theorem should be tagged with `@[simp]`; this might lead to confluence issues. Opinions are welcome! [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 10/0 | Mathlib/LinearAlgebra/Projection.lean | 1 | 7 | ['PSchwahn', 'github-actions', 'joelriou', 'kckennylau'] | joelriou | 5 months ago | 176 days ago | 73 days |
| 27119 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): constructors for closed monoidal day convolution monoidal structures | Following the pattern introduced in #26798 and #26820 and using results of #26879, we introduce a typeclass `LawfulDayConvolutionClosedMonoidalCategoryStruct` that encodes the data needed on a `LawfulDayConvolutionMonoidalCategoryStruct` to define well-behaved internal homs. We give a constructor assuming existence of relevant ends, and prove that this data defines a `MonoidalClosed` instance on the monoidal category structures one can deduce from `LawfulDayConvolutionMonoidalCategoryStruct`. --- - [x] depends on: #27079 - [x] depends on: #27091 - [x] depends on: #26879 - [x] depends on: #26820 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 900/9 | Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean | 2 | 6 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 28623 | gilesgshaw | feat(Logic/Basic): minor additions and simplification of proofs | Add new theorems and simplify proofs. Specifically, we add the family of related theorems `apply_dite_iff_exists`, `apply_dite_iff_forall`, `apply_ite_iff_and` and `apply_ite_iff_or`. For each other 'family' of theorems in the file that is analogous to the above, we do the following - Simplify proofs where possible, e.g. by appealing to the new theorems - Complete the family, if any of the corresponding four are missing - Rename to ensure consistency with the above pattern --- | merge-conflict t-logic new-contributor | 83/55 | Archive/Examples/IfNormalization/Result.lean,Archive/Examples/IfNormalization/WithoutAesop.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Notation/Indicator.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean,Mathlib/Logic/Basic.lean,Mathlib/MeasureTheory/Measure/WithDensity.lean,Mathlib/SetTheory/Ordinal/Notation.lean | 9 | 12 | ['eric-wieser', 'gilesgshaw', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] | awainverse | 5 months ago | 175 days ago | 10 days |
| 28804 | grunweg | feat: a few more tactic linters | All analysis passes in this list have been suggested [on zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Tactic.20analysis.20framework/with/535766713). --- Untested, so may not work yet. - [ ] depends on: #28802 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-meta | 204/26 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,Mathlib/Tactic/TacticAnalysis/FunProp.lean,Mathlib/Tactic/TacticAnalysis/Misc.lean,MathlibTest/TacticAnalysis2.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 13036 | joelriou | feat(CategoryTheory/Sites): under certain conditions, cover preserving functors preserve 1-hypercovers | Previously, in order to show that a functor between Grothendieck sites was continuous, it was necessary to show that it was "cover preserving" and "compatible preserving". There were two lemmas which could be used in order to show that a functor was "compatible preserving". Since #13012, the better condition of "1-hypercover preserving" functor was introduced and it implies that the functor is continuous. In this PR, under the same assumptions as in the two lemmas mentionned above, we show that cover preserving functors are 1-hypercover preserving functors. This gives slightly better criteria in order to show that a functor is continuous. --- - [x] depends on: #13004 - [x] depends on: #13011 - [x] depends on: #13012 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 94/7 | Mathlib/CategoryTheory/Sites/Continuous.lean,Mathlib/CategoryTheory/Sites/CoverPreserving.lean,Mathlib/CategoryTheory/Sites/Over.lean,Mathlib/CategoryTheory/Sites/Sieves.lean | 4 | 3 | ['github-actions', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 29527 | kim-em | feat: script for checking Github URLs | This adds scripts/check_github_urls.py, which checks for links for closed github issues/prs, and shows the context at the link. Of course, many links are to closed pull requests because the discussion there provides useful context. Not sure how to best filter results. | WIP CI | 475/0 | scripts/README.md,scripts/check_github_urls.py | 2 | 2 | ['github-actions', 'kim-em'] | nobody | 5 months ago | unknown | unknown |
| 27335 | eric-wieser | chore(Data/List): use simp-normal-form for boolean equalities | This replaces `¬(p x = true)` with `p x = false`. It also makes explicit some adjacent `h : p x` spellings for symmetry, but the `= true`s were already implied by the coercion. Zulip: [#lean4 > `h : ¬(b = true)` vs `h : b = false` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.60h.20.3A.20.C2.AC.28b.20.3D.20true.29.60.20vs.20.60h.20.3A.20b.20.3D.20false.60/near/529976237) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 38/32 | Mathlib/Data/List/DropRight.lean,Mathlib/Data/List/SplitOn.lean,Mathlib/Data/List/TakeWhile.lean | 3 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 225 days ago | 4 hours |
| 25778 | thefundamentaltheor3m | feat: Monotonicity of `setIntegral` for nonnegative functions | This PR makes it easier to prove monotonicity of the Bochner integral on sets for nonnegative functions by removing the stronger assumption required by the general monotonicity lemma that both of the functions being compared must be integrable. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-measure-probability new-contributor | 8/0 | Mathlib/MeasureTheory/Integral/Bochner/Set.lean | 1 | 6 | ['RemyDegenne', 'github-actions', 'sgouezel', 'thefundamentaltheor3m'] | nobody | 5 months ago | 264 days ago | 2 hours |
| 29484 | eric-wieser | refactor: switch to [] notation for Stream' | I'll continue fixing this only if people agree this is a good use of this notation. [#mathlib4 > Changing `Stream.Seq` to use `GetElem` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Changing.20.60Stream.2ESeq.60.20to.20use.20.60GetElem.60/near/538548680) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data large-import | 195/173 | Mathlib/Algebra/ContinuedFractions/Basic.lean,Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean,Mathlib/Algebra/ContinuedFractions/Translations.lean,Mathlib/Combinatorics/Hindman.lean,Mathlib/Control/Fix.lean,Mathlib/Control/LawfulFix.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Seq/Defs.lean,Mathlib/Data/Stream/Defs.lean,Mathlib/Data/Stream/Init.lean,Mathlib/Data/WSeq/Basic.lean,Mathlib/Data/WSeq/Productive.lean | 12 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 22517 | j-loreaux | feat: `ℕ+` powers in semigroups | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP large-import | 275/28 | Mathlib.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/PNatPowAssoc.lean,Mathlib/Algebra/Group/PPow.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Ring/Ext.lean,Mathlib/Algebra/Ring/ULift.lean,Mathlib/Data/Num/Lemmas.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/ZMod/Defs.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/NumberTheory/Dioph.lean,Mathlib/Tactic/ToAdditive/Frontend.lean | 14 | 6 | ['eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-bot', 'mattrobball'] | nobody | 5 months ago | unknown | unknown |
| 27933 | grunweg | chore(OrdNode): format code example in code blocks | Wrap them in code blocks (and unindent them; that indentation is not needed any more). This also avoids warnings from the linter in #27898. ------- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 459/212 | Mathlib/Data/Ordmap/Ordnode.lean | 1 | 4 | ['eric-wieser', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 172 days ago | 39 days |
| 29615 | eric-wieser | chore: add a computable shortcut for `AddCommMonoid ℂ` | --- [](https://gitpod.io/from-referrer/) | t-analysis easy bench-after-CI | 9/1 | Mathlib/Analysis/Complex/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 5 months ago | unknown | unknown |
| 28802 | grunweg | feat: a tactic linter for continuity/measurability which can be `fun_prop` | --- Let's see if this finds further locations in mathlib :tada: This PR also runs the linter in mathlib by default. I strongly think this is a good idea --- but leaves all kinds of fun questions around "where do you import this linter best". Opinions on this welcome; this PR is a first start (but no more). [](https://gitpod.io/from-referrer/) | merge-conflict large-import awaiting-CI t-meta | 144/26 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,Mathlib/Tactic/TacticAnalysis/FunProp.lean,MathlibTest/TacticAnalysis2.lean | 6 | 12 | ['Vierkantor', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 29633 | sgouezel | Just for bench | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 1046/690 | .github/actionlint.yml,.github/workflows/nightly-docgen.yml,.github/workflows/nightly_detect_failure.yml,.github/workflows/report-grind-regressions.yml,Cache/Requests.lean,Mathlib.lean,Mathlib/Algebra/Field/Rat.lean,Mathlib/Algebra/Homology/ExactSequence.lean,Mathlib/Algebra/Order/Ring/Rat.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Algebra/Polynomial/Eval/SMul.lean,Mathlib/Algebra/Ring/Rat.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Summable.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/Computability/TMToPartrec.lean,Mathlib/Data/DFinsupp/Notation.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Int/GCD.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/Nat/GCD/Basic.lean,Mathlib/Data/Nat/GCD/BigOperators.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Data/Rat/Cast/Defs.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/Rat/Floor.lean,Mathlib/Data/Rat/Lemmas.lean,Mathlib/Data/Seq/Basic.lean,Mathlib/Data/UInt.lean,Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/GroupTheory/Perm/Centralizer.lean,Mathlib/Init.lean,Mathlib/Lean/Expr/Rat.lean,Mathlib/Lean/Meta/CongrTheorems.lean,Mathlib/LinearAlgebra/PID.lean,Mathlib/LinearAlgebra/Quotient/Basic.lean,Mathlib/LinearAlgebra/Vandermonde.lean,Mathlib/Logic/Equiv/Prod.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Filter/Defs.lean,Mathlib/Probability/Distributions/Pareto.lean,Mathlib/RingTheory/Multiplicity.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Reassoc.lean,Mathlib/Tactic/CategoryTheory/Refs.lean,Mathlib/Tactic/DeriveFintype.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean,Mathlib/Tactic/Linter/DeprecatedModule.lean,Mathlib/Tactic/Linter/Header.lean,Mathlib/Tactic/Linter/Lint.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/NormNum/GCD.lean,Mathlib/Tactic/StacksAttribute.lean,Mathlib/Tactic/SuppressCompilation.lean,Mathlib/Tactic/ToAdditive/Frontend.lean,Mathlib/Tactic/WLOG.lean,Mathlib/Testing/Plausible/Sampleable.lean,Mathlib/Util/Notation3.lean,Mathlib/Util/ParseCommand.lean,Mathlib/Util/Superscript.lean,MathlibTest/AssertExists.lean,MathlibTest/CalcQuestionMark.lean,MathlibTest/Change.lean,MathlibTest/DeprecateTo.lean,MathlibTest/FieldSimp.lean,MathlibTest/FindSyntax.lean,MathlibTest/LibrarySearch/basic.lean,MathlibTest/LibrarySearch/mathlib.lean,MathlibTest/LibrarySearch/observe.lean,MathlibTest/MinImports.lean,MathlibTest/RewriteSearch/Basic.lean,MathlibTest/RewriteSearch/Polynomial.lean,MathlibTest/StacksAttribute.lean,MathlibTest/Subsingleton.lean,MathlibTest/Use.lean,MathlibTest/Variable.lean,MathlibTest/hint.lean,MathlibTest/lift.lean,MathlibTest/linarith.lean,MathlibTest/notation3.lean,MathlibTest/propose.lean,MathlibTest/renameBvar.lean,MathlibTest/rewrites.lean,MathlibTest/ring.lean,MathlibTest/says.lean,MathlibTest/success_if_fail_with_msg.lean,MathlibTest/toAdditive.lean,lake-manifest.json | 103 | 1 | ['sgouezel'] | nobody | 5 months ago | 170 days ago | 5 seconds |
| 25069 | erdOne | feat(EllipticCurve): rational points of singular nodal cubics | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebraic-geometry | 251/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Singular/Node.lean | 3 | 14 | ['Multramate', 'acmepjz', 'chrisflav', 'erdOne', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | chrisflav | 5 months ago | unknown | unknown |
| 25070 | erdOne | feat(EllipticCurve): rational points on singular cuspidal cubics | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebraic-geometry | 123/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Singular/Cusp.lean | 2 | 12 | ['Multramate', 'acmepjz', 'adamtopaz', 'erdOne', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | adamtopaz | 5 months ago | unknown | unknown |
| 26670 | yu-yama | feat(GroupExtension/Abelian): define `conjClassesEquivH1` | This PR continues the work from #21837. Original PR: https://github.com/leanprover-community/mathlib4/pull/21837 | merge-conflict awaiting-author t-algebra | 162/5 | Mathlib.lean,Mathlib/GroupTheory/GroupExtension/Abelian.lean,Mathlib/GroupTheory/GroupExtension/Basic.lean,Mathlib/GroupTheory/GroupExtension/Defs.lean,docs/references.bib | 5 | 3 | ['erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'yu-yama'] | erdOne | 5 months ago | 194 days ago | 49 days |
| 26154 | ADedecker | refactor: add refactored APIs for algebraic filter bases | This PR continues the work from #18437. Original PR: https://github.com/leanprover-community/mathlib4/pull/18437 | merge-conflict t-topology | 651/0 | Mathlib.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Algebra/FilterBasisNew.lean,Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean,Mathlib/Topology/Algebra/Nonarchimedean/BasesNew.lean | 5 | 3 | ['ADedecker', 'github-actions', 'mathlib4-merge-conflict-bot'] | PatrickMassot | 5 months ago | 169 days ago | 87 days |
| 27024 | grunweg | feat: Gram-Schmidt orthonormalisation for sections of a vector bundle | Add a parametrised version of Gram-Schmidt, for sections of a topological vector bundle with a bundle metric.
This will be used to define orthonormal local frames.
From the path towards geodesics and the Levi-Civita connection.
Co-authored-by: Patrick Massot |
merge-conflict awaiting-author t-differential-geometry | 279/11 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Topology/VectorBundle/GramSchmidtOrtho.lean,scripts/noshake.json | 4 | 71 | ['faenuccio', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 5 months ago | 201 days ago | 28 days |
| 28580 | kmill | refactor: simplify implementation of `filter_upwards` | This PR makes a few changes to `filter_upwards`: - it uses `focus`, which prevents multiGoalLinter from ever blaming the tactics used inside its implementation - it constructs the whole proof syntax and elaborates it at once using `evalTactic` and `refine`, rather than using the lower-level TermElab API, which can lose track of goals - it's written in a way that doesn't require goals to be in some particular order This was motivated by some multiGoalLinter issues I ran into when working on https://github.com/leanprover/lean4/pull/9942 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-order t-meta | 14/16 | Mathlib/Order/Filter/Defs.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 29614 | sgouezel | Sg test4 | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 2788/3328 | .github/actionlint.yml,.github/workflows/nightly-docgen.yml,.github/workflows/nightly_detect_failure.yml,.github/workflows/report-grind-regressions.yml,Cache/Requests.lean,Mathlib.lean,Mathlib/Algebra/Algebra/RestrictScalars.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Field/Rat.lean,Mathlib/Algebra/Homology/ExactSequence.lean,Mathlib/Algebra/Order/Ring/Rat.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Algebra/Polynomial/Eval/SMul.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/Rat.lean,Mathlib/Algebra/Ring/Subring/Defs.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Order.lean,Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/Classes.lean,Mathlib/Analysis/CStarAlgebra/CompletelyPositiveMap.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/CStarAlgebra/ContinuousLinearMap.lean,Mathlib/Analysis/CStarAlgebra/ContinuousMap.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean,Mathlib/Analysis/CStarAlgebra/Module/Defs.lean,Mathlib/Analysis/CStarAlgebra/Multiplier.lean,Mathlib/Analysis/CStarAlgebra/Unitization.lean,Mathlib/Analysis/CStarAlgebra/lpSpace.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/DSlope.lean,Mathlib/Analysis/Calculus/Deriv/CompMul.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/DiffContOnCl.lean,Mathlib/Analysis/Calculus/FDeriv/Equiv.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/LineDeriv/QuadraticMap.lean,Mathlib/Analysis/Calculus/MeanValue.lean,Mathlib/Analysis/Calculus/SmoothSeries.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/Norm.lean,Mathlib/Analysis/Complex/Tietze.lean,Mathlib/Analysis/Fourier/FourierTransform.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean,Mathlib/Analysis/InnerProductSpace/Completion.lean,Mathlib/Analysis/InnerProductSpace/Defs.lean,Mathlib/Analysis/InnerProductSpace/MulOpposite.lean,Mathlib/Analysis/InnerProductSpace/OfNorm.lean,Mathlib/Analysis/InnerProductSpace/Orthonormal.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/ProdL2.lean,Mathlib/Analysis/InnerProductSpace/Projection/Minimal.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/Analysis/InnerProductSpace/l2Space.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Matrix.lean,Mathlib/Analysis/Meromorphic/Basic.lean,Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean,Mathlib/Analysis/Normed/Algebra/Unitization.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/Analysis/Normed/Group/AddCircle.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Group/Completion.lean,Mathlib/Analysis/Normed/Group/Constructions.lean,Mathlib/Analysis/Normed/Group/Continuity.lean,Mathlib/Analysis/Normed/Group/Hom.lean,Mathlib/Analysis/Normed/Group/Int.lean,Mathlib/Analysis/Normed/Group/Quotient.lean,Mathlib/Analysis/Normed/Group/Rat.lean,Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean,Mathlib/Analysis/Normed/Group/Subgroup.lean,Mathlib/Analysis/Normed/Group/Submodule.lean,Mathlib/Analysis/Normed/Group/Ultra.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/Normed/Module/Completion.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,Mathlib/Analysis/Normed/Order/Hom/Basic.lean,Mathlib/Analysis/Normed/Order/Hom/Ultra.lean | 251 | 1 | ['sgouezel'] | nobody | 5 months ago | unknown | unknown |
| 29010 | grunweg | chore: more tests for field_simp features and edge cases | --- [](https://gitpod.io/from-referrer/) | 135/0 | MathlibTest/FieldSimp.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 188 days ago | 19 hours | |
| 27937 | madvorak | feat(Logic/Basic): `congr_heq₂` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-logic | 6/0 | Mathlib/Logic/Basic.lean | 1 | 8 | ['YaelDillies', 'fpvandoorn', 'github-actions', 'madvorak', 'vihdzp'] | fpvandoorn | 5 months ago | 193 days ago | 17 days |
| 29741 | JovanGerb | trying #28803 using lean#10178 | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 1111/718 | .github/actionlint.yml,.github/workflows/nightly-docgen.yml,.github/workflows/nightly_detect_failure.yml,.github/workflows/report-grind-regressions.yml,Cache/Requests.lean,Mathlib.lean,Mathlib/Algebra/Field/Rat.lean,Mathlib/Algebra/Homology/ExactSequence.lean,Mathlib/Algebra/Order/Ring/Rat.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Algebra/Polynomial/Eval/SMul.lean,Mathlib/Algebra/Ring/Rat.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Group/Continuity.lean,Mathlib/Analysis/SpecialFunctions/Log/Summable.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/Computability/TMToPartrec.lean,Mathlib/Data/DFinsupp/Notation.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Int/GCD.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/Nat/GCD/Basic.lean,Mathlib/Data/Nat/GCD/BigOperators.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Data/Rat/Cast/Defs.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/Rat/Floor.lean,Mathlib/Data/Rat/Lemmas.lean,Mathlib/Data/Seq/Basic.lean,Mathlib/Data/UInt.lean,Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/GroupTheory/Perm/Centralizer.lean,Mathlib/Init.lean,Mathlib/Lean/Expr/Rat.lean,Mathlib/Lean/Meta/CongrTheorems.lean,Mathlib/LinearAlgebra/PID.lean,Mathlib/LinearAlgebra/Quotient/Basic.lean,Mathlib/LinearAlgebra/Vandermonde.lean,Mathlib/Logic/Equiv/Prod.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Filter/Defs.lean,Mathlib/Probability/Distributions/Pareto.lean,Mathlib/RingTheory/Multiplicity.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Reassoc.lean,Mathlib/Tactic/CategoryTheory/Refs.lean,Mathlib/Tactic/DeriveFintype.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean,Mathlib/Tactic/Linter/DeprecatedModule.lean,Mathlib/Tactic/Linter/Header.lean,Mathlib/Tactic/Linter/Lint.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/NormNum/GCD.lean,Mathlib/Tactic/StacksAttribute.lean,Mathlib/Tactic/SuppressCompilation.lean,Mathlib/Tactic/ToAdditive/Frontend.lean,Mathlib/Tactic/WLOG.lean,Mathlib/Testing/Plausible/Sampleable.lean,Mathlib/Util/Notation3.lean,Mathlib/Util/ParseCommand.lean,Mathlib/Util/Superscript.lean,MathlibTest/AssertExists.lean,MathlibTest/CalcQuestionMark.lean,MathlibTest/Change.lean,MathlibTest/DeprecateTo.lean,MathlibTest/FieldSimp.lean,MathlibTest/FindSyntax.lean,MathlibTest/LibrarySearch/basic.lean,MathlibTest/LibrarySearch/mathlib.lean,MathlibTest/LibrarySearch/observe.lean,MathlibTest/MinImports.lean,MathlibTest/RewriteSearch/Basic.lean,MathlibTest/RewriteSearch/Polynomial.lean,MathlibTest/StacksAttribute.lean,MathlibTest/Subsingleton.lean,MathlibTest/Use.lean,MathlibTest/Variable.lean,MathlibTest/hint.lean,MathlibTest/lift.lean,MathlibTest/linarith.lean,MathlibTest/notation3.lean,MathlibTest/propose.lean,MathlibTest/renameBvar.lean,MathlibTest/rewrites.lean,MathlibTest/ring.lean,MathlibTest/says.lean,MathlibTest/success_if_fail_with_msg.lean | 105 | 2 | ['JovanGerb', 'leanprover-bot'] | nobody | 5 months ago | unknown | unknown |
| 29750 | sgouezel | Branch just before the class_abbrev core PR, just for benching | Branch just before the class_abbrev core PR, just for benching --- [](https://gitpod.io/from-referrer/) | merge-conflict | 1041/684 | .github/actionlint.yml,.github/workflows/nightly-docgen.yml,.github/workflows/nightly_detect_failure.yml,.github/workflows/report-grind-regressions.yml,Cache/Requests.lean,Mathlib.lean,Mathlib/Algebra/Field/Rat.lean,Mathlib/Algebra/Homology/ExactSequence.lean,Mathlib/Algebra/Order/Ring/Rat.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Algebra/Polynomial/Eval/SMul.lean,Mathlib/Algebra/Ring/Rat.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/SpecialFunctions/Log/Summable.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/Computability/TMToPartrec.lean,Mathlib/Data/DFinsupp/Notation.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Int/GCD.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/Nat/GCD/Basic.lean,Mathlib/Data/Nat/GCD/BigOperators.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Data/Rat/Cast/Defs.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/Rat/Floor.lean,Mathlib/Data/Rat/Lemmas.lean,Mathlib/Data/Seq/Basic.lean,Mathlib/Data/UInt.lean,Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/GroupTheory/Perm/Centralizer.lean,Mathlib/Init.lean,Mathlib/Lean/Expr/Rat.lean,Mathlib/LinearAlgebra/PID.lean,Mathlib/LinearAlgebra/Quotient/Basic.lean,Mathlib/LinearAlgebra/Vandermonde.lean,Mathlib/Logic/Equiv/Prod.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Filter/Defs.lean,Mathlib/Probability/Distributions/Pareto.lean,Mathlib/RingTheory/Multiplicity.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Reassoc.lean,Mathlib/Tactic/CategoryTheory/Refs.lean,Mathlib/Tactic/DeriveFintype.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean,Mathlib/Tactic/Linter/DeprecatedModule.lean,Mathlib/Tactic/Linter/Header.lean,Mathlib/Tactic/Linter/Lint.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/NormNum/GCD.lean,Mathlib/Tactic/StacksAttribute.lean,Mathlib/Tactic/SuppressCompilation.lean,Mathlib/Tactic/ToAdditive/Frontend.lean,Mathlib/Tactic/WLOG.lean,Mathlib/Testing/Plausible/Sampleable.lean,Mathlib/Util/Notation3.lean,Mathlib/Util/ParseCommand.lean,Mathlib/Util/Superscript.lean,MathlibTest/AssertExists.lean,MathlibTest/CalcQuestionMark.lean,MathlibTest/Change.lean,MathlibTest/DeprecateTo.lean,MathlibTest/FieldSimp.lean,MathlibTest/FindSyntax.lean,MathlibTest/LibrarySearch/basic.lean,MathlibTest/LibrarySearch/mathlib.lean,MathlibTest/LibrarySearch/observe.lean,MathlibTest/MinImports.lean,MathlibTest/RewriteSearch/Basic.lean,MathlibTest/RewriteSearch/Polynomial.lean,MathlibTest/StacksAttribute.lean,MathlibTest/Subsingleton.lean,MathlibTest/Use.lean,MathlibTest/Variable.lean,MathlibTest/hint.lean,MathlibTest/lift.lean,MathlibTest/linarith.lean,MathlibTest/notation3.lean,MathlibTest/propose.lean,MathlibTest/renameBvar.lean,MathlibTest/rewrites.lean,MathlibTest/ring.lean,MathlibTest/says.lean,MathlibTest/success_if_fail_with_msg.lean,MathlibTest/toAdditive.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 101 | 1 | ['sgouezel'] | nobody | 5 months ago | unknown | unknown |
| 7125 | eric-wieser | feat: additive monoid structure via biproducts | I suspect I'm missing a trick with these transport lemmas. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory awaiting-CI | 237/0 | Mathlib/CategoryTheory/Limits/Skeleton.lean | 1 | 3 | ['alreadydone', 'eric-wieser', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27950 | alreadydone | feat(MonoidAlgebra): criteria for `single` to be a unit, irreducible or prime | --- - [ ] depends on: #27936 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra blocked-by-other-PR | 714/192 | Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/Divisibility/Basic.lean,Mathlib/Algebra/Divisibility/Finite.lean,Mathlib/Algebra/Divisibility/Hom.lean,Mathlib/Algebra/Divisibility/Prod.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Irreducible/Lemmas.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/MonoidAlgebra/Divisibility.lean,Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Prime/Defs.lean,Mathlib/Algebra/Prime/Lemmas.lean,Mathlib/Algebra/Prime/Prod.lean,Mathlib/Data/Nat/Init.lean,Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/GroupTheory/Coset/Card.lean,Mathlib/GroupTheory/Exponent.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/GroupTheory/GroupAction/Period.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/OrderOfElement.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/Tactic/ToAdditive/Frontend.lean | 33 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 28067 | grunweg | Docstring enumerations | Tracking PR; to be split. Audit all ocurrences of `^ \S`; exhaustive. --- - [x] depends on: #28068 - [x] depends on: #28069 - [ ] depends on: #28070 - [x] depends on: #28118 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR | 264/263 | Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/BrauerGroup/Defs.lean,Mathlib/Algebra/Module/LinearMap/Polynomial.lean,Mathlib/CategoryTheory/Abelian/NonPreadditive.lean,Mathlib/CategoryTheory/EqToHom.lean,Mathlib/CategoryTheory/Filtered/Basic.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Pi.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/CategoryTheory/Sites/Grothendieck.lean,Mathlib/CategoryTheory/Sites/Pretopology.lean,Mathlib/Condensed/Discrete/Characterization.lean,Mathlib/FieldTheory/ChevalleyWarning.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/OuterMeasure/Basic.lean,Mathlib/MeasureTheory/OuterMeasure/Defs.lean,Mathlib/NumberTheory/FLT/Basic.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/RingTheory/Grassmannian.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean,Mathlib/RingTheory/WittVector/Teichmuller.lean,Mathlib/Tactic/Bound.lean,Mathlib/Tactic/Bound/Attribute.lean,Mathlib/Tactic/ENatToNat.lean,Mathlib/Tactic/FBinop.lean,Mathlib/Tactic/IntervalCases.lean,Mathlib/Tactic/TermCongr.lean,Mathlib/Util/Notation3.lean,Mathlib/Util/Superscript.lean,docs/Conv/Guide.lean | 38 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 28908 | joelriou | feat(CategoryTheory): Pullback functors on `Over` categories in `Type` have right adjoints | Given a map `f : E → B`, in order to show that `Over.pullback f : Over B ⥤ Over E` commutes with colimits, we show that it admits a right adjoint. In order to do that, we first construct a functor `overPullback f : Over B ⥤ Over E` whose definition involves explicit types rather than categorical pullbacks, and we define its right adjoint `overPushforward f : Over E ⥤ Over B`. (In a future PR, it will be shown that the `Over.pullback` also commutes with colimits in categories of presheaves, and hopefully this will be used in the construction of the Quillen model category structure on simplicial sets.) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 103/0 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Types/OverPullback.lean,Mathlib/CategoryTheory/Limits/Types/Shapes.lean | 3 | 10 | ['emilyriehl', 'github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'robin-carlier', 'sinhp'] | nobody | 5 months ago | 176 days ago | 13 days |
| 25480 | ocfnash | feat: define a concrete model of the `𝔤₂` root system | This is a bit of an experiment to test API but it should also make it easier to prove some properties of `𝔤₂`. --- - [x] depends on: #25477 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra large-import | 120/15 | Mathlib/LinearAlgebra/RootSystem/Defs.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean | 3 | 9 | ['eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] | nobody | 5 months ago | unknown | unknown |
| 29330 | plp127 | chore: define `Fin.cycleIcc` with conditions | Redefine `Fin.cycleIcc` using conditionals instead of composing existing `Fin` operations together. Its worst-case runtime drops from O(n) to O(1). As a bonus, the definition no longer needs explaining. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-group-theory | 61/68 | Mathlib/GroupTheory/Perm/Fin.lean | 1 | 10 | ['JovanGerb', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'tb65536'] | nobody | 5 months ago | 160 days ago | 19 days |
| 29588 | Periecle | feat(Analysis/Complex/Residue): Implement residue theory for complex functions at isolated singularities | # Add basic residue theory for complex functions This PR introduces the residue theory implementation in mathlib. ## Main additions - **`HasIsolatedSingularityAt f c`**: Predicate for functions with isolated singularities at point `c` - **`residue f c hf`**: The residue of `f` at isolated singularity `c`, defined via circle integrals - **Radius independence**: `residue_eq_two_pi_I_inv_smul_circleIntegral` - residue equals normalized circle integral for any valid radius - **Holomorphic residues**: `residue_of_holomorphic` - functions holomorphic in a neighborhood have zero residue - **Simple pole formula**: `residue_simple_pole` - for `f(z) = (z-c)⁻¹ * g(z)`, residue equals `g(c)` ## Implementation notes - Builds on existing circle integral infrastructure in `CauchyIntegral.lean` - Uses `Classical.choose` to extract witness radius from isolated singularity condition - Comprehensive documentation with mathematical context and examples - Establishes foundation for residue theorem, argument principle, and other applications ## Examples included - `residue(1/z, 0) = 1` (canonical simple pole) - Radius independence demonstration - Zero residues for holomorphic functions This provides the essential building blocks for complex analysis and first step to formalize residue theory. | awaiting-author t-analysis new-contributor | 383/0 | Mathlib/Analysis/Complex/Residue/Basic.lean | 1 | 17 | ['Periecle', 'github-actions', 'hrmacbeth', 'llllvvuu', 'loefflerd'] | nobody | 5 months ago | unknown | unknown |
| 29482 | mattrobball | refactor (Algebra.Group.Defs): add npow/zpow/nsmul/zsmul as fields of new parents classes | Adds ZPow G class and makes this a parent to DivInvMonoid and the corresponding additive versions. Updates zpow/zsmul operations to use the integrated power/scalar multiplication syntax. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 177/122 | Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/Group/Commute/Defs.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/Pointwise/Set/Basic.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/Basic.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Algebra/Ring/ULift.lean,Mathlib/Data/BitVec.lean,Mathlib/Tactic/Abel.lean,Mathlib/Tactic/NormNum/Pow.lean | 21 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 29657 | jcreinhold | feat(CategoryTheory/MarkovCategory): add Markov categories | This PR adds Markov categories to the category theory library. A Markov category is a symmetric monoidal category where every object has canonical copy and delete morphisms that form commutative comonoids. ## What this gives mathlib In a Markov category, morphisms model probabilistic processes. The copy morphism `X → X ⊗ X` creates perfect correlation (both outputs always equal). The delete morphism `X → I` marginalizes (sums/integrates out variables). This structure captures probability theory categorically. The same theorem proves results for: - Finite probability (stochastic matrices) - Measure theory (Markov kernels) - Kleisli categories of probability monads Fritz (2020) used this to prove categorical versions of Fisher-Neyman, Basu's theorem, and other core statistics results. ## Implementation - `MarkovCategory`: Extends `SymmetricCategory` with canonical comonoid structure - `copyMor X : X ⟶ X ⊗ X` and `delMor X : X ⟶ I` for each object - Coherence axioms: commutativity, counitality, coassociativity - Compatibility with tensor products Key design point: The comonoid structure is canonical (fields of the typeclass), not chosen. This matches the probability interpretation where there's exactly one way to copy/marginalize. ## Examples included 1. Cartesian categories: Every cartesian monoidal category forms a Markov category where copy is the diagonal `x ↦ (x,x)` and delete is the terminal morphism. All morphisms are deterministic. 2. FinStoch: Objects are finite types. Morphisms are stochastic matrices (rows sum to 1). This models finite probability spaces with the usual matrix multiplication for composition. ## Scope and review notes This PR provides the basic structure only. Future PRs would add: - Conditional independence - Sufficient statistics - Connection to measure-theoretic probability - More examples (Kleisli categories, Gaussian categories) I'm neither an expert in this material nor in Lean; I've only read a few papers on Markov categories and have gone through tutorial material in Lean. Please review for mathematical correctness and idiomatic Lean. I kept this PR small to check if mathlib wants this addition and to ensure it meets repository standards. ## Why add this now Markov categories provide a useful abstraction level for probability in type theory. Adding it to mathlib enables future work on categorical probability and statistics. In particular, I'm working on a probabilistic programming library and would like to write some proofs using these constructs. ## References - Fritz, T. (2020). [A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics](https://arxiv.org/abs/1908.07021). *Advances in Mathematics*, 370, 107239. - Cho, K., & Jacobs, B. (2019). [Disintegration and Bayesian inversion via string diagrams](https://arxiv.org/abs/1709.00322). *Mathematical Structures in Computer Science*, 29(7), 938-971. --- All definitions include docstrings. The PR has tests for the core functionality. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 2414/7 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Basic.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Deterministic.lean,Mathlib/CategoryTheory/MarkovCategory/Basic.lean,Mathlib/CategoryTheory/MarkovCategory/Cartesian.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Basic.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Braided.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/CopyDiscard.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Markov.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Bimon_.lean,Mathlib/CategoryTheory/Monoidal/CommComon_.lean,Mathlib/CategoryTheory/Monoidal/Comon_.lean,MathlibTest/CategoryTheory/MarkovCategory.lean,docs/references.bib | 16 | 28 | ['github-actions', 'jcreinhold', 'joelriou', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 164 days ago | 42 minutes |
| 27829 | dupuisf | feat: modify `cfc_tac` to use `grind` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 60/50 | Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Algebra/Star/SelfAdjoint.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean,Mathlib/Tactic/ContinuousFunctionalCalculus.lean | 9 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 21950 | erdOne | feat(NumberTheory/Padics): the completion of `ℚ` at a finite place is `ℚ_[p]` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-number-theory | 253/1 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/NumberTheory/Padics/HeightOneSpectrum.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean,Mathlib/Topology/Algebra/WithZeroMulInt.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean | 7 | 33 | ['Ruben-VandeVelde', 'erdOne', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'pechersky', 'smmercuri', 'xroblot'] | nobody | 5 months ago | unknown | unknown |
| 26178 | ppls-nd-prs | feat(CategoryTheory/Limits): Fubini for products | We show that the product of products is a product indexed by the sigma type. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 17/0 | Mathlib/CategoryTheory/Limits/Shapes/Products.lean | 1 | 6 | ['chrisflav', 'github-actions', 'leanprover-community-bot-assistant', 'ppls-nd-prs', 'robin-carlier'] | nobody | 5 months ago | 256 days ago | 12 hours |
| 27214 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): Categorical pullback squares | In this PR, we give the definition and first basic properties of categorical pullback squares. Using our previous work on `CategoricalPullback`, we define a typeclass `CatPullbackSquare T L R B` that asserts that a given `CatCommSq T L R B` is a "pullback square": this is the data of a chosen adjoint equivalence to the canonical functor from the top left corner of the square to the categorical pulback of its leg. Using this equivalence, be derive a universal property for functors from `X`with values in the top left corner of the square: they are equivalent to `CatCommSqOver R B X`, the category of categorical commutative squares over the cospan `R, B` with top left corner `X`. We prove some coherence result for this equivalence, most notably an isomorphism that, given `S : CatCommSqOver R B X`, bundles the two commutative triangles formed by the induced functor, and the coherence between the squares that these isomorphisms satisfy: this is conveniently bundled in the data of a single isomorphisms of `CatCommSqOver R B X`. Finally, we provide a `Prop`-class `IsCatPullbackSquare` that merely asserts the existence (via `Nonempty`) of the relevant data: we show that it is tautotogically equivalent to the propopsition that the canonical functor to the categorical pullback is an equivalence. --- - [ ] depends on: #26679 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 786/1 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 155 days ago | 1 hour |
| 27391 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): pseudofunctoriality structure of categorical pullback squares | Using pseudofunctoriality of the construction `CatCommSqOver`, we show that categorical pullback squares have pseudofunctorial-like structures: given a `CatCommSq T L R B` and a `CatPullbackSq T' L' R' B'`, and a `CatCospanTransform R B R' B'`, there is a functor `CatPullbackSq.functorOfTransform` between the top left corners of the two squares. We give `CatCommSq` instances that relates this functor with other constructions such as `CatCommSqOver.transform`. Similarly, we construct `CatPullbackSq.functorOfTransform₂`, that maps morphisms of `CatCospanTransforms` to natural transformations. Finally, we show that `functorOfTransform` respects identities and compositions. We do not yet prove that all of this data satisfies all the expected properties of pseudofunctors: this will be the content of a follow-up PR. --- - [ ] depends on: #27214 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory | 1090/1 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27432 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): pseudofunctoriality of categorical pulback squares | In this PR, we show that the "unbundled pseudofunctor" data constructed in #27391 satisfy the axioms of an actual "unbundled pseudo-functor". This is intended to give all the required coherence for a formal bicategory-like proof of the fact that `CatCospanAdjunction`s from #26578 (resp. `CatCospanEquivalence`s from #26579) promote to adjunctions (resp. equivalences) between the top left corners of categorical pullback squares. --- - [ ] depends on: #27391 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory | 1244/1 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27481 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): adjunctions and equivalences of categorical pullback squares | We show that a `CatCospanAdjunction` (resp `CatCospanEquivalence`) induces adjunctions (resp. equivalences) of the categories that sit at the top left corners of categorical pullback squares via the pseudofunctoriality proved in #27432. Thanks to the lemmas that proves that categorical pullback squares are fully pseudofunctorial, the proof is purely formal ("a pseudofunctor maps adjunctions (resp. equivalences) to adjunctions (resp. equivalences)"), rather than being a painful computation for the triangle equalities. In particular, the results here show that two categorical pullback squares with equivalent "underlying categorical cospan" are equivalent, which realizes the equivalence-invariance of the notion of categorical pullbacks. We do not yet show that a (not-necessarily pullback) `CatCommSq T L R B` equivalent to a `CatPullbackSquare T' L' R' B'` via a `CatCospanEquivalence R B R' B'` is also a `CatPullbackSquare`: this will be the content of a follow-up PR. --- - [ ] depends on: #27432 - [ ] depends on: #26579 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 1829/1 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27686 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical/Square): more API for `CatPullbackSquare` | In this PR, we provide more API around the notion of categorical pullback squares. Having established the pseudofunctoriality of the notion in #27432, we characterize the behaviour of the equivalence `CatPullbackSquare.functorEquiv (π₁ R B) (π₂ R B) R B X : X ⥤ R ⊡ B ≌ CatCommSqOver R B X` via various (d)simp lemmas. This ports all the pseudofunctoriality and equivalence-invariance results of `CatPullbackSquare` to `CategoricalPullback`. We also show this equivalence is isomorphic to the one from `CategoricalPullback.functorEquiv`. Unfortunately, this small duplication is necessary, as `CatPullbackSquare.functorEquiv` is bulit using `CategoricalPullback.functorEquiv`. The equivalence `CategoricalPullback.functorEquiv` is now an implementation detail, the idiomatic way is to use `CatPullbackSquare.functorEquiv`; docstrings are updated accordingly. This deprecates some constructions and lemmas for `CategoricalPullback`: they are now special case of the API that is available for any categorical pullback square. --- - [ ] depends on: #27481 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 2245/74 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 4 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 216 days ago | 14 minutes |
| 27687 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): squares equivalent to a `CatPullbackSquare` | We provide the last remaining piece of the "equivalence-invariance" of categorical pullback squares: given a `CatCommSq (T : C₁ ⥤ _) L R B`, a `CatPullbackSquare (T' : D₁ ⥤ _) L' R' B'`, a `ψ : CatCospanEquivalence R B R' B'` and an equivalence `C₁ ≌ D₁` that identifies to the functor induced by `ψ`, the `CatCommSq T L R B` can be promoted to a `CatPullbackSquare T L R B'`. In other words: a `CatCommSq` that is equivalent to a `CatPullbackSquare` is a `CatPullbackSquare`. --- - [ ] depends on: #27686 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 2318/74 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 4 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27688 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): coherence statement for `CatPullbackSquare.inverse` | This PR records a "coherence" statement for `CatPullbackSquares`: it bridges the gap between the user-provided `inverse` field of the `CatPullbackSquare` structure, and the other way one can deduce an equivalence between the top left corner of the square and a categorical pullback (via the pseudofunctoriality of categorical pullback squares induced by the identity `CatCospanTransform`). We show the two possible natural isomorphisms on the inverses of the equivalences are in fact the same (hence the term "coherence"). --- - [ ] depends on: #27686 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 2351/74 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 4 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27689 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): horizontal pasting calculus for `CatPullbackSquare` | Given two categorical commutative squares that can be horizontally pasted, we prove that if the rightmost square is a `CatPullbackSquare`, then the leftmost square is a `CatPullbackSquare` if and only if the horizontal composition of the squares is a `CatPullbackSquare`. This generalizes to `CatPullbackSquare` the well-known "pasting calculus" for pullback squares in a category. The statement is made available both in terms of the `Type`-class `CatPullbackSquare`, and in terms of the `Prop`-class `IsCatPullbackSquare`. --- - [ ] depends on: #27686 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 2562/74 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Pasting.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 5 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27690 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): vertical pasting calculus for `CatPullbackSquare` | We mirror the constructions from #27689 to construct the vertical pasting calculus of `CatPullbackSquares`: given two vertically composable `CatCommSq` such that the bottom one is a `CatPullbackSquare`, the top square is a `CatPullbackSquare` if and only if the vertical composition (the "outer" square) is a `CatPullbackSquare`. --- - [ ] depends on: #27689 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 2841/74 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Pasting.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 5 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 215 days ago | 53 minutes |
| 27740 | robin-carlier | feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): pasting calculus for `CategoricalPullback` | Specialize the pasting calculus for categorical pullback squares to `CategoricalPullback̀` by providing equivalences of categories `R ⊡ (B₁ ⋙ B₂) ≌ (π₂ R B₂) ⊡ B₁` and `(R₁ ⋙ R₂) ⊡ B ≌ R₁ ⊡ (π₁ R₂ B)`. The `@[simps!]` attribute works wonderfully on these equivalences so that their component all have the expected (d)simp lemmas. --- - [ ] depends on: #27690 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 2872/75 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Pasting.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Square.lean | 5 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 26330 | Timeroot | feat: "Junk value" test file | This PR continues the work from #25173. Original PR: https://github.com/leanprover-community/mathlib4/pull/25173 | awaiting-author t-data | 360/0 | MathlibTest/Junk.lean | 1 | 17 | ['SnirBroshi', 'Timeroot', 'bryangingechen', 'github-actions', 'leanprover-community-bot-assistant', 'madvorak', 'pechersky', 'vihdzp'] | pechersky | 5 months ago | 155 days ago | 33 days |
| 28452 | plp127 | feat: Define `ZMod.fintype` without cases | Define `ZMod.fintype` without casing on `n` except inside the proof. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data | 2/3 | Mathlib/Data/ZMod/Defs.lean | 1 | 2 | ['github-actions', 'jcommelin'] | pechersky | 5 months ago | 155 days ago | 45 days |
| 28807 | alreadydone | experiment: Submodule with SMul only (no Semiring) | --- `SubMulAction` already takes `SMul`. TODO: relax typeclass requirements of `Ideal` as well. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-CI bench-after-CI | 54/42 | Mathlib/Algebra/Module/Submodule/Defs.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 28808 | alreadydone | experiment: Ideal with Mul only (no Semiring) | --- - [ ] depends on: #28807 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR bench-after-CI awaiting-CI merge-conflict | 172/120 | Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/LinearAlgebra/Matrix/Ideal.lean,Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean,Mathlib/RingTheory/Ideal/Defs.lean,Mathlib/RingTheory/Ideal/Lattice.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/Spectrum/Prime/RingHom.lean | 10 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 26466 | robin-carlier | feat(AlgebraicTopology/SimplexCategory/Augmented): the canonical monoid object in the augmented simplex category | Show that in the augmented simplex category, `⦋0⦌` is an internal monoid object. Future work will show that this is in fact the universal monoid object: for any monoidal category `C`, evaluation at `⦋0⦌` induces an equivalence of categories between `Mon_ C` and the category of monoidal functors from `AugmentedSimplexCategory` to `C`. The resulting augmented cosimplicial object one gets from this construction is sometimes called the "monoidal bar construction" attached to a monoid. This PR was split from #25743. --- - [ ] depends on: #25743 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-topology t-category-theory | 571/111 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Mon_.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean | 6 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 249 days ago | 17 minutes |
| 28074 | grunweg | Isbilinearmap | TODO see if it builds, move everything to the right place, add docs. update Pr description - written by Patrick, part of #26221 (and prereq for #28056) --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 64/0 | Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/LinearAlgebra/BilinearMap.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 26579 | robin-carlier | feat(CategoryTheory/Limits/Pullbacks/Categorical/CatCospanTransform): equivalences of categorical cospans | Building on the notion of adjunctions of categorical cospans, we define equivalences of categorical cospans as a structure extending that of an adjunction, with the extra data of a chosen inverse of the unit and counit morphisms. To mirror the design for usual equivalences of categories, we provide an alternative constructor that requires the forward and inverse direction of the equivalence, as well as unit and counits already as isomorphisms, and only a proof of the left triangle identity. Finally, we also provide a third constructor that builds such an equivalence out of the data of 3 component equivalences of categories, as well as chosen `CatCommSq` on the functors of the these equivalences. This notion of equivalence of categorical cospans is intended to encode the required data to show the full equivalence invariance of the categorical pullback defined in #26366. --- - [ ] depends on: #26578 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 438/0 | Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean | 1 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 26578 | robin-carlier | feat(CategoryTheory/Limits/Pullbacks/Categorical/CatCospanTransform): adjunctions of categorical cospans | We build upon the bicategory-like structure developed in #26447 and #26412 to define the notion of adjunctions of categorical cospans. This is a structure encoding the data of two `CatCospanTransform`s, along with the usual unit and counit morphisms as part of the data, satisfying the usual left and right triangle identities. We provide basic API for these, such as extracting adjunctions between individual components. We also provide a proof that the notion satisfies a "coherence": with our chosen constructor, the forward direction of the structure `CatCommSq` on the left adjoints correspond to the inverse of the square for the right adjoints through `mateEquiv`. These adjunctions will be used as a substrate for defining equivalences of categorical cospans in a future PR: such an equivalence will be a structure extending a `CatCospanAdjunction` with isomorphisms data on the unit and co-unit (we will however provide alternative constructors in sync with the constructor for equivalences of categories). --- - [x] depends on: #26447 - [x] depends on: #26547 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory large-import | 205/0 | Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean | 1 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 26115 | grunweg | WIP/proof of concept,feat: the inverse function theorem for manifolds | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry | 348/0 | Mathlib.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Geometry/Manifold/InverseFunctionTheorem.lean,Mathlib/Topology/PartialHomeomorph.lean | 4 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27634 | agjftucker | fix(Analysis/Calculus/Implicit): consistently rename {`map`, `fun`, `function`} to `fun` | There are several clear naming issues in the file Implicit.lean, such as ``` theorem prod_map_implicitFunction : ∀ᶠ p : F × G in 𝓝 (φ.prodFun φ.pt), φ.prodFun (φ.implicitFunction p.1 p.2) = p := ``` where `prod_map` and `prodFun` both refer to the same thing. In this PR I have done my best to resolve these as consistently as possible by renaming everything `map`, also everything `function`, to `fun`. This has the added benefit of making some long names a little shorter. In passing I rewrapped some comments and replaced `haveI` with `have` where it had been used like `haveI` in Lean 3. Moves: - ImplicitFunctionData -> ImplicitFunData - ImplicitFunctionData.implicitFunction -> ImplicitFunData.implicitFun - ImplicitFunctionData.prod_map_implicitFunction -> ImplicitFunData.prodFun_implicitFun - ImplicitFunctionData.left_map_implicitFunction -> ImplicitFunData.leftFun_implicitFun - ImplicitFunctionData.right_map_implicitFunction -> ImplicitFunData.rightFun_implicitFun - ImplicitFunctionData.implicitFunction_apply_image -> ImplicitFunData.implicitFun_apply_image - ImplicitFunctionData.implicitFunction_hasStrictFDerivAt -> ImplicitFunData.hasStrictFDerivAt_implicitFun - HasStrictFDerivAt.implicitFunctionDataOfComplemented -> HasStrictFDerivAt.implicitFunDataOfComplemented - HasStrictFDerivAt.implicitFunctionOfComplemented -> HasStrictFDerivAt.implicitFunOfComplemented - HasStrictFDerivAt.map_implicitFunctionOfComplemented_eq -> HasStrictFDerivAt.map_implicitFunOfComplemented_eq - HasStrictFDerivAt.eq_implicitFunctionOfComplemented -> HasStrictFDerivAt.eq_implicitFunOfComplemented - HasStrictFDerivAt.implicitFunctionOfComplemented_apply_image -> HasStrictFDerivAt.implicitFunOfComplemented_apply_image - HasStrictFDerivAt.to_implicitFunctionOfComplemented -> HasStrictFDerivAt.to_implicitFunOfComplemented - HasStrictFDerivAt.implicitFunction -> HasStrictFDerivAt.implicitFun - HasStrictFDerivAt.tendsto_implicitFunction -> HasStrictFDerivAt.tendsto_implicitFun - _root_.Filter.Tendsto.implicitFunction -> _root_.Filter.Tendsto.implicitFun - HasStrictFDerivAt.map_implicitFunction_eq -> HasStrictFDerivAt.map_implicitFun_eq - HasStrictFDerivAt.implicitFunction_apply_image -> HasStrictFDerivAt.implicitFun_apply_image - HasStrictFDerivAt.eq_implicitFunction -> HasStrictFDerivAt.eq_implicitFun - HasStrictFDerivAt.to_implicitFunction -> HasStrictFDerivAt.to_implicitFun --- - [ ] depends on: #26985 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-analysis | 271/123 | Mathlib/Analysis/Calculus/Implicit.lean,docs/1000.yaml,docs/overview.yaml,docs/undergrad.yaml | 4 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 194 days ago | 23 days |
| 28245 | robin-carlier | feat(CategoryTheory/Bicategory/NaturalTransformation/Icon): strict associativity and unitality of icon composition | We show that the vertical composition of icons defined in #28244 satisfies strict associativity and strict unitality. This morally shows that icons are fit as the 2-cells of a bicategory structure on bicategories and lax functors, though we do not record an instance of this sort. --- - [ ] depends on: #28244 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR t-category-theory awaiting-CI large-import merge-conflict | 975/33 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/EqToHom.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Icon.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Strict.lean,Mathlib/CategoryTheory/EqToHom.lean,scripts/noshake.json | 8 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 30079 | dagurtomas | feat(CategoryTheory): IsSheafFor as a multiequalizer condition | --- [](https://gitpod.io/from-referrer/) | WIP t-category-theory | 112/0 | Mathlib/CategoryTheory/Sites/Multifork.lean | 1 | 3 | ['chrisflav', 'github-actions', 'joelriou'] | nobody | 5 months ago | unknown | unknown |
| 29012 | grunweg | chore: reduce `Topology` imports in `Data` | Move Data.Real.Sqrt to Analysis. --- - [ ] depends on: #28966 [](https://gitpod.io/from-referrer/) | merge-conflict file-removed | 25/21 | Archive/Imo/Imo1959Q2.lean,Archive/Imo/Imo1960Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Archive/Sensitivity.lean,Mathlib.lean,Mathlib/Algebra/Star/CHSH.lean,Mathlib/Analysis/Complex/Norm.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Module/Ball/Homeomorph.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Analysis/Real/Sqrt.lean,Mathlib/Data/Rat/NatSqrt/Real.lean,Mathlib/Data/Real/CompleteField.lean,Mathlib/Data/Real/Irrational.lean,Mathlib/Data/Real/StarOrdered.lean,Mathlib/NumberTheory/Zsqrtd/ToReal.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/NormNum/RealSqrt.lean,MathlibTest/positivity.lean | 20 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 26601 | yuma-mizuno | feat(CategoryTheory): make `Functor.comp` irreducible | [#mathlib4 > Functor identity `𝟭 _ ⋙ F = F` is definitional equality](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Functor.20identity.20.60.F0.9D.9F.AD.20_.20.E2.8B.99.20F.20.3D.20F.60.20is.20definitional.20equality/with/523978659) --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 514/261 | Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean,Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean,Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/CatCommSq.lean,Mathlib/CategoryTheory/Category/Cat.lean,Mathlib/CategoryTheory/Category/RelCat.lean,Mathlib/CategoryTheory/Category/ULift.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Discrete/Basic.lean,Mathlib/CategoryTheory/EqToHom.lean,Mathlib/CategoryTheory/Equivalence.lean,Mathlib/CategoryTheory/Functor/Basic.lean,Mathlib/CategoryTheory/Functor/Category.lean,Mathlib/CategoryTheory/Functor/Const.lean,Mathlib/CategoryTheory/Functor/Currying.lean,Mathlib/CategoryTheory/Functor/CurryingThree.lean,Mathlib/CategoryTheory/Functor/FullyFaithful.lean,Mathlib/CategoryTheory/Functor/Functorial.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Basic.lean,Mathlib/CategoryTheory/Functor/TwoSquare.lean,Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean,Mathlib/CategoryTheory/Join/Basic.lean,Mathlib/CategoryTheory/Limits/Cones.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/ObjectProperty/FullSubcategory.lean,Mathlib/CategoryTheory/Opposites.lean,Mathlib/CategoryTheory/PathCategory/Basic.lean,Mathlib/CategoryTheory/Pi/Basic.lean,Mathlib/CategoryTheory/Products/Associator.lean,Mathlib/CategoryTheory/Products/Basic.lean,Mathlib/CategoryTheory/Quotient.lean,Mathlib/CategoryTheory/Sigma/Basic.lean,Mathlib/CategoryTheory/Whiskering.lean,Mathlib/CategoryTheory/Yoneda.lean | 34 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 23621 | astrainfinita | chore: deprecate `LinearOrderedComm{Monoid, Group}WithZero` | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #20676 | merge-conflict t-algebra t-order | 261/205 | Archive/Imo/Imo1998Q2.lean,Counterexamples/LinearOrderWithPosMulPosEqZero.lean,Mathlib/Algebra/Order/Field/Canonical.lean,Mathlib/Algebra/Order/Field/Rat.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Nonneg/Field.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/NNRat/Lemmas.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/GroupTheory/ArchimedeanDensely.lean,Mathlib/NumberTheory/EllipticDivisibilitySequence.lean,Mathlib/NumberTheory/FunctionField.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/RingTheory/Valuation/Archimedean.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/ExtendToLocalization.lean,Mathlib/RingTheory/Valuation/Integers.lean,Mathlib/RingTheory/Valuation/Integral.lean,Mathlib/RingTheory/Valuation/Minpoly.lean,Mathlib/RingTheory/Valuation/Quotient.lean,Mathlib/RingTheory/Valuation/RankOne.lean,Mathlib/RingTheory/Valuation/ValExtension.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean,Mathlib/Topology/UnitInterval.lean,MathlibTest/instance_diamonds.lean,scripts/noshake.json | 44 | 24 | ['YaelDillies', 'astrainfinita', 'github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | kbuzzard | 4 months ago | unknown | unknown |
| 28630 | Antidite | feat(Archive/Imo): right isosceles configuration in the complex plane | feat(Archive/Imo): right isosceles configuration in the complex plane This adds `Archive/Imo/Imo1975Q3.lean`, formalizing a triangle configuration with points A=0, B=1, C=z and auxiliary points R, P, Q built via complex rotations and sine-based scale factors. Main results: * `angle_and_distance`: ∠QRP = π/2 and dist Q R = dist R P. * Key identity `QRP_rot90`: (Q z).z − R.z = e^{iπ/2} · ((P z).z − R.z). Design/Style: * Minimal imports; module docstring; semantic lemma names; all definitions and theorems live under the namespace `IMO.TriangleConfig`. Moves: - (none) Deletions: - (none) --- [](https://gitpod.io/from-referrer/) | IMO awaiting-author new-contributor | 196/0 | Archive.lean,Archive/Imo/Imo1975Q3.lean | 2 | 36 | ['Antidite', 'LLaurance', 'github-actions', 'jsm28'] | jsm28 | 4 months ago | 150 days ago | 46 days |
| 30192 | erdOne | feat(RingTheory): valuative topology = adic topology for discrete rank 1 valuations | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-ring-theory t-topology | 190/2 | Mathlib.lean,Mathlib/Order/Filter/Bases/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Integers.lean,Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean | 6 | 3 | ['erdOne', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 26886 | pechersky | feat(NumberTheory/Padics/ValuativeRel): ValuativeRel ℚ_[p] | as well as instances for IsRankLeOne, IsNontrivial, IsDiscrete --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #26827 | WIP t-number-theory blocked-by-other-PR t-algebra merge-conflict t-analysis | 310/25 | Mathlib.lean,Mathlib/Analysis/Normed/ValuativeRel.lean,Mathlib/NumberTheory/Padics/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean | 4 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 4 months ago | unknown | unknown |
| 27314 | pechersky | feat(TopologyValued): `Valued` based on a range topology | Switch from a topology based on `fun γ : Γ₀ˣ => (v.ltAddSubgroup γ : AddSubgroup R)` to ``` fun rs : {rs : R × R // v rs.1 ≠ 0 ∧ v rs.2 ≠ 0} ↦ (v.ltAddSubgroup (Units.mk0 (v rs.val.2 / v rs.val.1) (by simp [rs.prop])) : AddSubgroup R) ``` This is in preparation for using `IsValuativeTopology` instead. In fact, that basis is precisely what `ValuativeTopology` asserts. `Valued.mk'` is kept, we do not yet rely on `IsValuativeTopology` and `UniformSpace`. The new `Valued` behaves the same way as it did before for `MulArchimedean` valuation codomains, which are all of the current in-mathlib uses of `Valued`. This is, for rank-one valuations. For valuations which rank one, but do not pass to the whole codomain, there are helper lemmas to discuss open/closed/clopen sets. --- [](https://gitpod.io/from-referrer/) - [x] depends on: #27264 - [x] depends on: #27265 - [ ] depends on: #27163 - [x] depends on: #27339 | merge-conflict t-topology blocked-by-other-PR | 733/259 | Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/NumberTheory/FunctionField.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Valuation/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean,Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean | 12 | 9 | ['github-actions', 'kckennylau', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 30135 | erdOne | feat(RingTheory): `ValuativeRel` on subrings | --- @pechersky do we want this? [](https://gitpod.io/from-referrer/) | awaiting-author t-ring-theory | 19/0 | Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean | 1 | 5 | ['erdOne', 'github-actions', 'pechersky'] | nobody | 4 months ago | 149 days ago | 3 days |
| 28328 | pechersky | chore(Topology/Valued): golf using local finite order of WithZeroTopology | have to juggle in a version of `mrangeRestrict` which works on valuations, and also juggle the scoped topology over the subtype topology --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #28325 | t-number-theory blocked-by-other-PR t-algebra large-import merge-conflict t-topology | 187/88 | Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean,Mathlib/Topology/Compactness/Compact.lean | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | 202 days ago | 14 minutes |
| 29926 | jcreinhold | feat(CategoryTheory/MarkovCategory): add basic finite stochastic matrices definitions to Markov category | This PR introduces FinStoch, the category of finite stochastic matrices, as a concrete example of a Markov category. This PR builds on #29925, #29939, and #29919 and was split up from #29657. ## Main additions ### 1. Core definitions (`FinStoch/Basic.lean`) - `StochasticMatrix m n`: Matrices where rows sum to 1, representing conditional probabilities P(j|i) - `FinStoch`: The category with finite types as objects and stochastic matrices as morphisms - `DetMorphism`: Deterministic matrices (exactly one 1 per row) with their underlying functions - Composition: Matrix multiplication preserves row-stochasticity via the Chapman-Kolmogorov equation Key design choices: - Row-stochastic convention: entry (i,j) is P(output=j | input=i) - Deterministic morphisms tracked separately for structural isomorphisms ### 2. Monoidal structure (`FinStoch/Monoidal.lean`) Implements tensor products modeling independent parallel processes: - Tensor on objects: Cartesian product of finite types - Tensor on morphisms: Kronecker product P((j₁,j₂)|(i₁,i₂)) = P(j₁|i₁) × P(j₂|i₂) - Structural morphisms: Associator, unitors use deterministic permutations - Coherence**: Pentagon and triangle identities verified computationally ## Mathematical significance FinStoch provides the canonical example of a Markov category: - Morphisms: Stochastic matrices/Markov chains - Composition: Chapman-Kolmogorov equation for multi-step transitions - Tensor: Independent parallel processes This models finite probability spaces categorically, where: - Objects represent sample spaces - Morphisms represent probabilistic transitions - Tensor products model independence ## References Fritz (2020) - [ ] depends on: #29925 | merge-conflict t-category-theory new-contributor | 1437/0 | Mathlib.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Basic.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Deterministic.lean,Mathlib/CategoryTheory/MarkovCategory/Basic.lean,Mathlib/CategoryTheory/MarkovCategory/Cartesian.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Basic.lean,Mathlib/CategoryTheory/MarkovCategory/FinStoch/Monoidal.lean,MathlibTest/CategoryTheory/MarkovCategory.lean,docs/references.bib | 9 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 16773 | arulandu | feat(Probability/Distributions): formalize Beta distribution | Formalize Beta distribution, using Gamma distribution as a reference. Added real-valued beta wrapper, in the manner of gamma. Thanks to @EtienneC30 for help with casting real <-> complex. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-measure-probability | 286/1 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean,Mathlib/Probability/Distributions/Beta.lean | 3 | 50 | ['EtienneC30', 'arulandu', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | arulandu | 4 months ago | unknown | unknown |
| 30359 | JLimperg | [Not a PR] Benchmark for Aesop RPINF precompilation | --- [](https://gitpod.io/from-referrer/) | merge-conflict file-removed | 5/3 | lake-manifest.json,lakefile.lean,scripts/bench/fake-root/lib/lean/libleanshared.so,scripts/bench/run | 4 | 5 | ['JLimperg', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 30351 | JLimperg | [Not a PR] Benchmark Aesop's lazy forward state construction | Testing the performance impact of an Aesop change. --- [](https://gitpod.io/from-referrer/) | merge-conflict dependency-bump | 3/3 | lake-manifest.json,lakefile.lean | 2 | 11 | ['JLimperg', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 30425 | JLimperg | [Not a PR] Benchmark Aesop with precompiled RPINF at instance transparency | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 5/3 | lake-manifest.json,lakefile.lean,scripts/bench/fake-root/lib/lean/libleanshared.so,scripts/bench/run | 4 | 3 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 4 months ago | unknown | unknown |
| 30438 | JLimperg | [Not a PR] Benchmark Aesop change that computes fewer RPINFs | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 5/3 | lake-manifest.json,lakefile.lean,scripts/bench/fake-root/lib/lean/libleanshared.so,scripts/bench/run | 4 | 5 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 4 months ago | unknown | unknown |
| 30440 | JLimperg | [Not a PR] Benchmark Aesop with no `hypTypes` in `ForwardState` and `instances` RPINF transparency | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 5/3 | lake-manifest.json,lakefile.lean,scripts/bench/fake-root/lib/lean/libleanshared.so,scripts/bench/run | 4 | 3 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 4 months ago | unknown | unknown |
| 30452 | JLimperg | [Not a PR] Benchmark Aesop with no `hypTypes` in `ForwardState`, RPINF at `instances` transparency and lazy forward state | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 5/3 | lake-manifest.json,lakefile.lean,scripts/bench/fake-root/lib/lean/libleanshared.so,scripts/bench/run | 4 | 3 | ['JLimperg', 'github-actions', 'leanprover-bot'] | nobody | 4 months ago | unknown | unknown |
| 26284 | plp127 | feat: faster implementation of `Nat.primeFactorsList` + `@[csimp]` lemma | Add a function `Nat.primeFactorsListFast` that `#eval`s faster, and a `@[csimp]` lemma `Nat.primeFactorsList_eq_primeFactorsListFast` that shows `Nat.primeFactorsList = Nat.primeFactorsListFast`. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data | 95/0 | Mathlib/Data/Nat/Factors.lean | 1 | 11 | ['b-mehta', 'github-actions', 'grunweg', 'plp127'] | b-mehta | 4 months ago | 143 days ago | 111 days |
| 27990 | kckennylau | feat(Counterexamples): a nontrivial valuation with discrete topology | This file constructs a valuation on `K[X]` satisfying `IsValuativeTopology K[X] ∧ Nonempty (valuation K[X]).RankOne ∧ IsNontrivial K[X] ∧ DiscreteTopology K[X]`, and proves that `IsValuativeTopology F ∧ IsNontrivial F ∧ DiscreteTopology F` is not possible if `F` is a field. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 172/0 | Counterexamples.lean,Counterexamples/DiscreteTopologyWithNontrivialValuation.lean | 2 | 14 | ['github-actions', 'grunweg', 'kckennylau', 'mathlib4-merge-conflict-bot', 'pechersky'] | nobody | 4 months ago | 142 days ago | 67 days |
| 28243 | robin-carlier | chore(CategoryTheory/Bicategory): move some `eqToHom` lemmas | The file `CategoryTheory/Bicategory/EqToHom.lean` introduced in #28242 is a more suitable hom for the lemmas `CategoryTheory.Bicategory.whiskerLeft_eqToHom` and `CategoryTheory.Bicategory.eqToHom_whiskerRight` than the current `CategoryTheory/Bicategory/Strict.lean`. We move these lemmas to the new file, and make `CategoryTheory/Bicategory/Strict` import these lemmas. --- - [x] depends on: #28242 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 165/23 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/EqToHom.lean,Mathlib/CategoryTheory/Bicategory/Strict.lean,Mathlib/CategoryTheory/EqToHom.lean,scripts/noshake.json | 5 | 9 | ['github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | nobody | 4 months ago | 152 days ago | 1 hour |
| 26561 | b-mehta | feat(LiminfLimsup): liminf of an antitone function is its supremum | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #26560 | help-wanted t-topology | 24/0 | Mathlib/Topology/Order/LiminfLimsup.lean | 1 | 4 | ['b-mehta', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 4 months ago | 240 days ago | 6 seconds |
| 21853 | smmercuri | feat: the adele ring of a number field is locally compact | --- - [ ] depends on: #21158 - [ ] depends on: #21847 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-number-theory large-import | 398/3 | Mathlib.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/NumberTheory/NumberField/AdeleRing.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean,Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean | 9 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 4 months ago | unknown | unknown |
| 26913 | Paul-Lez | feat(NumberTheory/{*}): add a few lemmas about number field and cyclotomic extensions | The motivation for this PR is that the main statement in [this PR](https://github.com/google-deepmind/formal-conjectures/pull/297) shouldn't need to assume `p` has type `PNat` for the instances to work. This is still WIP as I need to clean up (currently waiting on the build!) --- [](https://gitpod.io/from-referrer/) | WIP t-number-theory t-algebra awaiting-CI merge-conflict | 52/0 | Mathlib/NumberTheory/ClassNumber/Temporary.lean,Mathlib/NumberTheory/Cyclotomic/Basic.lean,Mathlib/NumberTheory/Cyclotomic/Embeddings.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean | 4 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 27302 | tristan-f-r | feat(Fintype/Quotient): finLiftOn₂ | The combination of [`Quotient.finLiftOn`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Fintype/Quotient.html#Quotient.finLiftOn) and [`liftOn₂`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Quotient.liftOn%E2%82%82). --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data | 19/0 | Mathlib/Data/Fintype/Quotient.lean | 1 | 12 | ['github-actions', 'kckennylau', 'pechersky', 'tristan-f-r', 'vihdzp'] | pechersky | 4 months ago | 139 days ago | 5 days |
| 28925 | 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! [](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 | 4 months ago | unknown | unknown |
| 29432 | lecopivo | feat: `data_synth` tactic to prove `HasFDerivAt 𝕜 f ?f' x` and similar | New tactic `data_synth` that can prove proposition with holes e.g. figure out what `?f'` is and prove `HasFDerivAt 𝕜 f ?f' x` --- Tactic `data_synth` is designed to synthesize some data that satisfies some proposition. The canonical example is `HasFDerivAt 𝕜 f ?f' x`, this tactic will figure out `f'` and provide proof of `HasFDerivAt 𝕜 f f' x`. Another examples: `HasBoundinbBall s ?center ?radius` or `IsPolynomial f ?p` ``` def HasBoundingBall (s : Set α) (center : α) (radius : ℝ) : Prop := s ⊆ Metric.closedBall center radius def IsPolynomial (f : R → R) (p : Polynomial R) := f = p.eval ``` | WIP t-meta | 1932/0 | Mathlib/Tactic/DataSynth.lean,Mathlib/Tactic/DataSynth/Attr.lean,Mathlib/Tactic/DataSynth/Core.lean,Mathlib/Tactic/DataSynth/Decl.lean,Mathlib/Tactic/DataSynth/Elab.lean,Mathlib/Tactic/DataSynth/FDeriv.lean,Mathlib/Tactic/DataSynth/FDeriv/Basic.lean,Mathlib/Tactic/DataSynth/FDeriv/Dispatch.lean,Mathlib/Tactic/DataSynth/FDeriv/Init.lean,Mathlib/Tactic/DataSynth/FDeriv/Simproc.lean,Mathlib/Tactic/DataSynth/Tests/BoundingBall.lean,Mathlib/Tactic/DataSynth/Tests/Compilation.lean,Mathlib/Tactic/DataSynth/Tests/FDeriv.lean,Mathlib/Tactic/DataSynth/Tests/FDerivInit.lean,Mathlib/Tactic/DataSynth/Tests/FwdDeriv.lean,Mathlib/Tactic/DataSynth/Tests/Normalize.lean,Mathlib/Tactic/DataSynth/Tests/Polynomial.lean,Mathlib/Tactic/DataSynth/Theorems.lean,Mathlib/Tactic/DataSynth/ToBatteries.lean,Mathlib/Tactic/DataSynth/Types.lean | 20 | 3 | ['JovanGerb', 'github-actions', 'lecopivo'] | nobody | 4 months ago | unknown | unknown |
| 29855 | eric-wieser | chore(Data/Finset/Sort): lemmas about `0 : Fin _` and `Fin.last _` | We already had these for `⟨0, ⋯⟩` and `⟨k - 1, ⋯⟩`. Moves: - `Finset.orderEmbOfFin_zero` -> `Finset.orderEmbOfFin_mk_zero` - `Finset.orderEmbOfFin_last` -> `Finset.orderEmbOfFin_mk_last` --- [](https://gitpod.io/from-referrer/) | t-data t-order delegated easy | 17/7 | Mathlib/Combinatorics/Enumerative/Composition.lean,Mathlib/Data/Finset/Sort.lean | 2 | 4 | ['eric-wieser', 'github-actions', 'mathlib-bors', 'ocfnash'] | nobody | 4 months ago | 159 days ago | 3 days |
| 19616 | adamtopaz | fix: fix the definition of the absolute Galois group of a field | Previously it was defined as the Galois group of the algebraic closure, as opposed to the separable closure. Also, this adds some missing instances for this group. Still missing is compactness, but that seems like a bigger project. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-number-theory | 23/8 | Mathlib/FieldTheory/AbsoluteGaloisGroup.lean,Mathlib/FieldTheory/KrullTopology.lean | 2 | 4 | ['acmepjz', 'alreadydone', 'github-actions'] | nobody | 4 months ago | unknown | unknown |
| 28826 | alreadydone | feat(CategoryTheory): Additive and Linear when Hom types are only monoids | + introduce Presemiadditive categories, which generalizes Preadditive categories: the Hom sets are commutative monoids rather than groups, and `comp_zero` and `zero_comp` is no longer automatic. The new file Preadditive/Semi.lean is adapted from Preadditive/Basic.lean, though many contents can't be generalized. + generalize Functor.Additive and Functor.Linear to take Presemiadditive categories instead. The former needs a `map_zero` field since it's not automatic for Presemiadditive categories. + introduce SemimoduleCat, the category of semimodules (mathlib's Module) over a Semiring. The new file ModuleCat/Semi.lean is copied from ModuleCat/Basic.lean. TODOs: additive/linear equivalence between SemimoduleCat and ModuleCat and use it to transfer results; monoidal structure on SemimoduleCat; change `CommRing.Pic` to use SemimoduleCat. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory awaiting-CI | 978/123 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Semi.lean,Mathlib/Algebra/Category/MonCat/Presemiadditive.lean,Mathlib/CategoryTheory/Linear/Basic.lean,Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean,Mathlib/CategoryTheory/Preadditive/Basic.lean,Mathlib/CategoryTheory/Preadditive/Biproducts.lean,Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean,Mathlib/CategoryTheory/Preadditive/Semi.lean | 9 | 4 | ['alreadydone', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] | nobody | 4 months ago | unknown | unknown |
| 16428 | astrainfinita | test use `QuotLike` APIs | --- - [ ] depends on: #16421 [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 1501/564 | Mathlib.lean,Mathlib/Algebra/Associated/Basic.lean,Mathlib/Algebra/BigOperators/Associated.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/Order/CauSeq/Completion.lean,Mathlib/Algebra/Quandle.lean,Mathlib/CategoryTheory/IsomorphismClasses.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean,Mathlib/CategoryTheory/Skeletal.lean,Mathlib/Data/Finmap.lean,Mathlib/Data/Fintype/Quotient.lean,Mathlib/Data/Multiset/Basic.lean,Mathlib/Data/Multiset/Functor.lean,Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean,Mathlib/Data/QPF/Univariate/Basic.lean,Mathlib/Data/Quot.lean,Mathlib/Data/QuotLike.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Coset/Basic.lean,Mathlib/GroupTheory/Coset/Defs.lean,Mathlib/GroupTheory/GroupAction/Basic.lean,Mathlib/GroupTheory/GroupAction/ConjAct.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/GroupTheory/Subgroup/Center.lean,Mathlib/LinearAlgebra/Quotient/Basic.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/SetTheory/Game/Basic.lean,Mathlib/SetTheory/Lists.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/Topology/Inseparable.lean,test/QuotLike.lean | 43 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 4 months ago | unknown | unknown |
| 16210 | astrainfinita | Clean up quotient APIs | ~~We may migrate to `Quot` and `IsEquiv` APIs in the future, but it might be a good start to clean up `Quotient` APIs anyway.~~ The diffs in this PR did not include `QuotLike` APIs, but eventually I decided to migrate to `QuotLike` before deprecating some old APIs. This is because some lemmas don't have alternatives that don't use `· ≈ ·`, and the alternatives that use `· ≈ ·` are in the core. See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/.60.28.C2.B7.20.E2.89.88.20.C2.B7.29.60.20in.20.60Quotient.60.20APIs/near/466970386). --- - [x] depends on: #16254 - [x] depends on: #16256 - [x] depends on: #16258 - [x] depends on: #16260 - [x] depends on: #16264 - [x] depends on: #16267 - [ ] depends on: #16314 - [x] depends on: #16410 - [x] depends on: #17588 - [x] depends on: #17594 - [x] depends on: #17940 - [ ] depends on: #17941 --- `QuotLike` - [ ] depends on: #16421 - [ ] depends on: #16428 --- [remaining diffs](https://github.com/leanprover-community/mathlib4/compare/FR_quot_now..FR_quot) [](https://gitpod.io/from-referrer/) | merge-conflict tech debt blocked-by-other-PR t-data | 1015/1114 | Counterexamples/CliffordAlgebraNotInjective.lean,Mathlib/Algebra/Associated/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset.lean,Mathlib/Algebra/CharZero/Quotient.lean,Mathlib/Algebra/DirectLimit.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Lie/Free.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/Module/Zlattice/Basic.lean,Mathlib/Algebra/Order/CauSeq/Completion.lean,Mathlib/Algebra/Periodic.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/Analysis/Normed/Group/Quotient.lean,Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean,Mathlib/CategoryTheory/ConnectedComponents.lean,Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean,Mathlib/CategoryTheory/Limits/Types.lean,Mathlib/CategoryTheory/Skeletal.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/CategoryTheory/Subobject/FactorThru.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Combinatorics/Quiver/ConnectedComponent.lean,Mathlib/Combinatorics/SimpleGraph/Path.lean,Mathlib/Computability/Reduce.lean,Mathlib/Computability/TuringMachine.lean,Mathlib/Data/Countable/Defs.lean,Mathlib/Data/FinEnum.lean,Mathlib/Data/Finite/Basic.lean,Mathlib/Data/Fintype/Basic.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Data/Fintype/Quotient.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/Multiset/Basic.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/Data/Setoid/Partition.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/FieldTheory/SplittingField/Construction.lean,Mathlib/GroupTheory/Abelianization.lean,Mathlib/GroupTheory/Commensurable.lean,Mathlib/GroupTheory/CommutingProbability.lean,Mathlib/GroupTheory/Complement.lean,Mathlib/GroupTheory/Congruence/Basic.lean,Mathlib/GroupTheory/Coprod/Basic.lean,Mathlib/GroupTheory/Coset/Basic.lean,Mathlib/GroupTheory/DoubleCoset.lean,Mathlib/GroupTheory/FreeAbelianGroup.lean,Mathlib/GroupTheory/GroupAction/Basic.lean,Mathlib/GroupTheory/GroupAction/ConjAct.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/PGroup.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/GroupTheory/SchurZassenhaus.lean,Mathlib/GroupTheory/Sylow.lean,Mathlib/GroupTheory/Transfer.lean,Mathlib/LinearAlgebra/Alternating/DomCoprod.lean,Mathlib/LinearAlgebra/Dimension/Constructions.lean,Mathlib/LinearAlgebra/InvariantBasisNumber.lean,Mathlib/LinearAlgebra/Isomorphisms.lean,Mathlib/LinearAlgebra/Projectivization/Basic.lean,Mathlib/LinearAlgebra/Quotient.lean,Mathlib/LinearAlgebra/QuotientPi.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Group/FundamentalDomain.lean,Mathlib/MeasureTheory/MeasurableSpace/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/Quotient.lean,Mathlib/ModelTheory/DirectLimit.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/Ultraproducts.lean,Mathlib/NumberTheory/NumberField/Embeddings.lean,Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/RamificationInertia.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Category/PartOrd.lean,Mathlib/Order/Filter/Germ/Basic.lean,Mathlib/Order/Partition/Finpartition.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Congruence/Basic.lean,Mathlib/RingTheory/Flat/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean | 134 | 6 | ['astrainfinita', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] | nobody | 4 months ago | unknown | unknown |
| 30642 | thorimur | bench: lean4#10832 | merge-conflict large-import | 507/460 | .github/workflows/nightly-docgen.yml,Cache/IO.lean,Mathlib.lean,Mathlib/Algebra/Algebra/StrictPositivity.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,Mathlib/Computability/DFA.lean,Mathlib/Computability/RegularExpressions.lean,Mathlib/Control/Monad/Cont.lean,Mathlib/Data/Finset/Attach.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Empty.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Fintype/EquivFin.lean,Mathlib/Data/Int/LeastGreatest.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Flatten.lean,Mathlib/Data/List/SplitOn.lean,Mathlib/Data/List/Triplewise.lean,Mathlib/Data/Multiset/ZeroCons.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Data/String/Basic.lean,Mathlib/Data/String/Defs.lean,Mathlib/Data/String/Lemmas.lean,Mathlib/Lean/Elab/InfoTree.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean,Mathlib/Order/CompleteLattice/MulticoequalizerDiagram.lean,Mathlib/SetTheory/PGame/Basic.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/DeclarationNames.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linter/CommandStart.lean,Mathlib/Tactic/Linter/DocString.lean,Mathlib/Tactic/Linter/Header.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Says.lean,Mathlib/Tactic/SuccessIfFailWithMsg.lean,Mathlib/Tactic/ToAdditive/Frontend.lean,Mathlib/Tactic/ToAdditive/GuessName.lean,Mathlib/Tactic/ToExpr.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Widget/Conv.lean,Mathlib/Tactic/Widget/GCongr.lean,Mathlib/Tactic/Widget/InteractiveUnfold.lean,Mathlib/Tactic/Widget/LibraryRewrite.lean,Mathlib/Tactic/Widget/SelectPanelUtils.lean,Mathlib/Util/CompileInductive.lean,Mathlib/Util/Superscript.lean,MathlibTest/CalcQuestionMark.lean,MathlibTest/Change.lean,MathlibTest/DeprecateTo.lean,MathlibTest/FieldSimp.lean,MathlibTest/FindSyntax.lean,MathlibTest/LibraryRewrite.lean,MathlibTest/LibrarySearch/basic.lean,MathlibTest/LibrarySearch/mathlib.lean,MathlibTest/LibrarySearch/observe.lean,MathlibTest/Simps.lean,MathlibTest/Subsingleton.lean,MathlibTest/Use.lean,MathlibTest/Util/PrintSorries.lean,MathlibTest/Variable.lean,MathlibTest/fast_instance.lean,MathlibTest/grind/pairwise_disjoint.lean,MathlibTest/hint.lean,MathlibTest/propose.lean,MathlibTest/rewrites.lean,MathlibTest/ring.lean,MathlibTest/says.lean,MathlibTest/says_whitespace.lean,MathlibTest/success_if_fail_with_msg.lean,MathlibTest/toAdditive.lean,lake-manifest.json,lakefile.lean,lean-toolchain,scripts/check-yaml.lean,scripts/noshake.json | 92 | 4 | ['github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot', 'thorimur'] | nobody | 4 months ago | unknown | unknown | |
| 30643 | thorimur | bench: before lean4#10832 | merge-conflict large-import | 507/460 | .github/workflows/nightly-docgen.yml,Cache/IO.lean,Mathlib.lean,Mathlib/Algebra/Algebra/StrictPositivity.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,Mathlib/Computability/DFA.lean,Mathlib/Computability/RegularExpressions.lean,Mathlib/Control/Monad/Cont.lean,Mathlib/Data/Finset/Attach.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Empty.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Fintype/EquivFin.lean,Mathlib/Data/Int/LeastGreatest.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Flatten.lean,Mathlib/Data/List/SplitOn.lean,Mathlib/Data/List/Triplewise.lean,Mathlib/Data/Multiset/ZeroCons.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Data/String/Basic.lean,Mathlib/Data/String/Defs.lean,Mathlib/Data/String/Lemmas.lean,Mathlib/Lean/Elab/InfoTree.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean,Mathlib/Order/CompleteLattice/MulticoequalizerDiagram.lean,Mathlib/SetTheory/PGame/Basic.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/DeclarationNames.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linter/CommandStart.lean,Mathlib/Tactic/Linter/DocString.lean,Mathlib/Tactic/Linter/Header.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Says.lean,Mathlib/Tactic/SuccessIfFailWithMsg.lean,Mathlib/Tactic/ToAdditive/Frontend.lean,Mathlib/Tactic/ToAdditive/GuessName.lean,Mathlib/Tactic/ToExpr.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Widget/Conv.lean,Mathlib/Tactic/Widget/GCongr.lean,Mathlib/Tactic/Widget/InteractiveUnfold.lean,Mathlib/Tactic/Widget/LibraryRewrite.lean,Mathlib/Tactic/Widget/SelectPanelUtils.lean,Mathlib/Util/CompileInductive.lean,Mathlib/Util/Superscript.lean,MathlibTest/CalcQuestionMark.lean,MathlibTest/Change.lean,MathlibTest/DeprecateTo.lean,MathlibTest/FieldSimp.lean,MathlibTest/FindSyntax.lean,MathlibTest/LibraryRewrite.lean,MathlibTest/LibrarySearch/basic.lean,MathlibTest/LibrarySearch/mathlib.lean,MathlibTest/LibrarySearch/observe.lean,MathlibTest/Simps.lean,MathlibTest/Subsingleton.lean,MathlibTest/Use.lean,MathlibTest/Util/PrintSorries.lean,MathlibTest/Variable.lean,MathlibTest/fast_instance.lean,MathlibTest/grind/pairwise_disjoint.lean,MathlibTest/hint.lean,MathlibTest/propose.lean,MathlibTest/rewrites.lean,MathlibTest/ring.lean,MathlibTest/says.lean,MathlibTest/says_whitespace.lean,MathlibTest/success_if_fail_with_msg.lean,MathlibTest/toAdditive.lean,lake-manifest.json,lakefile.lean,lean-toolchain,scripts/check-yaml.lean,scripts/noshake.json | 92 | 4 | ['github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot', 'thorimur'] | nobody | 4 months ago | unknown | unknown | |
| 30460 | janithamalith | feat(Nat): add lemma nat_card_orbit_mul_card_stabilizer_eq_card_group | Added a lemma `nat_card_orbit_mul_card_stabilizer_eq_card_group` which is the Nat.card version of MulAction.card_orbit_mul_card_stabilizer_eq_card_group --- [](https://gitpod.io/from-referrer/) | awaiting-author t-group-theory new-contributor | 6/0 | Mathlib/GroupTheory/GroupAction/CardCommute.lean | 1 | 17 | ['github-actions', 'kckennylau', 'plp127', 'tb65536'] | tb65536 | 4 months ago | 134 days ago | 8 days |
| 30209 | Ruben-VandeVelde | feat: some TwoSidedIdeal.span lemmas | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-ring-theory FLT | 16/0 | Mathlib/RingTheory/TwoSidedIdeal/Operations.lean | 1 | 2 | ['erdOne', 'github-actions'] | erdOne | 4 months ago | 133 days ago | 17 days |
| 25225 | xcloudyunx | feat(Combinatorics/SimpleGraph): Eulerian walk in connected graph contains all vertices | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-combinatorics new-contributor | 16/0 | Mathlib/Combinatorics/SimpleGraph/Trails.lean | 1 | 6 | ['IvanRenison', 'github-actions', 'vlad902'] | kmill | 4 months ago | unknown | unknown |
| 27206 | grhkm21 | feat(CategoryTheory/Adjunction): partial adjoints are adjoints | Partial adjunctions `F.partial{Left,Right}Adjunction` are adjunctions when fully defined i.e. `F.{left,right}AdjointObjIsDefined = ⊤`. | awaiting-author t-category-theory | 48/2 | Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean | 1 | 1 | ['github-actions'] | nobody | 4 months ago | unknown | unknown |
| 27196 | YaelDillies | refactor(Polynomial/Bivariate): swap `X` and `Y` for improved notation | This way, `X` keeps on being `X`. From Toric --- [](https://gitpod.io/from-referrer/) | WIP t-algebra toric | 3/3 | Mathlib/Algebra/Polynomial/Bivariate.lean | 1 | 7 | ['YaelDillies', 'alreadydone', 'github-actions', 'kckennylau'] | nobody | 4 months ago | unknown | unknown |
| 24532 | robertmaxton42 | feat(LinearAlgebra/FreeProduct): fill out the `FreeProduct.asPowers` namespace | * Replicate the existing API for `LinearAlgebra.FreeProduct` under `FreeProduct.asPowers`, for convenience when working primarily with the power algebra representation * Adds convenience lemmas for using the corresponding quotient relation `rel'` (used in the above). --- - [x] depends on: #24531 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 122/5 | Mathlib/LinearAlgebra/FreeProduct/Basic.lean | 1 | 26 | ['YaelDillies', 'adomani', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robertmaxton42'] | nobody | 4 months ago | unknown | unknown |
| 27683 | dupuisf | feat: grind tags for set operations | This PR adds `grind` tags for various set operations (union, intersection, complement, etc). --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 29/9 | Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Operations.lean | 2 | 5 | ['dupuisf', 'euprunin', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 30828 | DeVilhena-Paulo | feat: implementation of `Finmap.merge` | The main contribution of this pull request is the implementation of a `merge` function for finite maps (`Finmap`). The construction relies on the definition of a `merge` function for association lists (`AList`). There is also a side (unrelated) contribution on `Mathlib/Data/List/Permutation.lean`: the addition of a theorem about the permutation of a list with a head element (that is, a list of the form `a :: l`). --- [](https://gitpod.io/from-referrer/) | t-data new-contributor | 449/3 | Mathlib/Data/Finmap.lean,Mathlib/Data/List/AList.lean,Mathlib/Data/List/Permutation.lean,Mathlib/Data/List/Sigma.lean | 4 | 1 | ['github-actions'] | nobody | 4 months ago | unknown | unknown |
| 25978 | Bergschaf | feat(Order/Sublocale): Open Sublocales | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #25089 | merge-conflict t-order | 377/8 | Mathlib.lean,Mathlib/Order/Hom/Lattice.lean,Mathlib/Order/Nucleus.lean,Mathlib/Order/Sublocale.lean,Mathlib/Order/Synonym.lean,docs/references.bib | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | 203 days ago | 22 minutes |
| 29355 | girving | feat(Trigonometric): Taylor series bounds for sin and cos | Zulip discussion here: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Better.20.60Real.2Esin.60.20bounds/near/535035576 We also include the full set of intervals on which sin and cos are monotone/antitone. --- Questions to resolve as part of review: 1. I've left the `Finset.sum_range_even` in the new `SeriesBounds` file, but presumably it should go somewhere else (unless you want me to inline it, but that seems worse). 2. Is putting the new Taylor series bounds in a new `SeriesBounds` file right, or should it go in the current `Bounds.lean` file? When I started writing the PR I thought the new bounds would need more imports via more analysis, but it turns out the only new import needed would be `Mathlib.Algebra.BigOperators.Field` which seems lightweight. I am happy with whatever the preference is in terms of file structure. [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 158/0 | Mathlib.lean,Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/SeriesBounds.lean | 4 | 28 | ['Parcly-Taxel', 'Ruben-VandeVelde', 'adomani', 'girving', 'github-actions', 'llllvvuu', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 4 months ago | 179 days ago | 20 hours |
| 28298 | thorimur | chore: dedent `to_additive` docstrings | This PR uses automation to dedent `to_additive` docstrings throughout Mathlib. It does not lint against indentation or in any way enforce indentation standards for future docstrings. The convention was chosen in accordance with the discussion and polls at [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Poll.3A.20Indentation.20style.20for.20.60to_additive.60.20docstrings/with/534285603). --- [](https://gitpod.io/from-referrer/) | merge-conflict documentation awaiting-author | 949/949 | Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Lemmas.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean,Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Algebra/Category/Grp/Basic.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/Grp/Limits.lean,Mathlib/Algebra/Category/Grp/Ulift.lean,Mathlib/Algebra/Category/MonCat/Basic.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/Algebra/Category/MonCat/Limits.lean,Mathlib/Algebra/Category/Semigrp/Basic.lean,Mathlib/Algebra/Free.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/Pi.lean,Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Embedding.lean,Mathlib/Algebra/Group/Equiv/Basic.lean,Mathlib/Algebra/Group/Equiv/Defs.lean,Mathlib/Algebra/Group/Equiv/Opposite.lean,Mathlib/Algebra/Group/Even.lean,Mathlib/Algebra/Group/Hom/Basic.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Hom/Instances.lean,Mathlib/Algebra/Group/Indicator.lean,Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/Group/Pi/Units.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Subgroup/Lattice.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/Algebra/Group/Submonoid/Basic.lean,Mathlib/Algebra/Group/Submonoid/BigOperators.lean,Mathlib/Algebra/Group/Submonoid/Defs.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/Subsemigroup/Basic.lean,Mathlib/Algebra/Group/Subsemigroup/Operations.lean,Mathlib/Algebra/Group/UniqueProds/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/Group/Units/Equiv.lean,Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/Algebra/Group/Units/Opposite.lean,Mathlib/Algebra/Notation/Pi/Basic.lean,Mathlib/Algebra/Opposites.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/Group/Abs.lean,Mathlib/Algebra/Order/Group/Basic.lean,Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Group/OrderIso.lean,Mathlib/Algebra/Order/Group/Units.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Monoid/Basic.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Submonoid.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Monoid/Units.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Regular/Defs.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/Data/Finset/NoncommProd.lean,Mathlib/Data/Fintype/BigOperators.lean,Mathlib/Data/Set/MulAntidiagonal.lean,Mathlib/Data/Set/SMulAntidiagonal.lean,Mathlib/Data/Vector/Basic.lean,Mathlib/Dynamics/Ergodic/Action/OfMinimal.lean,Mathlib/Dynamics/FixedPoints/Prufer.lean,Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean,Mathlib/GroupTheory/Complement.lean,Mathlib/GroupTheory/Congruence/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Coprod/Basic.lean,Mathlib/GroupTheory/Coset/Basic.lean,Mathlib/GroupTheory/Divisible.lean,Mathlib/GroupTheory/EckmannHilton.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/FreeGroup/Reduce.lean,Mathlib/GroupTheory/GroupAction/Basic.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/FixedPoints.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/GroupTheory/GroupAction/Primitive.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/GroupAction/SubMulAction.lean | 141 | 11 | ['eric-wieser', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'thorimur'] | nobody | 4 months ago | 202 days ago | 11 hours |
| 28737 | astrainfinita | refactor: deprecate `MulEquivClass` | This PR continues the work from #18806. Original PR: https://github.com/leanprover-community/mathlib4/pull/18806 | merge-conflict awaiting-author t-algebra | 67/77 | Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Group/Equiv/Basic.lean,Mathlib/Algebra/Group/Equiv/Defs.lean,Mathlib/Algebra/Group/Irreducible/Lemmas.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/Units/Equiv.lean,Mathlib/Algebra/GroupWithZero/Equiv.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Prime/Lemmas.lean,Mathlib/Algebra/Ring/Divisibility/Basic.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/Star/MonoidHom.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean,Mathlib/GroupTheory/GroupExtension/Defs.lean,Mathlib/GroupTheory/Submonoid/Center.lean,Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/Multiplicity.lean,Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean,Mathlib/Topology/Algebra/ContinuousMonoidHom.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean | 26 | 20 | ['Vierkantor', 'alreadydone', 'astrainfinita', 'github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] | Vierkantor | 4 months ago | 190 days ago | 2 days |
| 28676 | sun123zxy | feat(NumberTheory/ArithmeticFunction): wrap `Nat.totient` as an `ArithmeticFunction` | This wraps the Euler's totient function `Nat.totient` into a new `ArithmeticFunction` `ϕ`, with some basic identities such as `ϕ * ζ = id` and `μ * id = ϕ.` --- We use the notation `ϕ` to distinguish from `Nat.totient`'s notation `φ`, however this might be controversial. Suggestions are welcome! [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor large-import merge-conflict awaiting-author | 45/5 | Mathlib/NumberTheory/ArithmeticFunction.lean | 1 | 19 | ['MichaelStollBayreuth', 'SnirBroshi', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'sun123zxy'] | MichaelStollBayreuth | 4 months ago | 142 days ago | 47 days |
| 30299 | franv314 | feat(Topology/Instances): Cantor set | Prove that the Cantor set has empty interior and the cardinality of the continuum as discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/A.20few.20results.20about.20the.20Cantor.20set/with/543560670) Moves: - Mathlib.Topology.Instances.CantorSet -> Mathlib.Topology.Instances.CantorSet.Basic --- [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict file-removed awaiting-author t-topology | 355/2 | Mathlib.lean,Mathlib/Topology/Instances/CantorSet/Basic.lean,Mathlib/Topology/Instances/CantorSet/Cardinality.lean,Mathlib/Topology/Instances/CantorSet/Lemmas.lean | 4 | 5 | ['github-actions', 'grunweg', 'kckennylau', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | 147 days ago | 9 minutes |
| 30303 | franv314 | chore(Topology/Instances): add deprecated module | Add deprecated module to moved Cantor set file. --- - [ ] depends on: #30299 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor | 486/124 | Mathlib.lean,Mathlib/Topology/Instances/CantorSet.lean,Mathlib/Topology/Instances/CantorSet/Basic.lean,Mathlib/Topology/Instances/CantorSet/Cardinality.lean,Mathlib/Topology/Instances/CantorSet/Lemmas.lean | 5 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | 147 days ago | 8 seconds |
| 30575 | urkud | feat: lemmas about `_ • _` on Filters | as well as `Set.Finite.f?derivWithin_eq`. I wrote these lemmas for #24019, but the final version of that PR doesn't need them. I moved them here so that I don't forget to prepare a non-draft PR with these lemmas. --- [](https://gitpod.io/from-referrer/) | t-topology | 51/0 | Mathlib/Topology/TODO.lean | 1 | 3 | ['github-actions', 'plp127', 'urkud'] | nobody | 4 months ago | unknown | unknown |
| 27976 | smmercuri | feat: `ramificationIdx` for `NumberField.InfinitePlace` | This PR continues the work from #24884. Original PR: https://github.com/leanprover-community/mathlib4/pull/24884 | merge-conflict WIP t-number-theory | 22/0 | Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 26357 | javra | feat(CategoryTheory): linear categories as `ModuleCat R`-enriched categories | Continues #23826. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory large-import | 197/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/CategoryTheory/Enriched/Linear.lean,Mathlib/CategoryTheory/Linear/Basic.lean,Mathlib/CategoryTheory/Monoidal/Linear.lean | 5 | 10 | ['adamtopaz', 'github-actions', 'javra', 'mathlib4-merge-conflict-bot'] | adamtopaz | 4 months ago | 168 days ago | 15 days |
| 26085 | grunweg | feat: disjoint unions distribute with products of manifolds | This PR continues the work from #22611. Original PR: https://github.com/leanprover-community/mathlib4/pull/22611 | please-adopt WIP t-differential-geometry merge-conflict | 75/6 | Mathlib/Geometry/Manifold/Diffeomorph.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean | 2 | 3 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 27180 | ADedecker | feat: quotient of a monoid with zero by a multiplicative congruence | --- My motivation is getting a more conceptual construction of [ValuativeRel.ValueGroupWithZero](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Valuation/ValuativeRel.html#ValuativeRel.ValueGroupWithZero), but I think this is of independent interest. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra delegated | 141/26 | Mathlib.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/GroupWithZero.lean | 5 | 32 | ['ADedecker', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mathlib4-merge-conflict-bot', 'ocfnash'] | ocfnash | 4 months ago | 202 days ago | 27 days |
| 29570 | eric-wieser | fix: substitute infotrees in linters | I don't know whether this is necessary in these particular cases, but I've seen places where it is. There are a handful more of these cases in Batteries. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 2/2 | Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/TacticAnalysis.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 30790 | urkud | chore: partially migrate from `ContinuousMap.continuous` | ... to `map_continuous` or `by fun_prop`. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 37/45 | Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean,Mathlib/Analysis/Complex/Circle.lean,Mathlib/Analysis/Fourier/AddCircleMulti.lean,Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Condensed/TopCatAdjunction.lean,Mathlib/Condensed/TopComparison.lean,Mathlib/Dynamics/Ergodic/Action/OfMinimal.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean,Mathlib/Topology/Category/CompHausLike/Limits.lean,Mathlib/Topology/Compactification/OnePoint/Basic.lean,Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean,Mathlib/Topology/ContinuousMap/CompactlySupported.lean,Mathlib/Topology/ContinuousMap/Units.lean,Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean,Mathlib/Topology/LocallyConstant/Basic.lean,Mathlib/Topology/PartitionOfUnity.lean,Mathlib/Topology/Sets/Opens.lean,Mathlib/Topology/TietzeExtension.lean,Mathlib/Topology/UniformSpace/CompactConvergence.lean,Mathlib/Topology/UniformSpace/Dini.lean,Mathlib/Topology/UrysohnsLemma.lean | 24 | 6 | ['erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 4 months ago | unknown | unknown |
| 30408 | kckennylau | feat(RingTheory): more algebra instances for HomogeneousLocalization and linear constructors | This PR introduces the instance `Algebra R₀ (HomogeneousLocalization 𝒜 x)` as well as two linear constructors `mkₗ` and `Away.mkₗ` that fix the denominator. Zulip discussion: [#mathlib4 > Some algebra instance for graded algebra and homog loc](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Some.20algebra.20instance.20for.20graded.20algebra.20and.20homog.20loc/with/544178649) --- Split from #26061. [](https://gitpod.io/from-referrer/) | t-ring-theory | 65/20 | Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean | 1 | 5 | ['github-actions', 'mariainesdff'] | mariainesdff | 4 months ago | 126 days ago | 17 days |
| 30631 | ADedecker | refactor: evaluation of power series in semirings | --- [](https://gitpod.io/from-referrer/) | 665/71 | Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/RingTheory/MvPowerSeries/EvaluationSemi.lean,Mathlib/Topology/Algebra/LinearTopology.lean,Mathlib/Topology/Algebra/LinearUniformity.lean,Mathlib/Topology/Algebra/TopologicallyNilpotent.lean | 5 | 1 | ['github-actions'] | nobody | 4 months ago | unknown | unknown | |
| 29871 | zach1502 | feat(Matrix/Transvection): Gauss pivot determinant identity and pivot preservation | This PR adds two lemmas formalizing standard Gaussian pivot identities: * `Matrix.Transvection.listTransvecCol_mul_mul_listTransvecRow_pivot`: After applying the canonical left/right transvection products that clear the last column and row, the pivot (bottom-right) entry of a matrix is unchanged. Marked `@[simp]`. * `Matrix.Transvection.det_eq_detTopLeft_mul_pivot`: If the pivot entry is nonzero, then the determinant of the matrix factors as the determinant of the top-left block times the pivot entry, after performing the canonical transvections. This is the usual Gauss–pivot determinant identity. * Added simple usage tests in `MathlibTest/matrix.lean` to check that the new lemmas are usable by `simp`/`simpa`. --- --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 94/0 | Mathlib/LinearAlgebra/Matrix/Transvection.lean,MathlibTest/matrix.lean | 2 | 3 | ['github-actions', 'riccardobrasca', 'zach1502'] | nobody | 4 months ago | 120 days ago | 41 days |
| 30109 | 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/) | awaiting-author t-topology | 368/1 | Mathlib/Order/Lattice.lean,Mathlib/Topology/CWComplex/Classical/Subcomplex.lean | 2 | 19 | ['ADedecker', 'github-actions', 'scholzhannah'] | nobody | 4 months ago | 120 days ago | 6 days |
| 25692 | Whysoserioushah | feat(RingTheory/MatrixAlgebra): add a more general version of `matrixEquivTensor` | This adds `tensorMatrixLinearEquiv : A ⊗[R] Matrix n n B ≃ₐ[S] Matrix n n (A ⊗[R] B)`
which is a more general version of `matrixEquivTensor : Matrix n n A ≃ₐ[R] (A ⊗[R] Matrix n n R)`.
The latter is then implemented as a trivial consequence of the former.
Many internal implementation details are deleted without deprecation, although strictly these were not private.
Co-authored-by: @erdOne |
merge-conflict awaiting-author t-ring-theory | 129/110 | Mathlib/RingTheory/MatrixAlgebra.lean | 1 | 28 | ['Whysoserioushah', 'chrisflav', 'eric-wieser', 'github-actions', 'jcommelin', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mattrobball'] | chrisflav | 4 months ago | 196 days ago | 47 days |
| 25012 | urkud | refactor(*): migrate from `Matrix.toLin'` to `Matrix.mulVecLin` | or `Matrix.mulVec` whenever we don't need the `LinearEquiv.symm` part. See [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Matrix.2EtoLin'.20vs.20Matrix.2EmulVecLin/with/515188548). It makes sense to have only one normal form, and `Matrix.toLin'` has an extra `DecidableEq` assumption. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 165/126 | Mathlib/Algebra/Lie/Matrix.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/Matrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/LinearAlgebra/Determinant.lean,Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean,Mathlib/LinearAlgebra/Matrix/BilinearForm.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean,Mathlib/LinearAlgebra/Matrix/Diagonal.lean,Mathlib/LinearAlgebra/Matrix/Gershgorin.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Matrix/ToLin.lean,Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean,Mathlib/LinearAlgebra/UnitaryGroup.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean | 19 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 29638 | yuma-mizuno | feat(CategoryTheory): define descent data by presieves | --- Addendum: I realized that there is prior work in #24434. Since this PR uses a slightly different definition, I plan to make this PR a follow-up to #24434. Until then, I’ll keep it marked as WIP. See the comment: https://github.com/leanprover-community/mathlib4/pull/29638#issuecomment-3290041719 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 408/2 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean,Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean,Mathlib/CategoryTheory/Category/Cat.lean,Mathlib/CategoryTheory/Stack/Basic.lean,Mathlib/CategoryTheory/Stack/Descent.lean | 6 | 7 | ['chrisflav', 'github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'yuma-mizuno'] | nobody | 4 months ago | unknown | unknown |
| 30158 | nicolaviolette | feat: combinatorics simplegraph basic | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-combinatorics new-contributor | 9/4 | Mathlib/Combinatorics/SimpleGraph/Basic.lean | 1 | 3 | ['b-mehta', 'github-actions'] | b-mehta | 3 months ago | 119 days ago | 31 days |
| 27708 | vihdzp | feat: unions and intersections of ordinals are ordinals | As well as a bonus result `IsTransitive.empty_mem`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-set-theory | 58/16 | Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean | 2 | 5 | ['alreadydone', 'b-mehta', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | alreadydone | 3 months ago | 204 days ago | 12 days |
| 27516 | gaetanserre | feat: add rational approximation lemma for suprema in `unitInterval` | Add `sSup_eq_iUnion_rat` lemma that provides a rational approximation characterization of suprema in the unit interval. For monotone functions `f : α → I → ℝ`, the lemma establishes that the set of pairs where `a < sSup {x | f e.1 x < e.2}` equals the union over all rationals `q ∈ I` with `q > a` of the sets `{e | f e.1 q < e.2}`. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-topology | 44/0 | Mathlib/MeasureTheory/Constructions/UnitInterval.lean,Mathlib/Topology/UnitInterval.lean | 2 | 9 | ['gaetanserre', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'ocfnash'] | j-loreaux | 3 months ago | 119 days ago | 94 days |
| 28132 | dupuisf | feat: preliminary `grind` tags for `IsUnit` | This PR adds preliminary `grind` tags for the `IsUnit` predicate. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 61/17 | Mathlib/Algebra/Group/Action/Units.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Ring/Units.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean | 6 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | kim-em | 3 months ago | 119 days ago | 80 days |
| 25903 | pfaffelh | feat(MeasureTheory): finite unions of sets in a semi-ring (in terms of measure theory) form a ring | merge-conflict blocked-by-other-PR large-import t-measure-probability | 648/131 | Mathlib.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Module/Bimodule.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/Data/Set/Pairwise/Lattice.lean,Mathlib/Data/Set/Prod.lean,Mathlib/MeasureTheory/MeasurableSpace/Pi.lean,Mathlib/MeasureTheory/Measure/AddContent.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/MeasureTheory/SetAlgebra.lean,Mathlib/MeasureTheory/SetRing.lean,Mathlib/MeasureTheory/SetSemiring.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ExtractLets.lean,lake-manifest.json,lakefile.lean | 16 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 197 days ago | 2 hours | |
| 28863 | yury-harmonic | ignore: make CI build oleans | It looks like CI doesn't build oleans unless I open a PR. Or I can't see this workflow. --- [](https://gitpod.io/from-referrer/) | merge-conflict large-import | 624/100 | Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/MvPolynomial/Expand.lean,Mathlib/Algebra/Order/Floor/Semifield.lean,Mathlib/Algebra/Order/Positive/Field.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Data/Int/ModEq.lean,Mathlib/Data/NNRat/Floor.lean,Mathlib/Data/Nat/Factorial/Basic.lean,Mathlib/Data/Nat/ModEq.lean,Mathlib/Data/Nat/NthRoot/Defs.lean,Mathlib/Data/Rat/Floor.lean,Mathlib/Tactic/NormNum/Basic.lean,MathlibTest/norm_num_ext.lean | 13 | 4 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 29992 | vlad902 | feat(Order): finite (Max)Chains always contains a top/max element | --- - [ ] depends on: #29835 [optional extra text] - [ ] depends on: #29993 [optional extra text] [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order large-import | 35/0 | Mathlib/Order/Preorder/Chain.lean | 1 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26901 | 5hv5hvnk | feat: a simproc version of `compute_degree` | Wrap `compute_degree` in a simproc for use by simp. Closes #22219. --- | awaiting-CI new-contributor merge-conflict awaiting-author t-meta | 198/0 | Mathlib.lean,Mathlib/Tactic/Simproc/PolynomialDegree.lean,MathlibTest/polynomial_degree_simproc.lean | 3 | 19 | ['5hv5hvnk', 'YaelDillies', 'adomani', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26391 | grunweg | feat: immersed submanifolds | Still under construction --- - [ ] depends on: #26087 - [ ] depends on: #23040 Better version of #24549. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry blocked-by-other-PR | 1418/0 | Mathlib.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Splits.lean,Mathlib/Geometry/Manifold/EmbeddedSubmanifold.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/MSplits.lean | 5 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 31020 | grunweg | feat: mfderiv of Sum.inl and Sum.inr | Nothing to see yet: waiting on the cache, then I will state the sorries and Newell Jansen has expressed interest in trying to prove this. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 64/0 | Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean | 1 | 4 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 31340 | kim-em | feat: helper script to summarize CI errors | --- [](https://gitpod.io/from-referrer/) | CI | 235/0 | scripts/README.md,scripts/failing_ci.py | 2 | 1 | ['github-actions'] | nobody | 3 months ago | unknown | unknown |
| 30908 | vihdzp | refactor: swap `Function.update_apply` and `Pi.single_apply` | These are backwards compared to `Finsupp.single_apply`, `DFinsupp.single_apply`, `Polynomial.coeff_monomial`, etc. --- - [ ] depends on: #30909 - [ ] depends on: #30911 [](https://gitpod.io/from-referrer/) | merge-conflict | 34/81 | Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/Notation/Pi/Basic.lean,Mathlib/Data/Set/Prod.lean,Mathlib/Logic/Embedding/Basic.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Logic/Function/Basic.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25775 | emilyriehl | feat(AlgebraicTopology/SimplicialSet/NerveAdjunction): to Strict Segal 2 | Under a suitable hypothesis, a map of 2-truncated simplicial sets can be generated from a refl prefunctor between the underlying reflexive quivers --- provided the codomain is `StrictSegal`. This abstracts a previously formalized result that requires the codomain to be the 2-truncated nerve of a category. Co-authored-by: Aaron Liu --- The current draft displays the old code for comparison with new versions labeled ALT. After initial review this will be cut. [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #23848.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/23848* | t-algebraic-topology t-category-theory merge-conflict awaiting-author infinity-cosmos | 421/206 | Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean,Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean,Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean,Mathlib/CategoryTheory/ComposableArrows.lean,Mathlib/CategoryTheory/EqToHom.lean | 7 | 38 | ['emilyriehl', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | robin-carlier | 3 months ago | 195 days ago | 17 days |
| 14752 | AntoineChambert-Loir | fix(Topology/Algebra/Valued): repair definition of Valued | Following a [discussion on Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Question.20about.20.60Valued.2Eis_topological_valuation.60), we modify the definition of the field `is_topological_valuation` of `Valued` insisting that the element $\gamma$ showing up there is in the subgroup generated by the image of the valuation map. Co-authored-by: @faenuccio - [x] depends on: #25496 | merge-conflict WIP t-topology t-algebra | 1166/301 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/Range.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/RankOne.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean,Mathlib/Topology/UniformSpace/AbstractCompletion.lean,docs/references.bib | 12 | 28 | ['AntoineChambert-Loir', 'faenuccio', 'github-actions', 'jcommelin', 'kbuzzard', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'riccardobrasca'] | nobody | 3 months ago | unknown | unknown |
| 26827 | pechersky | feat(Analysis/Normed/ValuativeRel): helper instance for NormedField | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #26713 - [x] depends on: #26826 | merge-conflict t-algebra t-number-theory t-analysis | 211/27 | Mathlib.lean,Mathlib/Analysis/Normed/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean | 3 | 34 | ['ADedecker', 'adamtopaz', 'erdOne', 'github-actions', 'kbuzzard', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | kbuzzard | 3 months ago | 111 days ago | 121 days |
| 30150 | 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` [](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 | 3 months ago | 150 days ago | 8 hours |
| 27135 | JovanGerb | feat: `gconvert` tactic | The `gconvert` tactic calls `gcongr` internally, and it can be used as replacement/generalization of `peel`. One drawback is that `peel` can unfold definitions until they are a binder, while `gconvert` cannot, but I think this is acceptable. TODO: replace all uses of `peel` with either `gconvert` or `congr!` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 320/17 | Mathlib/Tactic/GCongr/Core.lean,MathlibTest/GConvert.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25765 | JovanGerb | feat(gcongr): lemma for rewriting inside divisibility | TODO: add test to show that we can rewrite using `a ≡ b [ZMOD n]` inside `n ∣ 2 * a + 1`. edit: it's not yet entirely clear if this is the right thing to do. edit: This lemma should be written using iff (or =), so that we can use it specifically when rewriting with a symmetric relation. Supporting equality in `gcongr` is still work in progress. --- [](https://gitpod.io/from-referrer/) | delegated t-data | 5/0 | Mathlib/Data/Int/ModEq.lean | 1 | 3 | ['fpvandoorn', 'github-actions', 'mathlib-bors'] | nobody | 3 months ago | 263 days ago | 1 day |
| 30978 | dagurtomas | Draft: adic spaces | --- This is work in progress, mostly ported from the perfectoid project [](https://gitpod.io/from-referrer/) | merge-conflict large-import | 1407/45 | Mathlib.lean,Mathlib/AdicSpace/AdicSpace.lean,Mathlib/AdicSpace/HuberPair.lean,Mathlib/AdicSpace/Spa/RationalOpenData.lean,Mathlib/AdicSpace/Spa/StalkValuation.lean,Mathlib/AdicSpace/Spa/StructurePresheaf.lean,Mathlib/AdicSpace/Spv.lean,Mathlib/Topology/Category/TopCommRingCat.lean | 8 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30824 | grunweg | wip: another smoothness lemma for local frames | --- Can I prove in general that the coefficients of a smooth section w.r.t. a smooth local frame are smooth? This is certainly true for orthonormal frames... [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry | 57/9 | Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean | 1 | 3 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30770 | robertmaxton42 | (WIP) Limits and Colimits in Quiv | WIP PR for the oleans --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 3652/31 | Mathlib.lean,Mathlib/CategoryTheory/Category/Quiv.lean,Mathlib/CategoryTheory/Category/Quiv/AsFunctor/Defs.lean,Mathlib/CategoryTheory/Category/Quiv/Colimits.lean,Mathlib/CategoryTheory/Category/Quiv/Limits.lean,Mathlib/CategoryTheory/Category/Quiv/Shapes.lean,Mathlib/CategoryTheory/Category/Quiv/WalkingQuiver.lean,Mathlib/CategoryTheory/EqToHom.lean,Mathlib/CategoryTheory/Equivalence.lean,Mathlib/CategoryTheory/Filtered/Level.lean,Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean,Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/FunctorToTypes.lean,Mathlib/CategoryTheory/Limits/Types/Colimits.lean,Mathlib/CategoryTheory/ObjectProperty/FullSubcategory.lean,Mathlib/CategoryTheory/Topos/Classifier.lean,Mathlib/CategoryTheory/Topos/Presheaf.lean,Mathlib/Combinatorics/Quiver/Shapes.lean,Mathlib/Combinatorics/Quiver/WalkingQuiver.lean,Mathlib/Data/ULift.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Logic/Equiv/Sum.lean,Mathlib/Logic/Small/Defs.lean | 23 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 31593 | Ruben-VandeVelde | feat: some lemmas about MonoidAlgebra | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 26/0 | Mathlib/Algebra/MonoidAlgebra/Basic.lean | 1 | 5 | ['github-actions', 'mathlib4-merge-conflict-bot', 'robin-carlier', 'themathqueen'] | nobody | 3 months ago | 109 days ago | 23 hours |
| 31596 | grunweg | chore: remove extraneous uses of push_neg | --- Ideally, repeat this experiment after the new `contrapose!` for equivalences has been merged... [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 155/99 | Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/UniqueProds/Basic.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/CategoryTheory/Limits/Shapes/Preorder/WellOrderContinuous.lean,Mathlib/Combinatorics/Colex.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Nat/Count.lean,Mathlib/Data/Seq/Basic.lean,Mathlib/GroupTheory/Perm/ClosureSwap.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/LinearAlgebra/LinearIndependent/Defs.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/NumberTheory/WellApproximable.lean,Mathlib/Order/LiminfLimsup.lean,Mathlib/RingTheory/HahnSeries/Basic.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean,Mathlib/RingTheory/Ideal/Oka.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/Tactic/ByCases.lean,Mathlib/Tactic/ByContra.lean,Mathlib/Tactic/Contrapose.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/Push.lean,Mathlib/Topology/LocallyFinsupp.lean,Mathlib/Topology/Maps/Basic.lean,Mathlib/Topology/Separation/Regular.lean,Mathlib/Util/AtLocation.lean,MathlibTest/Contrapose.lean,MathlibTest/byContra.lean,MathlibTest/push_neg.lean | 42 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26885 | pechersky | feat(Topology/ValuativeRel): ValuativeTopology 𝒪[K] | and even when not a field, `ValuativeRel 𝒪[K]` This is an example of something achievable with the new declarations that wasn't possible with Valued Such that we can discuss the valuations on the subring without always using coercions But to achieve this, one needs some juggling of the value groups --- [](https://gitpod.io/from-referrer/) - [x] depends on: #26834 - [ ] depends on : #30135 | t-algebra t-number-theory t-topology | 66/0 | Mathlib/Topology/Algebra/Valued/ValuativeRel.lean | 1 | 10 | ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | alreadydone | 3 months ago | 106 days ago | 131 days |
| 15651 | 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 --- [](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 | 3 months ago | unknown | unknown |
| 12032 | mcdoll | feat: delta distribution as a limit | --- - [ ] depends on: #11496 [](https://gitpod.io/from-referrer/) | WIP t-analysis | 58/0 | Mathlib/Analysis/Distribution/DiracDelta.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 9693 | madvorak | feat: Linear programming in the standard form | --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237386.20Linear.20Programming Four PRs incompatible with each other: https://github.com/leanprover-community/mathlib4/pull/7386 (list of constraints) https://github.com/leanprover-community/mathlib4/pull/9693 (matrix form) https://github.com/leanprover-community/mathlib4/pull/10026 (Antoine Chambert-Loir's def; semirings, linear) https://github.com/leanprover-community/mathlib4/pull/10159 (Antoine Chambert-Loir's def; rings, affine) - [x] depends on: #9652 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 86/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/LinearProgramming.lean | 2 | 15 | ['apurvanakade', 'github-actions', 'leanprover-community-mathlib4-bot', 'madvorak', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 27392 | Paul-Lez | feat(Tactic/SimpUtils): add simproc finding commands | This PR adds some commands to allow users to find simprocs/dsimprocs/simp theorems that match on a given pattern. Thanks to Robin Arnez for telling me about `simprocDeclExt` :) --- [](https://gitpod.io/from-referrer/) | large-import merge-conflict file-removed awaiting-author t-meta | 210277/112616 | .github/PULL_REQUEST_TEMPLATE.md,.github/actionlint.yml,.github/build.in.yml,.github/workflows/PR_summary.yml,.github/workflows/actionlint.yml,.github/workflows/add_label_from_diff.yaml,.github/workflows/auto_assign_reviewers.yaml,.github/workflows/bench_summary_comment.yml,.github/workflows/bors.yml,.github/workflows/bot_fix_style.yaml,.github/workflows/build.yml,.github/workflows/build_fork.yml,.github/workflows/daily.yml,.github/workflows/discover-lean-pr-testing.yml,.github/workflows/docker_build.yml,.github/workflows/label_new_contributor.yml,.github/workflows/latest_import.yml,.github/workflows/lint_and_suggest_pr.yml,.github/workflows/long_file_report.yml,.github/workflows/maintainer_bors.yml,.github/workflows/maintainer_bors_wf_run.yml,.github/workflows/maintainer_merge.yml,.github/workflows/maintainer_merge_wf_run.yml,.github/workflows/mk_build_yml.sh,.github/workflows/nightly-docgen.yml,.github/workflows/nightly-regression-report.yml,.github/workflows/nightly_bump_toolchain.yml,.github/workflows/nightly_detect_failure.yml,.github/workflows/nightly_merge_master.yml,.github/workflows/nolints.yml,.github/workflows/pre-commit.yml,.github/workflows/remove_deprecated_decls.yml,.github/workflows/stale.yml,.github/workflows/technical_debt_metrics.yml,.github/workflows/update_dependencies.yml,.github/workflows/update_dependencies_zulip.yml,.github/workflows/weekly-lints.yml,.github/workflows/zulip_emoji_closed_pr.yaml,.github/workflows/zulip_emoji_labelling.yaml,.github/workflows/zulip_emoji_merge_delegate.yaml,.pre-commit-config.yaml,Archive.lean,Archive/Arithcc.lean,Archive/Examples/Eisenstein.lean,Archive/Examples/IfNormalization/Result.lean,Archive/Examples/IfNormalization/Statement.lean,Archive/Examples/IfNormalization/WithoutAesop.lean,Archive/Examples/Kuratowski.lean,Archive/Examples/MersennePrimes.lean,Archive/Imo/Imo1959Q2.lean,Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1961Q3.lean,Archive/Imo/Imo1962Q1.lean,Archive/Imo/Imo1962Q4.lean,Archive/Imo/Imo1972Q5.lean,Archive/Imo/Imo1975Q1.lean,Archive/Imo/Imo1981Q3.lean,Archive/Imo/Imo1982Q1.lean,Archive/Imo/Imo1982Q3.lean,Archive/Imo/Imo1987Q1.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1997Q3.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q2.lean,Archive/Imo/Imo2001Q3.lean,Archive/Imo/Imo2001Q4.lean,Archive/Imo/Imo2001Q5.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2005Q4.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2013Q1.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2015Q6.lean,Archive/Imo/Imo2019Q2.lean,Archive/Imo/Imo2021Q1.lean,Archive/Imo/Imo2024Q1.lean,Archive/Imo/Imo2024Q3.lean,Archive/Imo/Imo2024Q5.lean,Archive/Imo/Imo2024Q6.lean,Archive/Imo/README.md,Archive/Kuratowski.lean,Archive/MiuLanguage/DecisionSuf.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Archive/Wiedijk100Theorems/HeronsFormula.lean,Archive/Wiedijk100Theorems/InverseTriangleSum.lean,Archive/Wiedijk100Theorems/Partition.lean,Archive/Wiedijk100Theorems/PerfectNumbers.lean,Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Cache/IO.lean,Cache/Main.lean | 5782 | 14 | ['Paul-Lez', 'Vierkantor', 'eric-wieser', 'github-actions', 'kmill', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 223 days ago | 1 hour |
| 15649 | 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] [](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 | 3 months ago | unknown | unknown |
| 4786 | thorimur | feat: AppBuilder utils | This supplements `Lean.Meta.AppBuilder`, introducing variants of `mkAppN` and `mkAppM` which allow for more fine-grained management of existing and created metavariables. [Description pending] --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 205/0 | Mathlib.lean,Mathlib/Lean/Meta/AppBuilder.lean | 2 | 1 | ['mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 5745 | alexjbest | feat: a tactic to consume type annotations, and make constructor nicer | During the copenhagen masterclass I found some situations where applying the constructor tactic left the goal in a difficult to read state when autoParams were present. We add a simple tactic to clean these up, and a macro for `constructor` to behave more like the constructor notation and do this automatically (constructor is in core) It seems that these things should be cleaned up by simp, but a simp lemma to remove these annotations is not accepted by lean as the types are too similar. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 41/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Consume.lean,test/consume.lean | 4 | 5 | ['alexjbest', 'digama0', 'kim-em', 'kmill', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 5863 | eric-wieser | feat: add elaborators for concrete matrices | --- - [x] depends on: #5866 - [ ] depends on: #5897 [](https://gitpod.io/from-referrer/) | merge-conflict help-wanted blocked-by-other-PR t-meta | 257/7 | Mathlib/Control/Monad/Cont.lean,Mathlib/Data/Matrix/Auto.lean,MathlibTest/matrix_auto.lean | 3 | 8 | ['eric-wieser', 'github-actions', 'kim-em', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 5919 | MithicSpirit | feat: implement orthogonality for AffineSubspace | Define `AffineSubspace.orthogonal` and `AffineSubspace.IsOrtho`, as well as develop an API emulating that of `Submodule.orthogonal` and `Submodule.IsOrtho`, respectively. Additionally, provide some relevant lemmas exclusive to affine subspaces, which are mostly to do with the relationship between orthogonality and `AffineSubspace.Parallel`. Closes #5539 --- Still WIP as I need to add more docstrings as well as notations for the new definitions. [](https://gitpod.io/from-referrer/) | WIP new-contributor merge-conflict help-wanted t-analysis | 287/0 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/AffineSubspace.lean | 2 | 7 | ['MithicSpirit', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | MithicSpirit | 3 months ago | unknown | unknown |
| 7386 | madvorak | feat: Define linear programs | Linear programs over a general `Module` with constraints given in the form "aᵀx - b ≥ 0" and the objective function as an `AffineMap` to be minimized. --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237386.20Linear.20Programming Four PRs incompatible with each other: https://github.com/leanprover-community/mathlib4/pull/7386 (list of constraints) https://github.com/leanprover-community/mathlib4/pull/9693 (matrix form) https://github.com/leanprover-community/mathlib4/pull/10026 (Antoine Chambert-Loir's def; semirings, linear) https://github.com/leanprover-community/mathlib4/pull/10159 (Antoine Chambert-Loir's def; rings, affine) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 87/0 | Mathlib.lean,Mathlib/LinearAlgebra/LinearProgramming.lean | 2 | 64 | ['Shreyas4991', 'YaelDillies', 'eric-wieser', 'github-actions', 'kim-em', 'madvorak', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 7890 | grhkm21 | feat(Mathlib/Tactic/Setm): implement setm tactic | This is my first time doing metaprogramming in Lean 4, please provide feedback when you have them :)
The `setm` tactic, which stands for `set` + matching, matches a given expression with the goal and introduces new local hypotheses for the named holes specified. One of the best usage is for rearrangement proofs. As a simple example,
```lean
example : (1 + 1) + (4 * 3) - (1 + 1) = (3 * 4 : Rat) := by
setm ?A + ?B - ?A = (?C : Rat)
rw [show ∀ A B, A + B - A = B by intro A B ; ring_nf ]
apply Rat.mul_comm
```
One can imagine replacing the three term expression with a 7 term algebraic expression.
This was developed with tons of help from [Zulip](https://leanprover.zulipchat.com/#narrow/stream/239415-metaprogramming-.2F-tactics/topic/Help.20with.20writing.20tactic), especially from Thomas. Thanks!
TODO:
- [X] Support `setm ... at ...` syntax, see *example 1* below
- [X] Write docs
- [ ] Use `withNewMCtxDepth`
- [X] Rename the intermediate `MVar`s, see *example 2* below
- [ ] Use `elabTermWithHolesPostponing` in conjunction with `Term.synthesizeSyntheticMVarsNoPostPoning` after `isDefEq` to handle instances
Example 1:
```lean
/- Usage with `using` and `at` keywords -/
example (h1 : 1 + 1 = 3) (h2 : 1 + 3 = 5) (h3 : 2 + 2 = 5) : true := by
setm ?A + _ = (?B : Nat) using h2 at h1 h2 h3
guard_hyp A := 1
guard_hyp B := 5
guard_hyp h1 : A + A = 3
guard_hyp h2 : A + 3 = B
guard_hyp h3 : 2 + 2 = B
trivial
```
Example 2:
```lean
/- Test reusing named holes -/
example (h : b + a = c) : a + b = c := by
/- setm 1-/
setm ?A + ?B = (_ : Nat)
guard_hyp A := a
guard_hyp B := b
/- clean up -/
unfold_let A B
clear hA hB A B
/- setm 2 -/
rewrite [Nat.add_comm]
setm ?A + ?B = (_ : Nat) at h ⊢
guard_hyp A := b
guard_hyp B := a
exact h
```
Co-authored-by: Jireh Loreaux |
merge-conflict t-meta | 141/0 | Mathlib.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/Setm.lean,test/Setm.lean | 4 | 4 | ['mathlib4-merge-conflict-bot', 'thorimur'] | nobody | 3 months ago | unknown | unknown |
| 9352 | chenyili0818 | feat: arithmetic lemmas for `gradient` | This file is based on Mathlib.Analysis.Calculus.Gradient.Basic, and describes the calculation properties Co-authored-by: Ziyu Wang [tropicalfish910@gmail.com](mailto:tropicalfish910@gmail.com) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 404/0 | Mathlib.lean,Mathlib/Analysis/Calculus/Gradient/Lemmas.lean | 2 | 31 | ['chenyili0818', 'github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot', 'sgouezel', 'winstonyin'] | nobody | 3 months ago | unknown | unknown |
| 9795 | sinhp | feat: the type `Fib` of fibre of a function at a point | This is the most basic file of the theory of fibred categories developed here: https://github.com/sinhp/LeanFibredCategories/tree/master --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 74/0 | Mathlib.lean,Mathlib/Data/Fiber.lean | 2 | 18 | ['adri326', 'joelriou', 'mathlib4-merge-conflict-bot', 'sinhp'] | nobody | 3 months ago | unknown | unknown |
| 10660 | eric-wieser | feat(LinearAlgebra/CliffordAlgebra): construction from a basis | This is adapted from https://github.com/eric-wieser/lftcm2023-clifford_algebra, which only worked for the special case of `Q = 0`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author t-algebra | 573/0 | Mathlib.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Basis.lean | 2 | 16 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 10977 | grunweg | feat: germs of smooth functions | Define the space of germs of smooth functions (between manifolds). Endow it with a ring structure if the target manifold is a smooth ring (e.g., a Lie group or a field). From the sphere eversion project, rewritten by me. Co-authored-by: Patrick Massot ------- Particular questions for review - is the authorship/copyright information appropriate? (`PatrickMassot` created the file `SmoothGerm` which I adapted; I didn't trace this far back through sphere-eversion.) - is providing all the intermediate algebraic structures (such as, an additive subgroup) on the space of smooth germs useful in practice? (The sphere eversion project only needs a ring structure.) - any further particular API lemmas (e.g., around coercions) which would be good to add? --- [](https://gitpod.io/from-referrer/) | t-differential-geometry merge-conflict awaiting-author t-topology t-analysis | 150/0 | Mathlib.lean,Mathlib/Geometry/Manifold/Algebra/SmoothGerm.lean | 2 | 34 | ['YaelDillies', 'github-actions', 'grunweg', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot', 'mcdoll'] | fpvandoorn | 3 months ago | unknown | unknown |
| 10998 | hmonroe | feat(Logic): Arithmetization of partial recursive functions (toward Gödel's first incompleteness theorem) | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 364/0 | Mathlib.lean,Mathlib/Logic/Godel/PartArith.lean | 2 | 4 | ['Ruben-VandeVelde', 'YaelDillies', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 11890 | adomani | feat: the terminal refine linter | A linter that warns on usages of `refine` and `refine'` as a finishing tactic. See this [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Usage.20of.20refine'). ### Conclusion of the experiment Systematic replacements of terminal `refine` with `exact` leads to an overall slow-down. --- - [ ] depends on: #15616 (disable the linter in downstream projects) [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 77/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/TerminalRefineLinter.lean | 3 | 15 | ['adomani', 'github-actions', 'grunweg', 'joneugster', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 3 months ago | unknown | unknown |
| 11991 | adomani | draft: syntax data linter | A linter that prints `SyntaxNodeKind`s and `Range`s for all the nodes of a command. See this [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/undocumented.20things). --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 152/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SyntaxDataLinter.lean | 3 | 1 | ['mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 12006 | adomani | feat: the `suffa` tactic | The `suffa` tactic. `suffa tac` runs the tactic sequence `tac` and returns a `Try this:` suggestion of the form `suffices [target_after_tac] by tac; assumption`. For example ```lean example {m n : Nat} (h : m = n) : 0 + m = n := by suffa rewrite [Nat.zero_add] assumption ``` suggests the replacement ```lean example {m n : Nat} (h : m = n) : 0 + m = n := by suffices m = n by rewrite [Nat.zero_add] assumption assumption ``` See [this thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Try.20this.3A.20suffices.20simpa) as well as [this message](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2311822.20flexible.20tactics.20linter/near/431895664). --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 161/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Suffa.lean,test/Suffa.lean | 4 | 4 | ['MoritzBeroRoos', 'YaelDillies', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 13442 | dignissimus | feat: mabel tactic for multiplicative abelian groups | Mabel tactic for multiplicative abelian groups (#10361) --- [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict modifies-tactic-syntax awaiting-author help-wanted t-meta | 439/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/MAbel.lean,MathlibTest/mabel.lean | 4 | 11 | ['BoltonBailey', 'dignissimus', 'github-actions', 'joneugster', 'kbuzzard', 'mathlib4-merge-conflict-bot'] | joneugster | 3 months ago | unknown | unknown |
| 14237 | js2357 | feat: Define the localization of a fractional ideal at a prime ideal | Define the localization of a fractional ideal at a prime ideal, and prove some basic properties. --- This PR is part 3 out of 4 of a proof of `isDedekindDomain_iff_isDedekindDomainDvr`. Part 4 is available here: #14242 - [x] depends on: #14099 Part 1 - [x] depends on: #14216 Part 2 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 230/0 | Mathlib.lean,Mathlib/RingTheory/FractionalIdeal/LocalizedAtPrime.lean,Mathlib/RingTheory/Localization/Basic.lean | 3 | 22 | ['Vierkantor', 'YaelDillies', 'github-actions', 'js2357', 'kbuzzard', 'leanprover-community-bot-assistant', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] | Vierkantor | 3 months ago | unknown | unknown |
| 14345 | digama0 | feat: the Dialectica category is monoidal closed | - [x] depends on: #14274 The monoidal closed structure of the Dialectica category. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 252/0 | Mathlib.lean,Mathlib/CategoryTheory/Dialectica/Closed.lean | 2 | 4 | ['github-actions', 'kim-em', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 14727 | jjaassoonn | feat(RingTheory/Flat/CategoryTheory): a flat module has vanishing higher Tor groups | [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 37/1 | Mathlib/RingTheory/Flat/CategoryTheory.lean | 1 | 4 | ['github-actions', 'kim-em', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 14733 | jjaassoonn | feat(RingTheory/Flat/CategoryTheory): a module is flat iff tensoring preserves finite limits | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 99/1 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/RightExact.lean,Mathlib/RingTheory/Flat/CategoryTheory.lean | 4 | 3 | ['github-actions', 'kim-em', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 15055 | sinhp | feat: the category of pointed objects of a concrete category | This file defines the category of pointed objects of a concrete category. After this we will have the categories of pointed groups, pointed abelian groups, pointed groupoids, etc. To define `Pointed.functor`, we need to add the following "pullback" construction to the category of elements. ``` @[simps obj map] def pullback (F : D ⥤ Type w) (G : C ⥤ D) : (G ⋙ F).Elements ⥤ F.Elements where obj X := ⟨G.obj X.1, X.2⟩ map {X Y} f := ⟨G.map f.1, f.2⟩ ``` This is called pullback since the display map of `G ⋙ F` (i.e. `π (G ⋙ F)`) is a pullback of the display map of `F`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 185/0 | Mathlib.lean,Mathlib/CategoryTheory/ConcreteCategory/Pointed.lean,Mathlib/CategoryTheory/Elements.lean | 3 | 14 | ['dagurtomas', 'github-actions', 'kim-em', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 15224 | AnthonyBordg | feat(CategoryTheory/Sites): covering families and their associated Grothendieck topology | Define covering families on a category and their associated Grothendieck topology by using the API for `Coverage`. Give an explicit characterization of the covering sieves of the said topology. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 112/0 | Mathlib.lean,Mathlib/CategoryTheory/Sites/CoveringFamilies.lean | 2 | 21 | ['AnthonyBordg', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 15453 | tomaz1502 | Track formalization of runtime complexity | I finished porting https://github.com/leanprover-community/mathlib3/pull/14494/ to Lean 4 and made several small PRs, as suggested. This meta PR is used to track the progress of the smaller PRs. ## Pending PRs - [Formalization of List.insertionSort](https://github.com/leanprover-community/mathlib4/pull/15449) - [Lemmas about Split](https://github.com/leanprover-community/mathlib4/pull/15450) - [Formalization of List.merge](https://github.com/leanprover-community/mathlib4/pull/15451) - [Formalization of List.mergeSort](https://github.com/leanprover-community/mathlib4/pull/15452) --- [](https://gitpod.io/from-referrer/) | merge-conflict | 525/0 | Mathlib.lean,Mathlib/Computability/Timed/InsertionSort.lean,Mathlib/Computability/Timed/Merge.lean,Mathlib/Computability/Timed/MergeSort.lean,Mathlib/Computability/Timed/Split.lean | 5 | 5 | ['joneugster', 'mathlib4-merge-conflict-bot', 'mergify'] | nobody | 3 months ago | unknown | unknown |
| 16303 | grunweg | feat(CI): check for badly formatted titles or missing/contradictory labels | --- The zulip workflow is entirely cargo-culted from #16296; please review carefully. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author CI | 325/0 | .github/build.in.yml,Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/ValidatePRTitle.lean,MathlibTest/ValidatePRTitle.lean,lakefile.lean,scripts/README.md,scripts/check-title-labels.lean | 8 | 45 | ['Command-Master', 'adomani', 'bryangingechen', 'edegeltje', 'github-actions', 'grunweg', 'joneugster', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | bryangingechen | 3 months ago | unknown | unknown |
| 17587 | kmill | feat: Sym2-as-Finset theory | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 105/3 | Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/RingTheory/Polynomial/Vieta.lean | 4 | 11 | ['FordUniver', 'YaelDillies', 'github-actions', 'kmill', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 18236 | joelriou | feat(Algebra/Category/ModuleCat/Presheaf): the endofunctor of presheaves of modules induced by an oplax natural transformation | An endomorphism of ` ModuleCat.restrictScalarsPseudofunctor`, i.e. a "compatible" family of functors `ModuleCat A ⥤ ModuleCat A` for all (commutative) rings `A` induces a functor `PresheafOfModules R ⥤ PresheafOfModules R` for any presheaf of (commutative) rings `R`. In #18262, this is applied to the construction of exterior powers of a presheaves of modules. --- - [x] depends on: #18197 [](https://gitpod.io/from-referrer/) | WIP t-algebra t-category-theory awaiting-CI merge-conflict awaiting-author | 180/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/FunctorOfNatTrans.lean | 2 | 6 | ['github-actions', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 18630 | tomaz1502 | feat(Computability.Timed): Formalization of runtime complexity of List.mergeSort | This PR adds the formalization of the runtime complexity of the merge sort algorithm, defined in `Data/List/Sort`. Requires: https://github.com/leanprover-community/mathlib4/pull/15451 References: - Previous PR on mathlib3: https://github.com/leanprover-community/mathlib3/pull/14494/ - First discussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/BSc.20Final.20Project/near/220647062 - Second disussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Formalization.20of.20Runtime.20Complexity.20of.20Sorting.20Algorithms/near/284184450 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability new-contributor | 526/0 | Mathlib.lean,Mathlib/Computability/Timed/InsertionSort.lean,Mathlib/Computability/Timed/Merge.lean,Mathlib/Computability/Timed/MergeSort.lean,Mathlib/Computability/Timed/Split.lean | 5 | 9 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 18749 | GabinKolly | feat(ModelTheory): preparatory work for the existence of Fraïsse limits | Define the map of a PartialEquiv through an embedding, and related properties. Define embeddings and equivalences between equal structures or equal substructures, and related properties. Add miscellaneous lemmas which will be used to prove the existence of fraisse limits. --- This is preparation for #18876 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 308/5 | Mathlib/ModelTheory/Bundled.lean,Mathlib/ModelTheory/DirectLimit.lean,Mathlib/ModelTheory/FinitelyGenerated.lean,Mathlib/ModelTheory/PartialEquiv.lean,Mathlib/ModelTheory/Substructures.lean | 5 | 10 | ['GabinKolly', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | nobody | 3 months ago | unknown | unknown |
| 18876 | GabinKolly | feat(ModelTheory/Fraisse): add proof that Fraïssé limits exist | Fraïssé limits exist. --- All the preparatory work done in other files is contained in the pull request #18749, this pull request adds the work done in ModelTheory/Fraisse, the definition of the sequence of structures whose limit will be the Fraïssé limit, lemmas about this sequence, and then the proof that the limit is indeed a Fraïssé limit. - [ ] depends on: #18749 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-logic | 666/5 | Mathlib/ModelTheory/Bundled.lean,Mathlib/ModelTheory/DirectLimit.lean,Mathlib/ModelTheory/FinitelyGenerated.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/PartialEquiv.lean,Mathlib/ModelTheory/Substructures.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 19323 | madvorak | feat: Function to Sum decomposition | --- Discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Function.20to.20Sum.20decomposition | merge-conflict WIP t-data | 50/0 | Mathlib.lean,Mathlib/Data/Sum/Decompose.lean | 2 | 3 | ['github-actions', 'madvorak', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 19378 | adamtopaz | feat: Explanation widgets | This adds some simple widgets, wrapped in a tactic, term and command elaborator, for displaying markdown explanations in the infoview. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 101/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Widget/Explain.lean | 3 | 9 | ['adamtopaz', 'eric-wieser', 'github-actions', 'joneugster', 'kmill', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 19456 | AntoineChambert-Loir | feat(Data/Finsupp/MonomialOrder/DegRevLex): homogeneous reverse lexicographic order | Definition of the homogeneous reverse lexicographic order --- - [x] depends on: #19453 - [x] depends on: #19455 [](https://gitpod.io/from-referrer/) | WIP t-order t-data merge-conflict t-algebraic-geometry | 362/0 | Mathlib.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/Finsupp/MonomialOrder/DegRevLex.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 19797 | eric-wieser | refactor: use Qq in the nlinarith preprocessor | This also provides the machinery needed to Qq-ify linarith itself. This is still doing far more `synthInstanceQ`/`isDefEq`(`Q`) than should be needed, but at least drops the `mkAppM`s. Currently, this takes a different approach to the one used by `NormNum.Result`: * `NormNum.Result` deliberately avoids adding any `Expr` parameters to types, as this makes defeq problem at compile-time hard * This PR allows the Expr parameters, but adds casting helpers to easily transport along defeq(Q)s. A few `unsafeIntro`s are left, which correspond to either a Qq bug, or a flaw in the idea behind this approach. I don't know if this pattern is an improvement. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta large-import | 260/28 | Mathlib/Data/Ineq.lean,Mathlib/Tactic/Linarith/Datatypes.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Preprocessing.lean,Mathlib/Util/Qq.lean | 5 | 9 | ['eric-wieser', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 20051 | Timeroot | feat: `Clone` and some instances | Defines clones (`Clone`). And there is a file, `Instances.lean`, that gives several most important examples of Clones. In particular, it has all of the clones (in an appropriately general form) that occur in [Post's Lattice](https://en.wikipedia.org/wiki/Post%27s_lattice), and [later proving](https://github.com/leanprover-community/mathlib4/pull/24744) the completeness of Post's Lattice is why I'm making this PR. (Edit: Used to also say "Defined operads (`Operad`), symmetric operads (`SymmOperad`), and clones ... There is a proof that all clones have a natural operad structure.". This has been scrapped.) --- - [x] depends on: #20133 [basics and notations] - [x] depends on: #20134 [permutations] - [x] depends on: #20138 [operad] - [x] depends on: #20141 [clone] - [x] depends on: #23459 [defs] - [ ] depends on: #23460 [basic] [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra blocked-by-other-PR | 623/0 | Mathlib.lean,Mathlib/Algebra/Clone/Basic.lean,Mathlib/Algebra/Clone/Defs.lean,Mathlib/Algebra/Clone/Instances.lean,Mathlib/Data/Fin/Basic.lean | 5 | 33 | ['Timeroot', 'YaelDillies', 'eric-wieser', 'github-actions', 'jcommelin', 'kbuzzard', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'wmacmil'] | nobody | 3 months ago | unknown | unknown |
| 20466 | MohanadAhmed | feat: Sherman Morrison formula for rank 1 update of the matrix inverse | Provides the Sherman Morrison rank 1 update of the matrix inverse https://en.wikipedia.org/wiki/Sherman%E2%80%93Morrison_formula. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 37/0 | Mathlib/Data/Matrix/Invertible.lean | 1 | 5 | ['eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 20648 | 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 [](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 | 3 months ago | unknown | unknown |
| 20649 | GabinKolly | feat(ModelTheory/Graph): prove characterization of the fraisse limit of finite simple graphs | Prove that a countable graph with the extension property must be the Fraisse limit of finite simple graphs. --- [](https://gitpod.io/from-referrer/) | WIP large-import merge-conflict t-combinatorics t-logic | 175/0 | Mathlib/ModelTheory/Graph.lean,Mathlib/ModelTheory/Substructures.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 20652 | jjaassoonn | feat: categorical description of center of a ring | We show the isomorphism between `Z(R)` and `End(1 Mod-R)` --- - [x] depends on:#20721 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra t-category-theory | 212/21 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/Ring/Center.lean,Mathlib/CategoryTheory/Conj.lean,Mathlib/CategoryTheory/Endomorphism.lean,Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean,Mathlib/CategoryTheory/Preadditive/Basic.lean | 7 | 42 | ['alreadydone', 'github-actions', 'jcommelin', 'jjaassoonn', 'kbuzzard', 'mathlib4-merge-conflict-bot', 'qawbecrdtey'] | nobody | 3 months ago | unknown | unknown |
| 20924 | tomaz1502 | feat(Computability/QueryComplexity): Oracle-based computation | This PR adds the types and lemmas for oracle-based computation. In this model, computations are run on a monad which also counts the number of oracle queries executed. With it, it becomes possible to reason about the upper bound of the query complexity of algorithms. In the future, we could extend this work to include the necessary bits from information theory and probability to also reason about lower bounds on query complexity, like the work in https://github.com/girving/debate.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2318629.20runtime.20complexity.20of.20sorting.20a.20list
Co-authored-by: Geoffrey Irving |
merge-conflict t-computability | 305/0 | Mathlib.lean,Mathlib/Computability/QueryComplexity/Basic.lean,Mathlib/Computability/QueryComplexity/Defs.lean | 3 | 60 | ['eric-wieser', 'girving', 'github-actions', 'mathlib4-merge-conflict-bot', 'quangvdao', 'tomaz1502'] | nobody | 3 months ago | unknown | unknown |
| 20956 | tomaz1502 | feat(Computability/QueryComplexity/Sort.lean): Formalization of upper bound of queries for merge sort | This PR builds on top of #20924 to prove that merge sort (as defined in Lean's library) never executes more than `3 * n * ceil_log2 n` comparisons, where `n` is the size of the input list and `ceil_log2` is the ceil of the logarithm in base 2, which is defined in this PR.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2318629.20runtime.20complexity.20of.20sorting.20a.20list
- [ ] depends on: #20924
Co-authored-by: Geoffrey Irving |
merge-conflict t-computability blocked-by-other-PR | 676/0 | Mathlib.lean,Mathlib/Computability/QueryComplexity/Basic.lean,Mathlib/Computability/QueryComplexity/Defs.lean,Mathlib/Computability/QueryComplexity/Sort.lean | 4 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 21270 | GabinKolly | feat(ModelTheory/Bundled): first-order embeddings and equivalences from equalities | Add first-order embeddings and equivalences from equalities between bundled structures. --- Add two definitions to get embeddings and equivalences from equalities between bundled structures, and simple properties. This is some preparatory work for #18876 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author large-import t-logic | 102/0 | Mathlib/ModelTheory/Bundled.lean | 1 | 27 | ['GabinKolly', 'Vierkantor', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 21277 | GabinKolly | feat(ModelTheory/PartialEquiv): Define the mapping of a self-partialEquiv through an embedding | Define the mapping of a self-partialEquiv through an embedding and the notion of fully extendable partialEquiv. --- This is some preparatory work for #18876 - [ ] depends on: #21276 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-logic | 215/5 | Mathlib/ModelTheory/PartialEquiv.lean,Mathlib/ModelTheory/Substructures.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 21616 | peabrainiac | feat(Topology): concatenating countably many paths | Adds `Path.countableConcat`, the concatenation of a sequence of paths leading up to some point `x`. --- - [x] depends on: #21591 - [x] depends on: #21607 This work is a prerequisite to #20248, where it is used to show that the topology of first-countable locally path-connected spaces is coinduced by all the paths in that space. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 229/0 | Mathlib.lean,Mathlib/Topology/Path/CountableConcat.lean | 2 | 31 | ['YaelDillies', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'peabrainiac'] | YaelDillies | 3 months ago | unknown | unknown |
| 21624 | sinhp | feat(CategoryTheory): The (closed) monoidal structure on the product category of families of (closed) monoidal categories | Given a family of closed monoidal categories, we show that the product of these categories is a closed monoidal category with the pointwise monoidal structure. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 144/0 | Mathlib.lean,Mathlib/CategoryTheory/Pi/Basic.lean,Mathlib/CategoryTheory/Pi/Monoidal.lean,Mathlib/CategoryTheory/Pi/MonoidalClosed.lean | 4 | 20 | ['TwoFX', 'YaelDillies', 'b-mehta', 'github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot', 'sinhp'] | nobody | 3 months ago | unknown | unknown |
| 21829 | Whysoserioushah | feat(LinearAlgebra/TensorProduct/HomTensor): Add TensorProduct of Hom-modules | Co-authored-by: Andrew Yang |
merge-conflict awaiting-author t-algebra | 174/0 | Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/HomTensor.lean | 2 | 27 | ['Whysoserioushah', 'YaelDillies', 'erdOne', 'github-actions', 'kbuzzard', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 21903 | yhtq | feat: add from/toList between `FreeSemigroup` and `List` with relative theorems | Add from/toList between `FreeSemigroup` and `List` with relative theorems, as well as an incidental definition of lexicographic order on `FreeSemigroup`. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor awaiting-CI large-import merge-conflict | 169/0 | Mathlib/Algebra/Free.lean | 1 | 12 | ['YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22159 | shetzl | feat: add definition of pushdown automata | Add the definition of pushdown automata and their two acceptance conditions: acceptance based on empty stack and acceptance based on final state.
Co-authored-by: Tobias Leichtfried |
merge-conflict t-computability awaiting-author new-contributor | 70/0 | Mathlib.lean,Mathlib/Computability/PDA.lean | 2 | 35 | ['YaelDillies', 'github-actions', 'madvorak', 'mathlib4-merge-conflict-bot', 'shetzl'] | nobody | 3 months ago | unknown | unknown |
| 22194 | eric-wieser | feat: oracle computations (alternative) | This explores a simpler version of #20924 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability | 698/0 | Archive/Examples/SumOracle.lean,Mathlib.lean,Mathlib/Computability/QueryComplexity/Defs.lean,Mathlib/Computability/QueryComplexity/Sort.lean | 4 | 5 | ['eric-wieser', 'girving', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22231 | pechersky | feat(Algebra/Valued): `AdicExpansion` initial defns | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-topology | 299/0 | Mathlib.lean,Mathlib/Topology/Algebra/Valued/AdicExpansion.lean | 2 | 8 | ['Thmoas-Guan', 'github-actions', 'grunweg', 'jcommelin', 'mathlib4-merge-conflict-bot'] | jcommelin | 3 months ago | unknown | unknown |
| 22232 | pechersky | feat(Algebra/Valued): `AdicExpansion.apprUpto` | --- - [ ] depends on: #22231 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology blocked-by-other-PR | 399/0 | Mathlib.lean,Mathlib/Topology/Algebra/Valued/AdicExpansion.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22233 | pechersky | feat(Algebra/Valued): `AdicExpansion.evalAt` | --- - [ ] depends on: #22231 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology blocked-by-other-PR | 488/0 | Mathlib.lean,Mathlib/Topology/Algebra/Valued/AdicExpansion.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22302 | 658060 | feat: add `CategoryTheory.Topos.Power` | This is a continuation of #21281 with the end goal of defining topoi in Mathlib. It introduces the notion of a power object in a category with a subobject classifier, which is a special case of an internal hom. The definition `HasPowerObjects C` contained in this PR is all that remains before `IsTopos C` can be defined. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 312/0 | Mathlib.lean,Mathlib/CategoryTheory/Topos/Power.lean | 2 | 3 | ['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot'] | b-mehta | 3 months ago | unknown | unknown |
| 22314 | shetzl | feat: add leftmost derivations for context-free grammars | Leftmost derivations are often easier to reason about than arbitrary derivations. This PR adds leftmost variants of Rewrites, Produces and Derives to the existing definition of context-free grammars and proves that a string of terminals can be derived iff it can be leftmost derived.
Co-authored-by: Tobias Leichtfried |
merge-conflict t-computability awaiting-author new-contributor | 383/0 | Mathlib.lean,Mathlib/Computability/LeftmostDerivation.lean | 2 | 55 | ['YaelDillies', 'github-actions', 'madvorak', 'mathlib4-merge-conflict-bot', 'shetzl'] | YaelDillies | 3 months ago | unknown | unknown |
| 22389 | adomani | feat: the variableVariable linter | The motivation comes from [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/style.20proposal.3A.20avoid.20.60variable.20.7BX.7D.20.2E.2E.2E.20variable.20.28X.29.60). Summarising, updating a variable binder for a single declaration can be confusing. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter large-import | 167/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/VariableVariable.lean,variableDeclarationVariable_replacements.py | 5 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22497 | adomani | test: decl diff in lean | Testing branch for #22464. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP CI test-ci | 161/0 | .github/workflows/PR_summary_lean.yml,Mathlib.lean,Mathlib/Test.lean,scripts/README.md,scripts/declarations_diff.lean,scripts/declarations_diff_lean_shell_glue.sh | 6 | 8 | ['github-actions', 'mathlib4-merge-conflict-bot', 'mergify'] | nobody | 3 months ago | unknown | unknown |
| 22662 | plp127 | feat: Localization.Away.lift (computably) | This PR adds `Localization.Away.lift'` and `Localization.Away.lift`, computable alternatives to `Localization.awayLift`. --- - [x] depends on: #24791 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 74/0 | Mathlib/RingTheory/Localization/Away/Basic.lean | 1 | 18 | ['eric-wieser', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | kim-em | 3 months ago | unknown | unknown |
| 22790 | mhk119 | feat: Extend `taylor_mean_remainder_lagrange` to `x < x_0` | The `taylor_mean_remainder_lagrange` theorem has the assumption that $x_0 < x$. In many applications, we need $x < x_0$ and one cannot use the current version to obtain this (see [zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Taylor's.20theorem)). This PR introduces a set of theorems that push negations through Taylor expansions so that one can extend `taylor_mean_remainder_lagrange` to the case when $x < x_0$. These theorems should also be useful elsewhere since they are quite general. | merge-conflict awaiting-author t-analysis new-contributor | 111/1 | Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/Calculus/Taylor.lean | 3 | 13 | ['Paul-Lez', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'mhk119'] | nobody | 3 months ago | unknown | unknown |
| 22861 | eric-wieser | feat: add the trace of a bilinear form | Following the steps at [#Is there code for X? > Laplacian @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Laplacian/near/450834505). --- [](https://gitpod.io/from-referrer/) Some questions: * Does this generalize to multilinear maps? * Is there an `RCLike` generalization? * Does this generalize to `BilinMap` instead of just `BilinForm`? Perhaps the approach in [#mathlib4 > Stating Schrodinger's equation @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Stating.20Schrodinger's.20equation/near/500409890) of using `ContinuousLinearMap.adjoint'` is better. | merge-conflict awaiting-author t-algebra | 100/0 | Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/Trace.lean | 2 | 4 | ['github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22919 | plp127 | feat(Data/Fintype/Pi): Make `Fintype` instance for `RelHom`s computable | Makes the `Fintype` instance for rel homs computable. See this [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Classical.20vs.20constructive.20logic.20in.20computation/near/496220816) message. --- - [x] depends on: #24748 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 178/44 | Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Data/Fintype/CardEmbedding.lean,Mathlib/Data/Fintype/Pi.lean | 5 | 31 | ['IvanRenison', 'b-mehta', 'eric-wieser', 'fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] | b-mehta | 3 months ago | unknown | unknown |
| 22954 | eric-wieser | feat(RingTheory/Congruence/Hom): copy from GroupTheory | This was motivated in review of #22355, but I no longer recall why. It also helps with #29357. Either way, this captures a definition that was inlined in a later file. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 214/16 | Mathlib/Algebra/RingQuot.lean,Mathlib/GroupTheory/Congruence/Hom.lean,Mathlib/RingTheory/Congruence/Defs.lean,Mathlib/RingTheory/Congruence/Hom.lean,Mathlib/RingTheory/TwoSidedIdeal/Kernel.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 23285 | AntoineChambert-Loir | refactor: directed systems in terms of functors | This is a WIP aiming to refactor the work on directed systems using the category theory library. But there are universes nightmares. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-category-theory large-import merge-conflict | 111/45 | Mathlib/Order/DirectedInverseSystem.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 23460 | Timeroot | feat: Definition of `Clone` | Basics about Clones. Part of #20051 --- - [ ] depends on: #26329 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR | 326/0 | Mathlib.lean,Mathlib/Algebra/Clone/Basic.lean,Mathlib/Algebra/Clone/Defs.lean,Mathlib/Data/Fin/Basic.lean | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 23503 | apnelson1 | feat(Topology/Instances/ENat): ENat and tsum | We give API for the interactions between `tsum` and `ENat`. The type is especially nice, because every function is summable, and there are simplifying lemmas like the statement that a sum is infinite iff either some term is infinite, or the support is infinite. This provides one of the missing pieces for working painlessly with discrete objects, 'propositional' finiteness and cardinality. For instance, one can sum a function `f : a -> ENat` over an arbitrary set with the term `∑' a : s, 1`, and it will be provable that `∑' a : s, 1 = s.encard` and `(support f).encard ≤ ∑' a, f a` without ever having to split into finite/infinite cases. As is pointed out in the module docstring for `Data.ENat`, there are strong analogies between `ENat` and `ENNReal`, and the API runs parallel to the API for `tsum`/`ENNReal`. One could call it 'duplication', but I have yet to find a common generalization of the two that saves work, or a third example of a natural type with these same properties. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology large-import | 205/2 | Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Set/Card.lean,Mathlib/Topology/Instances/ENat.lean | 3 | 3 | ['eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 23585 | plp127 | feat: `Filter.atMax` and `Filter.atMin` | Adds `atMax` and `atMin`, filters. Making an analogy, `atMax` : `atTop` :: `IsMax` : `IsTop`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order | 148/0 | Mathlib.lean,Mathlib/Order/Filter/AtMaxMin.lean | 2 | 5 | ['github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'urkud'] | nobody | 3 months ago | unknown | unknown |
| 23758 | erdOne | feat(Topology/Algebra): linearly topologized iff non-archimedean | ...for topological modules over compact rings or `ℤ`-finite rings --- [](https://gitpod.io/from-referrer/) | t-algebra large-import merge-conflict awaiting-author t-topology | 138/3 | Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/Topology/Algebra/LinearTopology.lean | 2 | 22 | ['ADedecker', 'AntoineChambert-Loir', 'erdOne', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | ADedecker and AntoineChambert-Loir | 3 months ago | unknown | unknown |
| 23835 | chrisflav | feat(Topology): cardinality of connected components is bounded by cardinality of fiber | We show that if `f : X → Y` is an open and closed map to `Y` and `Y` is connected, the number of connected components of `X` is bounded by the cardinality of the fiber of any point. In particular, if `Y` has finitely many connected components and `f` finite fibers, also `X` as finitely many connected components. From Pi1. --- - [x] depends on: #23849 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 241/1 | Mathlib.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/Topology/Clopen.lean,Mathlib/Topology/Connected/CardComponents.lean,Mathlib/Topology/Connected/Clopen.lean | 6 | 11 | ['chrisflav', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | grunweg | 3 months ago | 132 days ago | 64 days |
| 24161 | urkud | feat(Analysis/Calculus/Schwarzian): new file | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 190/3 | Mathlib.lean,Mathlib/Analysis/Calculus/Deriv/ZPow.lean,Mathlib/Analysis/Calculus/Schwarzian/Basic.lean | 3 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 24333 | xcloudyunx | feat(Combinatorics/SimpleGraph): cycle graph implementation for generic vertex types | The existing `cycleGraph` implementation under Combinatorics/SimpleGraph/Circulant.lean only operates over `Fin n`. This PR implements a cycle graph implementation over any generic vertex type. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-combinatorics new-contributor | 187/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cycle.lean | 2 | 42 | ['IvanRenison', 'github-actions', 'mathlib4-merge-conflict-bot', 'vlad902'] | kmill | 3 months ago | unknown | unknown |
| 24540 | robertmaxton42 | feat(Quiv): add the empty, vertex, point, interval, and walking quivers | Add: * The empty quiver * The vertex quiver (one vertex, and no edges) and the point quiver (one vertex, one self-edge) * The interval quiver (two vertices with an edge between them) * The walking quiver (vertices `0` and `1` with two edges both `0 -> 1`. Functors from the walking quiver to `Type` define quivers, by interpreting `F.obj 0` as the type of vertices, `F.obj 1` as the type of edges, using one of the two edges to label the source of every edge and using the other to label the target.) - [x] depends on: #24538 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 370/0 | Mathlib.lean,Mathlib/CategoryTheory/Category/Quiv/Shapes.lean,Mathlib/CategoryTheory/Category/Quiv/WalkingQuiver.lean,Mathlib/Logic/Small/Defs.lean | 4 | 14 | ['github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robertmaxton42', 'robin-carlier'] | nobody | 3 months ago | unknown | unknown |
| 24744 | Timeroot | Post's lattice | Draft PR for now so I can get CI checks. Eventually want to prove Post's Lattice --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 758/0 | Mathlib.lean,Mathlib/Algebra/Clone/Basic.lean,Mathlib/Algebra/Clone/Defs.lean,Mathlib/Algebra/Clone/Instances.lean,Mathlib/Algebra/Clone/PostLattice.lean,Mathlib/Data/Fin/Basic.lean | 6 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 24850 | pechersky | feat(Topology/UniformSpace/Ultra): uniform spaces induced by pseudometrics are ultra if system is ultra | Any uniform space has a natural system of pseudometrics definable on it, comprised of those pseudometrics constructed from a descending chain of equivalence relation entourages. In a nonarchimedean uniformity, this pseudometric system induces the uniformity. --- [](https://gitpod.io/from-referrer/) - [x] depends on: #23111 | merge-conflict t-topology | 509/1 | Mathlib.lean,Mathlib/Topology/MetricSpace/BundledFun.lean,Mathlib/Topology/UniformSpace/Ultra/Pseudometrizable.lean | 3 | 9 | ['ADedecker', 'fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | urkud | 3 months ago | 104 days ago | 162 days |
| 25324 | eric-wieser | feat: more functorial results about DFinsupp | We have these already for Finsupp. The `DFinsupp` statements need some extra casts in some places. --- - [ ] depends on: #27182 [](https://gitpod.io/from-referrer/) [#mathlib4 > Equiv.cast for structures @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Equiv.2Ecast.20for.20structures/near/521390935) | merge-conflict awaiting-author t-algebra t-data | 137/16 | Mathlib/Data/DFinsupp/Defs.lean,Mathlib/LinearAlgebra/DFinsupp.lean | 2 | 13 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | pechersky | 3 months ago | 155 days ago | 19 days |
| 25585 | Paul-Lez | feat(Tactic/Linters/DeprecatedSimpLemma): lint for deprecated simp lemmas | The deprecated simp lemma linter flags declarations that have both the `deprecated` and `simp` attributes. See Zulip discussion: [#mathlib4 > Help with Mathlib.Order.Interval.Finset.Defs @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Help.20with.20Mathlib.2EOrder.2EInterval.2EFinset.2EDefs/near/505994843) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 105/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/DeprecatedSimpLemma.lean,MathlibTest/DeprecatedSimpLemmaTest.lean | 4 | 8 | ['adomani', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25683 | eric-wieser | feat: Enumeration of NonemptyInterval | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data large-import | 52/4 | Mathlib/Data/Sym/Sym2/Fin.lean,Mathlib/Data/Sym/Sym2/Order.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25739 | literandltx | feat(NumberTheory/LegendreSymbol): Add sqrt‐of‐residue theorems for p=4k+3 and p=8k+5 | Add a new file `QuadraticResidueRoots.lean` under `Mathlib/NumberTheory/LegendreSymbol/` that proves two explicit “square-root of quadratic residue” theorems for primes of the specific form. - **`exists_sqrt_of_residue_mod4_eq3`** for primes `p = 4*k + 3` - **`exists_sqrt_of_residue_mod8_eq5`** for primes `p = 8*k + 5` It also introduces the helper lemmas `euler_criterion_traditional` and `legendreSym.at_two_mod8_eq_5`. Import lines in `Mathlib.lean` and `Mathlib/NumberTheory/LegendreSymbol/Basic.lean` have been updated accordingly. | merge-conflict awaiting-author t-number-theory new-contributor | 217/0 | Mathlib.lean,Mathlib/NumberTheory/LegendreSymbol/Basic.lean,Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean,Mathlib/NumberTheory/LegendreSymbol/QuadraticResidueRoots.lean | 4 | 3 | ['github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | literandltx | 3 months ago | unknown | unknown |
| 25746 | robin-carlier | feat(Tactic/CategoryTheory): `Cancelable` boilerplate for the `rotate_isos` WIP tactic | This PR adds some boilerplate that will be used in a forthcoming PR implementing a `rotate_isos` tactic that aims to provide easy ways of moving one or more morphisms that can be inferred to be isomorphisms (not necessarily through the `IsIso typeclass, but also directly by recognizing them as e.g components of natural isomorphisms, or functor application to such morphisms). The boilerplate in this PR abstracts the notion of a cancelable expression for a morphism in a composition of (iso)morphisms in a category, and records a global reference to a list of "cancelable factories", _i.e_ functions that try to recognize term in an expression as a "cancelable" morphism, and provides helper to register such functions. --- First part of a series of 3 PRs contributing the `rotate_isos` tactic to mathlib. Second part will actually implement the tactic, and provide a test suite. Please read the description of the second PR (#24454) to get more details. [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24452.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24452* | merge-conflict awaiting-author t-category-theory t-meta | 162/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Cancelable.lean,scripts/noshake.json | 4 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25747 | robin-carlier | feat(Tactic/CategoryTheory): the `rotate_isos` tactic | We define a `rotate_isos` tactic for category theory in mathlib. At its core, the tactic transform terms of type `α(1) ≫ ⋯ ≫ α(k) = β(1) ≫ ⋯ ≫ β(l)` where `α` and `β` are families of morphisms in whith the first `i` morphisms of the left-hand side and the last `j` morphisms of the right-hand side are isomorhisms, into terms of type `α(k-i) ≫ ⋯ ≫ α(k) ≫ inv β(l) ≫ ⋯ ≫ β(l-j+1) = inv α(j) ≫ ⋯ ≫ inv α(1) ≫⋯ ≫ β(l-j)`. The construction of the inverses of expression are caried at the `Expr` levels are built out of the expressions of the morphisms, for instance, for this tactic, the inverse of `F.map (G.map (H.map f.hom)))` will directly be `F.map (G.map (H.map f.inv)))` (which would have to be re-simplified), rather than an `inv` term form an `IsIso` instance. The tactic can be applied at a local hypothesis or at the main goal, or can be used through a `rotate_isos%` term elaborator if e.g one wants to add such a "rotated" form to a `simp` or `rw` call. We also support removing morphisms "from the right" of the lhs, rather than from the right. --- The motivations behind this tactic are the following : - This tactic can "autogenerate" lemmas and terms generalizing lemmas such as [CategoryTheory.Iso.hom_inv_id_app_app_app](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/NatIso.html#CategoryTheory.Iso.hom_inv_id_app_app_app). This can also generate lemmas `F.map (G.map f.hom) ≫F.map (G.map f.inv) = 𝟙 _`, and can be used to unlock a `simp` call that blocks at an expression of the form `F.map (G.map f.hom) ≫F.map (G.map f.inv) `. - Currently, cancelling morphisms "from the right" in an expression in category theory is a bit of a pain. You have to first reassociate the expression, perform multiple calls to `Iso.inv_comp_eq`, reassociate, etc. This at least automates this process in a fairly straightforward way. - There are expressions in category theory that have no "right forms", e.g the pentagon axiom for monoidal categories, which has many variations in the way one can read the diagram of isomorphisms that represents it. Elaborators such as `rotate_iso%` easily generates all possible forms of such identities from one single form, and avoids having to state multiple forms of the same equality as individual lemmas. - I have been playing with medium-sized diagrams of isomorphisms recently (think for example vertical/horizontal compositions of `CatCommSq`, whiskering a corner of such diagrams, etc.), and it made me wish a lot of time that such easy way to transforms equalities to equivalent forms were available. - [ ] depends on: #25746 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24454.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24454* | WIP blocked-by-other-PR t-category-theory merge-conflict awaiting-author t-meta | 871/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Cancelable.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Core.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Lemmas.lean,MathlibTest/CategoryTheory/RotateIsos.lean,scripts/noshake.json | 7 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25748 | robin-carlier | feat(Tactic/CategoryTheory): Initial lemmas for the `rotate_iso` tactic | This PR records an initial set of lemmas to be used by the WIP `rotate_isos` tactic. --- - [ ] depends on: #25746 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24506.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24506* | merge-conflict blocked-by-other-PR t-meta | 496/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Cancelable.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Lemmas.lean,scripts/noshake.json | 5 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25750 | robin-carlier | feat(Tactic/CategoryTheory): bicategory extension for `rotate_isos` | This PR registers some lemmas to the `rotate_isos` tactic so that it applies in bicategorical contexts. For instance, if `α : g ⟶ h` is an invertible 2-cells, the term `f ◁ α ` is also recognized as invertible, with inverse `f ◁ α' `, where `α'` is the expression for the inverse constructed by the tactic. Without this extension, the tactic would only construct the generic `inv (f ◁ α)` as inverse for this term. --- - [ ] depends on: #25747 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24633.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24633* | merge-conflict blocked-by-other-PR t-category-theory t-meta | 1206/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Bicategory.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Cancelable.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Core.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Lemmas.lean,MathlibTest/CategoryTheory/RotateIsos.lean,scripts/noshake.json | 8 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25751 | robin-carlier | feat(Tactic/CategoryTheory): monoidal extension of `rotate_isos` | This PR registers some lemmas to the `rotate_isos` tactic so that it applies in monoidal contexts. For instance, if α : y ⟶ z is an invertible morphism, the term x ◁ α is also recognized as invertible, with inverse x ◁ α' , where α' is the expression for the inverse constructed by the tactic. Without this extension, the tactic would only construct the generic inv (x ◁ α) as inverse for this term. We also take care of terms of the form `f ⊗ g` --- - [ ] depends on: #25747 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24634.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24634* | merge-conflict blocked-by-other-PR t-category-theory t-meta | 1362/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Cancelable.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Core.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Lemmas.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Monoidal.lean,MathlibTest/CategoryTheory/RotateIsos.lean,scripts/noshake.json | 8 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25752 | robin-carlier | feat(Tactic/CategoryTheory): whiskering lemmas for `rotate_isos` | This PR extends the base set of terms recognized by the `rotate_isos` tactic to include terms of the form `whiskerLeft F f`, `isoWhiskerLeft F e`, and `NatTrans.hcomp`/ `NatIso.hcomp`. --- - [ ] depends on: #25747 Technically, it could depend solely on #24506, but there’s not much point getting this merged if the base tactic is not there. [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24650.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24650* | merge-conflict blocked-by-other-PR t-meta | 1365/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Cancelable.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Core.lean,Mathlib/Tactic/CategoryTheory/RotateIsos/Lemmas.lean,MathlibTest/CategoryTheory/RotateIsos.lean,scripts/noshake.json | 7 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25838 | Bergschaf | feat(Order/Atoms): Finsets are Atomistic | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-order large-import | 31/0 | Mathlib/Order/Atoms.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25974 | 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 |
merge-conflict t-topology large-import | 174/5 | Mathlib/Topology/Compactness/CompactlyCoherentSpace.lean | 1 | 5 | ['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'scholzhannah'] | ADedecker | 3 months ago | 104 days ago | 147 days |
| 25987 | Multramate | refactor(AlgebraicGeometry/EllipticCurve/Affine/*): some minor changes | This PR continues the work from #24571. Original PR: https://github.com/leanprover-community/mathlib4/pull/24571 | merge-conflict t-algebraic-geometry | 0/12 | Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean | 2 | 4 | ['Multramate', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25990 | Multramate | chore(NumberTheory/EllipticDivisibilitySequence): rename definitions | This PR continues the work from #25132. Original PR: https://github.com/leanprover-community/mathlib4/pull/25132 | merge-conflict t-number-theory | 265/45 | Mathlib/NumberTheory/EllipticDivisibilitySequence.lean | 1 | 3 | ['Multramate', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26051 | Komyyy | feat(Mathlib/GroupTheory/SpecificGroups/Alternating): A_n is simple iff n = 3 or 5 ≤ n | --- - [x] depends on: #25299 - [x] depends on: #25314 - [x] depends on: #25367 - [x] depends on: #26098 - [x] depends on: #26552 - [x] depends on: #27498 - [x] depends on: #29234 This PR continues the work from #23555. Original PR: https://github.com/leanprover-community/mathlib4/pull/23555 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-group-theory large-import | 289/71 | Mathlib.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean,Mathlib/GroupTheory/Subgroup/Simple.lean | 4 | 14 | ['Komyyy', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] | nobody | 3 months ago | 231 days ago | 9 days |
| 26165 | oliver-butterley | feat(MeasureTheory.VectorMeasure): add lemma which shows that variation of a `ℝ≥0∞` VectorMeasure is equal to itself | Add a lemma for the variation of a VectorMeasure which tells that if `μ` is `VectorMeasure X ℝ≥0∞` then `variation μ = μ`. Co-authored-by: @yoh-tanimoto - [ ] depends on: #26160 --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-measure-probability | 467/0 | Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Lemmas.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 241 days ago | 15 days |
| 26298 | adomani | test: the commandStart linter only acts on modified files. | Test for #26299: should flag issues in the new file and also in the modified file `Mathlib/Data/Array/Extract.lean`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author t-linter | 63/1 | Mathlib.lean,Mathlib/Data/Array/Extract.lean,Mathlib/New.lean,Mathlib/Tactic/Linter/CommandStart.lean | 4 | 21 | ['adomani', 'bryangingechen', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26300 | igorkhavkine | feat(Analysis/Calculus/FDeriv): continuous differentiability from continuous partial derivatives on an open domain in a product space | If a function `f : E × F → G` is continuously differentiable, then its partial derivatives along `E` and `F` are also continuous. The non-trivial converse implication holds when the partial derivatives are continuous on an open domain, and they can be added together to give the total derivative of `f`. See this [#mathlib4 > Partial derivatives @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Partial.20derivatives/near/520995477) and the containing thread for some discussion. The PR creates a new import (`Mathlib.Analysis.Calculus.FDeriv.Partial`), where other results about partial derivatives could go in the future. --- *this is the migration of #25304 to the PR-from-fork workflow* - [x] depends on: #25564 - [x] depends on: #26273 [](https://gitpod.io/from-referrer/) | WIP new-contributor merge-conflict awaiting-author t-analysis | 468/0 | Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/Partial.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean | 3 | 21 | ['YaelDillies', 'agjftucker', 'github-actions', 'igorkhavkine', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 3 months ago | 201 days ago | 44 days |
| 26329 | Timeroot | feat: Definition of `Clone` notations and typeclasses | Definitions and notation typeclasses for #20051 --- This PR continues the work from #23459. Original PR: https://github.com/leanprover-community/mathlib4/pull/23459 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra awaiting-CI | 100/0 | Mathlib.lean,Mathlib/Algebra/Clone/Defs.lean | 2 | 4 | ['Timeroot', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26398 | ChrisHughes24 | feat(ModelTheory): definable functions | --- Possibly this should be generalized to partial functions. I migrated the PR by hand instead of using the script. - [x] depends on: #20166 - [x] depends on: #20161 - [x] depends on: #20115 - [x] depends on: #20174 - [x] depends on: #20175 - [x] depends on: #21948 [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-logic | 618/0 | Mathlib.lean,Mathlib/ModelTheory/FunctionalFormula.lean | 2 | 13 | ['ChrisHughes24', 'github-actions', 'jcommelin', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'staroperator'] | nobody | 3 months ago | 126 days ago | 87 days |
| 26399 | ChrisHughes24 | refactor(ModelTheory): tidy up proof of Ax-Grothendieck with definable functions | I migrated this PR by hand instead of using the script. --- - [x] depends on: #20166 - [x] depends on: #20161 - [x] depends on: #20115 - [x] depends on: #20174 - [x] depends on: #20175 - [x] depends on: #20180 - [x] depends on: #21948 - [ ] depends on: #26398 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-logic | 639/60 | Mathlib.lean,Mathlib/FieldTheory/AxGrothendieck.lean,Mathlib/ModelTheory/FunctionalFormula.lean | 3 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26432 | AntoineChambert-Loir | feat(Data.Nat.LogFueled): fueled version of `clog` | This PR continues the work from #25557. Original PR: https://github.com/leanprover-community/mathlib4/pull/25557 | merge-conflict t-data | 201/0 | Mathlib.lean,Mathlib/Data/Nat/LogFueled.lean | 2 | 3 | ['AntoineChambert-Loir', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26594 | metakunt | feat(Algebra/Polynomial/ZMod): Add Polynomial.equiv_of_nat_of_polynomial_zmod | This adds an explicit bijection between the naturals and $$\mathbb{Z}/n\mathbb{Z}[X]$$ in a canonical way. --- I feel that some API is missing to make the theorem shorter, I have no idea what lemmas to extract though. Also I don't know when to use spaces and when not, so I did it best effort. | merge-conflict awaiting-author t-algebra new-contributor | 465/0 | Mathlib.lean,Mathlib/Algebra/Polynomial/ZMod.lean | 2 | 3 | ['Ruben-VandeVelde', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 220 days ago | 25 days |
| 26644 | kckennylau | feat(SetTheory/ZFC): Define the language of sets and state the ZFC axioms | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-set-theory | 381/0 | Mathlib.lean,Mathlib/SetTheory/ZFC/Axioms.lean,docs/references.bib | 3 | 50 | ['b-mehta', 'digama0', 'github-actions', 'kckennylau', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot', 'staroperator', 'vihdzp'] | b-mehta | 3 months ago | 191 days ago | 40 days |
| 26648 | eric-wieser | chore(TensorProduct): remove more `suppress_compilation`s | --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-core-PR t-algebra | 3/7 | Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean | 3 | 5 | ['eric-wieser', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 240 days ago | 3 days |
| 26757 | fweth | feat(CategoryTheory/Topos): define elementary topos | This commit begins the formalization of the notion of an *elementary topos*, following the definition in \[Mac Lane & Moerdijk, *Sheaves in Geometry and Logic* (1992), Ch. IV, Section 1]. It introduces the file `Mathlib/CategoryTheory/Topos/Basic.lean`, which currently includes: * The definition of an elementary topos. * Proof that the power object map is a functor * Theorem about pullbacks of characterstic maps Subobject classifiers, which are used in the definition, have already been defined in `CategoryTheory/Topos/Classifier.lean` Work in progress: further formalization of the section is planned. Questions: * Should the definition of power objects be separated into its own file/module, perhaps under `CategoryTheory/Topos/PowerObject.lean`? * Is the notation `P` / `P_morph` / `P_functor` for the power object functor on objects / morphisms / total acceptable? * Should the comments and docstrings rather use the notation from the book, where `g ∘ f` denotes arrow composition from righ to left, or the Lean variant `f ≫ g`? Klaus Gy klausgy@gmail.com --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 401/66 | Mathlib.lean,Mathlib/CategoryTheory/Closed/PowerObjects.lean,Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean,Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equalizer.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/CategoryTheory/Topos/Classifier.lean | 9 | 17 | ['fweth', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | joelriou | 3 months ago | 134 days ago | 61 days |
| 26914 | quangvdao | feat(Data/PFunctor/Univariate): more definitions for univariate `PFunctor` | This PR defines several basic definitions of `PFunctor`, including zero, one, constants, monomials, coproduct (sum), product, sigma, pi, tensor product, universe lifting, and equivalence. We also add: (1) simple lemmas connecting the basic definitions, (2) an automatically derived ext lemma for `PFunctor` via `@[ext]` attribute Some things I'm not clear on: - I define `HAdd` and `HMul` instances for coproduct and product of poly functors having different universe levels. Should I also define `Add` and `Mul` instances for poly functors having the same universe level? - Is it ok to define notation for tensor product, i.e. `@[inherit_doc] scoped infixr:80 " ⊗ " => tensor`? I'm worried it might clash with other notation. - Need a double-check on the priority of notation. Some future definitions to add: - Various equivalences arising from arithmetic identities, e.g., `P + 0 ≃ₚ P`. - Definitions of Lenses and Charts (each of them will be a file or even a folder) - Exponential objects (corresponding to both `prod` and `tensor`) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 144/5 | Mathlib/Data/PFunctor/Univariate/Basic.lean | 1 | 20 | ['alexkeizer', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'quangvdao'] | eric-wieser | 3 months ago | 104 days ago | 133 days |
| 26920 | yuma-mizuno | feat(Tactic.CategoryTheory): add associator inserting tactic | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory t-meta | 714/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Associators.lean,MathlibTest/CategoryTheory/Associators.lean | 4 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26990 | joelriou | feat(CategoryTheory/Abelian): Noetherian objects form a Serre class | This PR continues the work from #22367. Original PR: https://github.com/leanprover-community/mathlib4/pull/22367 | merge-conflict WIP t-category-theory | 311/14 | Mathlib.lean,Mathlib/CategoryTheory/Abelian/SerreClass/NoetherianObject.lean,Mathlib/CategoryTheory/Abelian/Subobject.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/CategoryTheory/Subobject/MonoOver.lean | 5 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 27098 | Paul-Lez | feat(Algebra/Category/ModuleCat/Sheaf/VectorBundle): define vector bundles | This PR defines vector bundles (upstreamed from [formal-conjectures](https://github.com/google-deepmind/formal-conjectures/pull/28/files)). I plan on adding some more API about the definition in this PR, but figured it would be nice to get some initial feedback about the definition before doing so! --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 53/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/VectorBundle.lean | 2 | 5 | ['Kiolt', 'Raph-DG', 'chrisflav', 'github-actions', 'mathlib4-merge-conflict-bot'] | chrisflav | 3 months ago | 216 days ago | 16 days |
| 27155 | Pjotr5 | feat: Shearer's bound on the independence number of triangle free graphs | I added the file IndependenceNumber.lean to the Mathlib.Combinatorics.SimpleGraph.Triangle folder. It contains a proof of a theorem by Shearer on the independence number of triangle-free graphs . I was told this might be useful to add to Mathlib a Zullip thread linked [here](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Convexity.20of.20a.20specific.20function/with/510469526). I tried to comply as much as I could with the Mathlib style guide, but I realise that there is probably still a significant amount of editing to be done. For one thing: there are probably some lemmas and theorems in there that might be better suited in other files, but since this is my first PR I though I would all put it in one file before starting to edit a bunch of files. I was also advised to split up the file into multiple smaller PRs, but since everything is basically serving this one proof I could not really find a natural way to do that. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-combinatorics new-contributor | 1266/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/IndependenceNumber.lean | 2 | 10 | ['Pjotr5', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 27163 | pechersky | feat(Topology/ValuativeRel): of and to basis of compatible valuations | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #30262 | t-number-theory t-algebra merge-conflict awaiting-author t-topology | 229/62 | Mathlib/NumberTheory/LocalField/Basic.lean,Mathlib/Order/Filter/Bases/Basic.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean | 3 | 73 | ['erdOne', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky', 'smmercuri'] | alreadydone | 3 months ago | 106 days ago | 62 days |
| 27187 | Komyyy | feat: `NONote` represents ordinals < ε₀ | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-set-theory | 186/12 | Mathlib/SetTheory/Ordinal/Notation.lean | 1 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | nobody | 3 months ago | unknown | unknown |
| 27215 | kckennylau | feat(AlgebraicGeometry): Define the Zariski site on `CommRingCatᵒᵖ` | We define the Zariski site on `CommRingCatᵒᵖ` by inducing the topology from `Scheme`, and then we show that this topology is equal to the one generated by the pretopology of finite, surjective, and standard open morphisms. --- - [x] depends on: #28614 - [x] depends on: #28615 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebraic-geometry | 312/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean,Mathlib/AlgebraicGeometry/Sites/BigAffineZariski.lean | 3 | 33 | ['chrisflav', 'github-actions', 'joelriou', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | chrisflav | 3 months ago | 161 days ago | 3 days |
| 27309 | kckennylau | feat(CategoryTheory): a presheaf on `CostructuredArrow F d` can be extended to a presheaf on `C` | --- Depends on: * [ ] #27321 Zulip: [#Is there code for X? > over category via a functor](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/over.20category.20via.20a.20functor/with/529574191) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 218/0 | Mathlib.lean,Mathlib/CategoryTheory/Comma/Presheaf/LeftExtension.lean | 2 | 4 | ['erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | erdOne | 3 months ago | 210 days ago | 15 days |
| 27321 | kckennylau | feat(CategoryTheory): Colimit can be computed fiberwise | We consider category `J` equipped with a functor `F : J ⥤ D` to a discrete category `D`. Then the colimit of any diagram `diagram : J ⥤ C` can be computed using the following algorithm: 1. For each `d : D`, compute the colimit of the restricted diagram `F.fiberIncl d ⋙ diagram`. 2. Take the coproduct of these colimits over all `d : D`. We call this "computing the colimit fiberwise". --- Zulip: [#Is there code for X? > over category via a functor](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/over.20category.20via.20a.20functor/with/529574191) [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory awaiting-CI | 136/0 | Mathlib.lean,Mathlib/CategoryTheory/FiberedCategory/Fiber.lean,Mathlib/CategoryTheory/Limits/Shapes/Fiberwise.lean | 3 | 25 | ['github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | nobody | 3 months ago | 188 days ago | 18 days |
| 27417 | PierreQuinton | feat: add `SigmaCompleteLattice` | A $\sigma$-complete lattice is a lattice in which every countable subset `s` has a least upper bound and a greatest lower bound, denoted below by `sSup s` and `sInf s`. This PR adds the classes `SigmaCompleteLattice` as well as some theorems (mainly adapted from `CompleteLattice` and `ConditionallyCompleteLattice`). This is an adaptation of #26318 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-order | 394/0 | Mathlib.lean,Mathlib/Order/SigmaCompleteLattice.lean | 2 | 9 | ['PierreQuinton', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | YaelDillies | 3 months ago | 210 days ago | 12 days |
| 27534 | PierreQuinton | feat: a typeclass for `sSup`/`sInf` to be lawful | Adds lawful infima and suprema type classes. A preorder with lawful suprema: whenever a set has a least upper bound, `sSup` returns a least upper bound for that set. A preorder with lawful infima: whenever a set has a greatest lower bound, `sInf` returns a greastest lower bound for that set. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-order | 121/8 | Mathlib.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/LawfulSupInf.lean | 3 | 26 | ['PierreQuinton', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | YaelDillies | 3 months ago | 104 days ago | 114 days |
| 27753 | YunkaiZhang233 | feat(CategoryTheory): implemented proofs for factorisation categories being equivalent to iterated comma categories in two ways | --- Completed one of the tasks in TODOs, shown and implemented the details for (X/C)/f ≌ Factorisation f ≌ f/(C/Y). This is migrated from my previous PR #22390 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 70/1 | Mathlib/CategoryTheory/Category/Factorisation.lean | 1 | 13 | ['YunkaiZhang233', 'b-mehta', 'github-actions', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | nobody | 3 months ago | 215 days ago | 47 minutes |
| 27824 | ChrisHughes24 | feat(Calculus): exists_gt_of_deriv_pos and variants | --- I created a new file for this as I anticipate there will be many lemmas relating derivatives and monotonicity in future. Some lemmas relating deriviatives to monotonicity are already in mathlib and should maybe moved to the file (e.g. docs#HasDerivWithinAt.nonneg_of_monotoneOn). I stated them in as much generality as I could, copying the generality of `HasDerivWithinAt.nonneg_of_monotoneOn`. - [x] depends on: #28039 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 103/0 | Mathlib.lean,Mathlib/Analysis/Calculus/Deriv/Order.lean | 2 | 37 | ['ChrisHughes24', 'EtienneC30', 'b-mehta', 'github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'urkud'] | hrmacbeth | 3 months ago | 119 days ago | 81 days |
| 27850 | fyqing | feat: 0-dimensional manifolds are discrete and countable | This is the converse direction of the classification of 0-dimensional manifolds. The other direction was shown in #22105. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-differential-geometry new-contributor | 80/0 | Mathlib.lean,Mathlib/Geometry/Manifold/ZeroDim.lean | 2 | 14 | ['fyqing', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'tb65536'] | grunweg | 3 months ago | 214 days ago | 1 hour |
| 27973 | smmercuri | feat: the ring of integers of a `ℤₘ₀`-valued field is compact whenever it is a DVR and the residue field is finite | This PR continues the work from #21844. Original PR: https://github.com/leanprover-community/mathlib4/pull/21844 | merge-conflict awaiting-author t-algebra large-import | 54/2 | Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean | 2 | 9 | ['github-actions', 'mathlib4-merge-conflict-bot', 'pechersky', 'smmercuri'] | nobody | 3 months ago | 159 days ago | 37 days |
| 28124 | kckennylau | feat(Tactic): Call an arbitrary Simproc | In the current framework, `Simproc`s are declared by name, and can only be referred to by name. For example, [Nat.divisors_ofNat](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Tactic/Simproc/Divisors.html#Nat.divisors_ofNat) is declared as: ```lean dsimproc_decl Nat.divisors_ofNat (Nat.divisors _) := fun e => do ``` This declaration syntax does not allow for a `Simproc` to depend on any arguments, and even if one constructed a `Simproc` that depends on e.g. a natural number, such as `foo : ℕ → Simproc`, one still cannot call it using the syntax `by simp [foo 37]`. Therefore, this new function aims to solve this problem, by allowing an arbitrary `Simproc` to be executed, using the newly defined function `Lean.Meta.Simp.Simproc.apply (s : Simproc) : TacticM Unit`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 79/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/Apply.lean,MathlibTest/Simproc/Apply.lean | 4 | 28 | ['JovanGerb', 'b-mehta', 'eric-wieser', 'github-actions', 'hrmacbeth', 'kckennylau', 'mathlib4-merge-conflict-bot'] | JovanGerb | 3 months ago | 174 days ago | 23 days |
| 28125 | nonisomorphiclinearmap | feat(Combinatorics): basic definition of simplicial complexes | This PR introduces the basic definition of a finite (abstract) simplicial complex, located in Mathlib/Combinatorics/SimplicialComplex/Basic.lean. --- This is our first contribution to mathlib. This work was done as part of the Fields Institute Summer Undergraduate Program on formalization in topological combinatorics. Eventually, we aim to formalize Lovasz's proof of the Kneser Conjecture and this is a small stepping stone in that direction. Some other commits will shortly depend on this one. We would like to acknowledge the Fields Institute for Research in Mathematical Sciences for their sponsorship. We would also like to thank our supervisors, Professor Chris Kapulkin and Mr. Daniel Carranza, for their guidance and support throughout this project. We would also like to thank our group members Tom Lindquist and Quang Minh Nguyen for our fruitful discussions. | merge-conflict t-combinatorics new-contributor | 374/0 | Mathlib.lean,Mathlib/Combinatorics/SimplicialComplex/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Category.lean,Mathlib/Combinatorics/SimplicialComplex/FacePoset.lean,Mathlib/Combinatorics/SimplicialComplex/Hom.lean | 5 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | awainverse | 3 months ago | 104 days ago | 99 days |
| 28316 | eric-wieser | feat(Tactic/NormNum): better trace nodes | Comparing the infoview on the first example in the test file
| Before | After |
|---|---|
| |
merge-conflict t-meta | 136/5 | Mathlib.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Util/Trace.lean,MathlibTest/norm_num_trace.lean | 4 | 20 | ['JovanGerb', 'eric-wieser', 'github-actions', 'kmill', 'leanprover-bot', 'mathlib-bors', 'mathlib4-merge-conflict-bot', 'plp127'] | JovanGerb | 3 months ago | 187 days ago | 15 days |
| 28325 | pechersky | feat(WithZeroTopology): `locallyCompactSpace_iff_locallyFiniteOrder_units` | On the way to golf/generalize the proof that locally compact valued fields have locally finite valuation groups as embodied in `Valued.integer.locallyFiniteOrder_units_mrange_of_isCompact_integer` ] --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-order large-import | 81/2 | Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean,Mathlib/Topology/Compactness/Compact.lean | 3 | 13 | ['erdOne', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'ocfnash'] | PatrickMassot | 3 months ago | 109 days ago | 93 days |
| 28349 | kckennylau | feat(Meta): add notation for naming stacked polynomials | This PR changes the notation for naming formal variables associated to recursive polynomial-like objects. Registration is done only once per each polynomial-like functor. Usage: ```lean register_poly_vars "[" "]" Polynomial Polynomial.C Polynomial.X register_poly_vars (mv := true) "[" "]" MvPolynomial MvPolynomial.C MvPolynomial.X name_poly_vars R[a,b][C] name_poly_vars _[x,y,z] ``` `_[[x,y,z]]` allows for the hole to be substituted by any base ring, so `(x : R[[x,y,z]])` will be valid syntax. There has been some discussion about its implementation: * It has been suggested that `R[x,y][z]` should mean that `R[x,y]` is a subring, i.e. `x` should live in `R[x,y]`, but in my implementation `x` lives in the big ring `R[x,y][z]`. There are two ways to get the other behaviour: * One can do `R[x,y]` and then `(R[x,y])[z]`. * One can do `R[a,b]` and `R[x,y][z]`. I personally prefer this one because we should make it clearer that they are different rings. * There has been some discussion over what `R` means. In my implementation, if you ever refer to a `variable` called `R`, then `R` is fixed to that variable, meaning that if you later define a variable with the same name, `R` will still refer to the old variable. Also, this does not respect namespace, meaning that if you refer to `Foo.bar[x,y]`, and later open `Foo`, you will not be able to access the declared ring with `bar[x,y]`. --- I have not mass deployed the new syntax at every possible location, I plan to do that in a future PR following this. Zulip: [#mathlib4 > Notation for polynomial variables](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Notation.20for.20polynomial.20variables) This is a refactor of the currently existing [Mathlib.Tactic.namePolyVarsOver](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Tactic/Ring/NamePolyVars.html#Mathlib.Tactic.namePolyVarsOver). More explicitly, the current invocation `name_poly_vars x,y over R` is now `poly_variable R[x,y]`. The behaviours inherited from `name_poly_vars` are: * We do not synthesize the necessary instances (such as `[CommRing R]`) at the point of declaration, but only when the new notations are used. * We refer to an explicit term (`R` in the examples) which is "fixed", in the sense that: * it is only valid for `R` explicitly, and not any other `variable` such as `S`. * it has built-in hygiene, so if you shadow the variable by declaring a new `variable (R : Type*)`, it will still refer to the old one. And the new behaviours are: * Currently only `x` and `y` are new notations, but in the new tactic the whole ring `R[x,y]` is also available as notation. * Currently only the forward direction (i.e. elaboration, going from `x` to `MvPolynomial.X 0`) is implemented, but in the new tactic we also implement the backward direction, printing `MvPolynomial.X 0` back as `x` (and `MvPolynomial (Fin 2) R` is printed as `R[x,y]`). * Support beyond just `MvPolynomial`. * Support for nested polynomial-like rings, such as `R[x,y][t][[z]]` for `PowerSeries (Polynomial (MvPolynomial (Fin 2) R))`. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 778/87 | Counterexamples/CliffordAlgebraNotInjective.lean,Mathlib.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/PolyVariable.lean,Mathlib/Tactic/Ring/NamePolyVars.lean,MathlibTest/PolyVariable.lean,scripts/noshake.json | 10 | 110 | ['JovanGerb', 'adamtopaz', 'chrisflav', 'eric-wieser', 'github-actions', 'j-loreaux', 'kckennylau', 'kim-em', 'mathlib4-merge-conflict-bot', 'plp127', 'robertmaxton42', 'sgouezel'] | adamtopaz | 3 months ago | 111 days ago | 57 days |
| 28530 | nonisomorphiclinearmap | feat(Combinatorics/SimplicialComplex/Topology): add standard simplices and geometric realisation (colimit + functoriality) | Introduce the standard simplex on a finite vertex set and build the geometric realisation |X| of a simplicial complex. Prove that |X| is the colimit of the face diagram δ_X : X.faces ⥤ TopCat, and define the induced map on realisations |φ| : |X| ⟶ |Y| for a simplicial map φ. Show that the abstract map from colimit functoriality agrees with the concrete push-forward of barycentric coordinates. Package these into a functor SimplicialComplexCat ⥤ TopCat. --- This is our first contribution to mathlib. This work was done as part of the Fields Institute Summer Undergraduate Program on formalization in topological combinatorics. Eventually, we aim to formalize Lovasz's proof of the Kneser Conjecture and this lays the groundwork to do this. We would like to acknowledge the Fields Institute for Research in Mathematical Sciences for their sponsorship. We would also like to thank our supervisors, Professor Chris Kapulkin and Mr. Daniel Carranza, for their guidance and support throughout this project. I would also like to thank our group members Sebastian Kumar, Tom Lindquist and Quang Minh Nguyen for our fruitful discussions. - [ ] depends on: #28125 | merge-conflict blocked-by-other-PR t-combinatorics new-contributor | 1826/0 | Mathlib.lean,Mathlib/Combinatorics/SimplicialComplex/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Category.lean,Mathlib/Combinatorics/SimplicialComplex/FacePoset.lean,Mathlib/Combinatorics/SimplicialComplex/Hom.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Colimit.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Diagram.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Functor.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/GeomReal/Map.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/Simplex.lean,Mathlib/Combinatorics/SimplicialComplex/Topology/SimplexMap.lean | 12 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 28868 | yury-harmonic | feat(Positive): add `OfNat` instance | Also fix defeq for `Div` in the `Group` instance. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra large-import | 41/13 | Mathlib/Algebra/Order/Positive/Field.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Data/PNat/Defs.lean | 3 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot', 'yury-harmonic'] | nobody | 3 months ago | unknown | unknown |
| 28871 | JaafarTanoukhi | feat(Combinatorics/Digraph): Tournaments | Define orientations and tournaments. Related to #26771.
Co-authored-by: Rida Hamadani |
merge-conflict t-combinatorics new-contributor | 62/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Digraph/Tournament.lean | 3 | 6 | ['JaafarTanoukhi', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'mathlib4-merge-conflict-bot'] | kmill | 3 months ago | 104 days ago | 71 days |
| 29055 | vihdzp | feat: `Ordinal.toENat` | We essentially copy the Cardinal/ENat file but make it for ordinals instead. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2317758.20Ordinal.2EtoENat/near/479768508) for some prior discussion on this PR (particularly, the duplication and how there's no easy way to resolve it.) --- Moved from #17758. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-set-theory | 292/0 | Mathlib.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/SetTheory/Cardinal/ENat.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/ENat.lean | 6 | 9 | ['github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | alreadydone | 3 months ago | 116 days ago | 71 days |
| 29108 | JonBannon | feat(MeasureTheory): add `LInfty.lean` with `Mul` and `const` related results. | Continuing to develop pieces needed for a `CStarAlgebra` instance for `Lp R ∞ μ`, we introduce a file `MeasureTheory.Function.LInfty.lean` that takes `MeasureTheory.Function.LpSpace.Basic` and `MeasureTheory.Function.Holder` as imports, and introduces the `Mul` instance on Linfty, and const-related results. In a future PR we will handle `One`, as this will require dealing with `AEEqFun` as well as `Lp` level objects and it's probably best to handle these together in a single PR. We opted to add this file to keep imports light, since adding the `Mul` results to `Basic` would require importing `Holder`, and including these results in `Holder` seemed too specific and would make `Holder` heavier. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-measure-probability | 91/0 | Mathlib.lean,Mathlib/MeasureTheory/Function/LInfty.lean | 2 | 6 | ['JonBannon', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 182 days ago | 4 days |
| 29425 | pechersky | feat(NumberTheory/Padics/Torsion): `HasEnoughRootsOfUnity ℤ_[p] (p - 1)` | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #29403 - [x] depends on: #29404 - [x] depends on: #29405 - [x] depends on: #29408 - [x] depends on: #29424 - [ ] depends on: #30989 | merge-conflict awaiting-author t-ring-theory blocked-by-other-PR | 179/0 | Mathlib.lean,Mathlib/NumberTheory/Padics/Torsion.lean,Mathlib/RingTheory/ZMod/Torsion.lean | 3 | 6 | ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | erdOne | 3 months ago | 108 days ago | 44 days |
| 29481 | llllvvuu | feat(LinearAlgebra/Eigenspace): roots of matrix minpoly give spectrum | This is derived from the corresponding result on linear maps. --- - [x] depends on: #29478 for some simp lemmas [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra large-import | 13/0 | Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean | 1 | 5 | ['github-actions', 'llllvvuu', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 175 days ago | 3 hours |
| 29500 | vihdzp | feat: `WellFoundedLT (LowerSet α)` | We prove that `LowerSet α` is well-founded when `α` is a WQO. --- This result is used in the CGT repository to construct the poset game! [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-order | 31/0 | Mathlib.lean,Mathlib/Order/UpperLower/WellFounded.lean | 2 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] | bryangingechen | 3 months ago | 163 days ago | 10 days |
| 29526 | llllvvuu | feat: `Multiset.map f` identifies `f` up to permutation | Motivation: Reason about `Fintype`-indexed families via `Multiset` equality.
Example use case 1:
```lean
theorem Matrix.IsHermitian.cfc_eigenvalues {d : Type*} [Fintype d] [DecidableEq d]
{M : Matrix d d 𝕜} (hM : M.IsHermitian) (f : ℝ → ℝ)
(hcfc : Matrix.IsHermitian (cfc f M) := cfc_predicate f M) :
∃ (e : d ≃ d), hcfc.eigenvalues = f ∘ hM.eigenvalues ∘ e := by
have := hcfc.roots_charpoly_eq_eigenvalues.symm
rw [hM.charpoly_cfc_eq f, Polynomial.roots_prod] at this; swap
· simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero]
simp_rw [Polynomial.roots_X_sub_C, Multiset.bind_singleton] at this
have he := (Multiset.compTriple_equivOfMapUnivEq this).comp_eq
simp_rw [← Function.comp_def RCLike.ofReal, ← Function.comp_def f, Function.comp_assoc] at he
exact ⟨_, RCLike.ofReal_injective.comp_left he.symm⟩
```
Example use case 2 (on top of https://github.com/leanprover-community/mathlib4/pull/29610):
```lean
theorem LinearMap.Eigenbasis.μ_equiv {ι ι' R G : Type*} [Fintype ι] [Fintype ι']
[CommRing R] [IsDomain R] [AddCommGroup G] [Module R G] [Module.Free R G] [Module.Finite R G]
{f : Module.End R G} (B₁ : f.Eigenbasis ι) (B₂ : f.Eigenbasis ι') :
∃ e : ι ≃ ι', B₁.μ = B₂.μ ∘ e := by
classical
have := congr(Polynomial.roots $(B₁.charpoly_eq.symm.trans B₂.charpoly_eq))
rw [Polynomial.roots_prod, Polynomial.roots_prod] at this; rotate_left
· simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero]
· simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero]
simp_rw [Polynomial.roots_X_sub_C, Multiset.bind_singleton] at this
exact ⟨Multiset.equivOfMapUnivEq this, (Multiset.compTriple_equivOfMapUnivEq this).comp_eq.symm⟩
```
Co-authored-by: Aristotle Harmonic |
merge-conflict t-data | 35/0 | Mathlib/Data/Multiset/Fintype.lean | 1 | 9 | ['Ruben-VandeVelde', 'github-actions', 'llllvvuu', 'mathlib4-merge-conflict-bot', 'vihdzp', 'wwylele'] | pechersky | 3 months ago | 104 days ago | 69 days |
| 29675 | yury-harmonic | feat(Wolstenholme): new file | Co-authored-by: @Aristotle-Harmonic --- I still need to cleanup the proof and write the docs. For now, it's just what the AI generated, forward-ported to the latest Mathlib. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author help-wanted t-data | 198/0 | Mathlib.lean,Mathlib/Data/Nat/Choose/Wolstenholme.lean | 2 | 4 | ['github-actions', 'mathlib4-merge-conflict-bot', 'yury-harmonic'] | nobody | 3 months ago | unknown | unknown |
| 29720 | javra | feat(CategoryTheory): `TransportEnrichment` and `ForgetEnrichment` as 2-functors | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 63/1 | Mathlib/CategoryTheory/Enriched/Basic.lean,Mathlib/CategoryTheory/Enriched/EnrichedCat.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 29827 | js2357 | feat: define two (trivial) ContinuousMulEquivs | Define two trivial `ContinuousMulEquiv`s: `ContinuousMulEquiv.piUnique` is the topological version of `MulEquiv.piUnique`. `ContinuousMulEquiv.piEquivPiSubtypeProd` is the multiplicative version of `Homeomorph.piEquivPiSubtypeProd`. Done for the FLT project. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology FLT large-import | 25/0 | Mathlib/Topology/Algebra/ContinuousMonoidHom.lean | 1 | 3 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 29947 | JaafarTanoukhi | feat(Combinatorics/Digraph): Maps | Ported `SimpleGraph/Maps.lean` to `Digraph/Maps.lean` for future PRs related to issue #[26771](https://github.com/leanprover-community/mathlib4/issues/26771) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics new-contributor | 476/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Maps.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | awainverse | 3 months ago | 104 days ago | 54 days |
| 30004 | luigi-massacci | feat(MeasureTheory/Integral/TestAgainst): integrating BCFs against a finite measure or an L1Loc map as CLMs | This PR merges #29511 and #29748. Create a new file `TestAgainst.lean` with definitions wrapping integration against a finite measure or a locally integrable map as continuous linear maps on bounded continuous functions. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis t-measure-probability | 112/1 | Mathlib.lean,Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean,Mathlib/MeasureTheory/Integral/TestAgainst.lean | 3 | 48 | ['EtienneC30', 'github-actions', 'j-loreaux', 'luigi-massacci', 'mathlib4-merge-conflict-bot'] | EtienneC30 | 3 months ago | 125 days ago | 31 days |
| 30022 | ADedecker | feat: theory of `IsRightUniformGroup` and `IsLeftUniformGroup` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 799/150 | Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean | 2 | 7 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30042 | JovanGerb | feat(push): `@[push]` attributes for `∈` in `Set`, `Finset` and `Multiset` | This PR adds `@[push]` annotations for the membership relations, for `Set`, `Finset` and `Multiset`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 171/105 | Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/ListOfFn.lean,Mathlib/Algebra/Order/Group/Multiset.lean,Mathlib/Data/DFinsupp/Interval.lean,Mathlib/Data/Finmap.lean,Mathlib/Data/Finset/BooleanAlgebra.lean,Mathlib/Data/Finset/Dedup.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Disjoint.lean,Mathlib/Data/Finset/Filter.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Insert.lean,Mathlib/Data/Finset/Lattice/Basic.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/Finset/Pi.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Finset/Range.lean,Mathlib/Data/Finset/SDiff.lean,Mathlib/Data/Finset/Sigma.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/Finset/Sum.lean,Mathlib/Data/Finset/Sups.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Multiset/AddSub.lean,Mathlib/Data/Multiset/Antidiagonal.lean,Mathlib/Data/Multiset/Bind.lean,Mathlib/Data/Multiset/Dedup.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Multiset/FinsetOps.lean,Mathlib/Data/Multiset/MapFold.lean,Mathlib/Data/Multiset/Pi.lean,Mathlib/Data/Multiset/Range.lean,Mathlib/Data/Multiset/Replicate.lean,Mathlib/Data/Multiset/Sort.lean,Mathlib/Data/Multiset/Sum.lean,Mathlib/Data/Multiset/UnionInter.lean,Mathlib/Data/Multiset/ZeroCons.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Order/Interval/Finset/Defs.lean,Mathlib/Order/Interval/Multiset.lean,Mathlib/Order/Interval/Set/Defs.lean,Mathlib/Order/SetNotation.lean,MathlibTest/push.lean | 49 | 14 | ['JovanGerb', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | grunweg | 3 months ago | 112 days ago | 23 days |
| 30230 | CoolRmal | feat(MeasureTheory): Basic properties of the integral against a vector measure with a bilinear form. | Create a folder named Integral in the folder about vector measures. Define the integral of a function against a vector measure with a bilinear form, and prove that integral is a linear operator on functions, bilinear forms, and vector measures, respectively. Several useful lemmas are added into the file about variations of a vector measure (e.g. triangle inequality). --- - [ ] depends on: #28499 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-measure-probability | 1353/0 | Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Integral/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Integral/L1.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Lemmas.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30330 | Bergschaf | feat(Algebra/Group/Action/Equidecomp): Mathlib's definition of Equidecomposability is equivalent to the standart one using partitions | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra large-import | 329/1 | Mathlib/Algebra/Group/Action/Equidecomp.lean | 1 | 6 | ['Bergschaf', 'Felix-Weilacher', 'github-actions', 'mathlib4-merge-conflict-bot'] | Vierkantor | 3 months ago | 127 days ago | 15 days |
| 30374 | FLDutchmann | feat(Tactic): `algebra` and `polynomial` tactic suite | Implement a suite of tactics for normalizing expressions in an algebra over a ring. Handles all of the normal `ring` operations as well as scalar multiplication over a fixed base ring. Using these, implement tactics to normalize `(Mv)Polynomial` expressions into a sum-of-monomials form. Specifically, * `algebra` proves equality of expressions in an algebra over a ring like `ring1` * `algebra_nf` puts expressions in an algebra into a normal form, like `ring_nf` * `match_scalars_alg` (name pending) closes an equality goal by calling `algebra_nf` and creating side goals equating matching coefficients in the base ring. Like `match_scalars`. * `polynomial` proves equality of (mv)polynomials * `polynomial_nf` expands polynomials into a sum-of-monomials form, combining coefficients in the base ring (e.g. `C a * X + C b * X` normalizes to `C(a+b) * X` * `match_coefficients` expands polynomials and produces side goals equating matching coefficients. - [ ] depends on: #31506 - [ ] depends on: #31508 - [ ] depends on: #31513 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author blocked-by-other-PR t-meta | 2371/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Algebra.lean,Mathlib/Tactic/Algebra/Lemmas.lean,Mathlib/Tactic/Polynomial.lean,Mathlib/Tactic/Polynomial/Core.lean,MathlibTest/Polynomial.lean,MathlibTest/algebra.lean,scripts/noshake.json | 9 | 7 | ['FLDutchmann', 'github-actions', 'hrmacbeth', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30392 | urkud | feat: define pullback quotient maps | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 287/0 | Mathlib.lean,Mathlib/Topology/ClusterPt.lean,Mathlib/Topology/Maps/PullbackQuotient.lean | 3 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30451 | kckennylau | feat(HomogeneousIdeal): generalize to homogeneous submodule | Continuation of #30437 with permission from @jjaassoonn, which is a continuation of #9820 . The definitions, constructions and theorems in `HomogeneousIdeal.lean` are generalized to homogeneous submodules. Let `R` be a graded ring and `M` be a graded `R`-module. Say an `R`-submodule `N` of `M` is homogeneous if for every `x` in `N`, each projection of `x` to `M_i` is in `N`. None of this file's results depends on the grading on `R`, but we include the grading on `R` for technical reasons. We define the "homogeneous core" of a not necessarily homogeneous submodule N to be the biggest homogeneous submodule contained within N, and the "homogeneous hull" to be the smallest homogeneous submodule that contains N. All definitions/constructions/theorems are then copied for ideals/homogeneous ideals. The motivation of this generalization is graded quotient module. (#18716) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 553/181 | Mathlib/Algebra/Module/GradedModule.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean | 6 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | mariainesdff | 3 months ago | 126 days ago | 16 days |
| 30933 | joelriou | feat(CategoryTheory): the linearization of a category | Let `C` be a category and `R` be a commutative ring. We construct a `R`-linear category `Linearization C R` and a functor `toLinearization C R : C ⥤ Linearization C R`. The morphisms in `Linearization C R` are the free `R`-modules on the types of morphisms in `C`. (In the context of singular homology with coefficients `R`, chains of a fixed degree shall identify to morphisms in `Linearization TopCat R`, and doing certain computations for arbitrary coefficients should reduce to computations with `R := ℤ`.) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 134/0 | Mathlib.lean,Mathlib/CategoryTheory/Linear/Linearization.lean | 2 | 4 | ['github-actions', 'joelriou', 'kim-em', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 126 days ago | 2 days |
| 31194 | grunweg | feat: add `#check'` command and tactic, which only show explicit arguments | In some areas (such as differential geometry), many lemmas have a *lot* of implicit and typeclass arguments.
Using `#check foo` to determine which explicit arguments are expected for a given lemma gives output which is painful to read, because the explicit argument is buried among many lines of other output.
The `#check'` command and tactic produce very similar output, but with implicit and typeclass arguments omitted.
This increases usability a lot.
In the future, this could (and should) be unified to the #check command in core, by becoming e.g. `#check +only-explicit`. Until then, let us add this to mathlib to facilitate experimentation of the most useful behaviour.
From the project towards geodesics and the Levi-Civita connection.
Co-authored-by: Kyle Miller |
merge-conflict awaiting-author t-meta | 151/11 | Mathlib/Tactic/Check.lean,MathlibTest/Check.lean | 2 | 12 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'thorimur'] | thorimur | 3 months ago | 109 days ago | 11 days |
| 31314 | hrmacbeth | feat: linters for recommended `field_simp` style | --- - [x] depends on: #31472 - [x] depends on: #31483 [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-CI | 93/1 | Mathlib.lean,Mathlib/Lean/Meta/WarningAsError.lean,Mathlib/Tactic/Field.lean | 3 | 5 | ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 31351 | grunweg | feat: manifolds with smooth boundary | Needs polish, and closing the remaining sorries (or deciding they can be postponed later). From my bordism theory project. --- - [x] depends on: #22070 - [x] depends on: #22128 - [x] depends on: #22131 - [x] depends on: #22082 - [x] depends on: #22113 - [x] depends on: #22105 - [x] depends on: #26099 - [x] depends on: #30049 (preliminary code clean-up) - [x] depends on: #29589 - [x] ~~depends on: https://github.com/grunweg/mathlib4/tree/mfderiv-prodmap for actually proving the mfderiv sorry about products I need~~ done now - [ ] depends on: #31200 (and its companion result, about Sum.map) - [ ] depends on #23040 for the mathlib-level definition of smooth immersions and embeddings This PR continues the work from #22059. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry | 591/0 | Mathlib.lean,Mathlib/Geometry/Manifold/HasSmoothBoundary.lean | 2 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 14704 | Command-Master | feat(FieldTheory): define typeclass for simple extensions, and prove some properties | Define `SimpleExtension F K`, which says that `K` is a simple field extension of `F`, and show that together with transcendentality it implies `IsFractionRing F[X] K`. --- - [x] depends on: #14710 [](https://gitpod.io/from-referrer/) | WIP t-algebra new-contributor merge-conflict awaiting-author | 120/0 | Mathlib.lean,Mathlib/FieldTheory/SimpleExtension.lean | 2 | 19 | ['Command-Master', 'acmepjz', 'github-actions', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] | nobody | 3 months ago | unknown | unknown |
| 31356 | adomani | feat: add inspect-like functions | Produces a tree-like formatting for `Syntax`, `Expr` and `InfoTree`. Especially for the `InfoTree`s, there are *many* parts of it that do not get printed. For instance, this is how the `InfoTree`s of `set_option linter.missingDocs true` get printed: ```lean inspectIT set_option linter.missingDocs true /- commandCtx |-Info.ofCommandInfo: Lean.Elab.Command.elabSetOption, 'set_option…gDocs true' | |-Info.ofCompletionInfo.CompletionInfo.option 'set_option…issingDocs' | |-Info.ofOptionInfo: linter.missingDocs, Linter.linter.missingDocs -/ ``` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 720/0 | Mathlib.lean,Mathlib/Util/Inspect.lean,MathlibTest/Inspect.lean | 3 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] | kim-em | 3 months ago | 104 days ago | 11 days |
| 31604 | maksym-radziwill | feat: analyticity of dslope | This adds a few simple functions to show that ``dslope f a`` is analytic when ``f`` is. This is needed for Borel-Caratheodory, see https://github.com/leanprover-community/mathlib4/pull/30424 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 51/0 | Mathlib.lean,Mathlib/Analysis/Analytic/Dslope.lean | 2 | 26 | ['github-actions', 'grunweg', 'maksym-radziwill', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 110 days ago | 35 minutes |
| 31738 | robertmaxton42 | feat: quivers can be represented as functors from the walking quiver | Add definitions and associated lemmas for representing quivers as functors from the category `1 ⇉ 0`, i.e. `WalkingParallelPairᵒᵖ`. New definitions: * `asFunctor` itself, which is defined as a bare function with an associated `Functorial` instance so that it can be used with generalized projection notation * `src` and `tgt`, abbreviations for `F.map left.op` and `F.map right.op` for a functor `F : WalkingParallelPairᵒᵖ ⥤ Type w` * `Vertex`, `Edges`, and `Edge`, abbreviations for `F.obj 0` (interpreted as the type of vertices), `F.obj 1` (interpreted as the total type of all edges), and `{e : F.obj 1 // src e = s ∧ tgt e = t}` for some pair of vertices `s` and `t` (interpreted as the hom-type `s ⟶ t`) * `edgeOfEq`, the equivalent of `Quiver.homOfEq` for edges in quivers in functor form. --- This PR begins the first of a series proving that the category `Quiv.{v, u}` is equivalent to the subcategory of $$\mathbf{PSh}(\mathbf{WQuiv}^\mathrm{op})$$ which are appropriately '`u`-small' and 'locally `v`-small'. The original PR (prior to the move to forks) created a custom type `WalkingQuiver` for this purpose; ultimately I found that `WalkingParallelPairᵒᵖ` served my purposes well enough. Following this PR will be one constructing the adjoint `ofFunctor`, plus several showing that `asFunctor` and `ofFunctor` can be assembled into an equivalence and proving various properties of quivers in functor form necessary for the construction of colimits. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 397/0 | Mathlib.lean,Mathlib/CategoryTheory/Category/Quiv/AsOfFunctor.lean | 2 | 13 | ['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'robertmaxton42'] | nobody | 3 months ago | unknown | unknown |
| 21915 | YaelDillies | feat: simproc for `Int.divisorsAntidiag` | Co-authored-by: Paul Lezeau --- - [x] depends on: #21912 - [x] depends on: #21991 [](https://gitpod.io/from-referrer/) | WIP t-meta | 75/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/DivisorsAntidiag.lean | 3 | 9 | ['YaelDillies', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 19475 | YaelDillies | feat: group markings | From LeanCamCombi --- - [ ] depends on: #21342 [](https://gitpod.io/from-referrer/) | WIP t-algebra blocked-by-other-PR | 194/3 | Mathlib.lean,Mathlib/Geometry/Group/Marking.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/Group/Quotient.lean | 4 | 15 | ['YaelDillies', 'b-mehta', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 15443 | YaelDillies | feat: Marcinkiewicz-Zygmund inequality | Prove the Marcinkiewicz-Zygmund inequality.
The Marcinkiewicz-Zygmund inequality states that, if `X₁, ..., Xₐ ∈ L^p` are independent random
variables of mean zero valued in some inner product space, then the `L^p`-norm of `X₁ + ... + Xₐ` is
at most `Cₚ` times the `L^(p/2)`-norm of `|X₁|² + ... + |Xₐ|²`, where `Cₚ` is a constant depending on
`p` alone.
From LeanAPAP
Co-authored-by: Bhavik Mehta |
WIP t-analysis | 189/0 | Mathlib.lean,Mathlib/Probability/MarcinkiewiczZygmund.lean | 2 | 40 | ['Parcly-Taxel', 'YaelDillies', 'b-mehta', 'github-actions', 'hrmacbeth', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | nobody | 3 months ago | unknown | unknown |
| 31590 | SuccessMoses | chore: tag `commutatorElement_def` with `simp` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 1/0 | Mathlib/Algebra/Group/Commutator.lean | 1 | 2 | ['github-actions', 'grunweg'] | nobody | 3 months ago | unknown | unknown |
| 31587 | JovanGerb | Lean pr testing 11156 | Testing the performance improvement given by not deleting cache so often when modifying the environment. cf. https://github.com/leanprover/lean4/pull/11156 --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 760/625 | Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1997Q3.lean,Archive/Imo/Imo2024Q5.lean,Archive/MiuLanguage/Basic.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Cache/Requests.lean,Counterexamples/PolynomialIsDomain.lean,Mathlib.lean,Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/Algebra/CharP/Subring.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Group/Int/Even.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/Subsemigroup/Operations.lean,Mathlib/Algebra/Homology/Augment.lean,Mathlib/Algebra/Homology/Embedding/Connect.lean,Mathlib/Algebra/Lie/LieTheorem.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Lie/Weights/Chain.lean,Mathlib/Algebra/Lie/Weights/RootSystem.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Order/Field/Power.lean,Mathlib/Algebra/Order/Group/Unbundled/Int.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Polynomial/CoeffList.lean,Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean,Mathlib/Algebra/Polynomial/Degree/IsMonicOfDegree.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/Factors.lean,Mathlib/Algebra/Polynomial/Homogenize.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean,Mathlib/Algebra/Ring/Action/Invariant.lean,Mathlib/Algebra/Ring/Ext.lean,Mathlib/Algebra/Ring/Periodic.lean,Mathlib/Algebra/Ring/Subsemiring/Defs.lean,Mathlib/Algebra/Star/Module.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/AlgebraicGeometry/SpreadingOut.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean,Mathlib/AlgebraicTopology/DoldKan/Faces.lean,Mathlib/AlgebraicTopology/Quasicategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean,Mathlib/Analysis/Asymptotics/Theta.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean,Mathlib/Analysis/Convex/StdSimplex.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean,Mathlib/Analysis/Matrix/Spectrum.lean,Mathlib/Analysis/Meromorphic/Basic.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Analysis/Normed/Field/UnitBall.lean,Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean,Mathlib/Analysis/Normed/Module/Ball/RadialEquiv.lean,Mathlib/Analysis/Normed/Ring/Ultra.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean,Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean,Mathlib/Combinatorics/Additive/AP/Three/Defs.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean,Mathlib/Combinatorics/Quiver/Arborescence.lean,Mathlib/Combinatorics/Schnirelmann.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/Computability/Primrec.lean,Mathlib/Control/Random.lean,Mathlib/Data/Char.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Inv.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/SuccPred.lean | 297 | 5 | ['JovanGerb', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 110 days ago | 5 seconds |
| 25802 | dagurtomas | feat(AlgebraicTopology): anodyne morphisms of simplicial sets | --- [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #20201.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/20201* | WIP t-topology | 145/0 | Mathlib/AlgebraicTopology/Anodyne.lean,Mathlib/AlgebraicTopology/KanFibration.lean,Mathlib/CategoryTheory/MorphismProperty/WeakSaturation.lean | 3 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 6268 | eric-wieser | fix: fixups to #3838 | This is an attempt to make #3838 universe polymorphic --- [](https://gitpod.io/from-referrer/) * Depends on #6271 * Depends on #8876 | merge-conflict WIP | 186/107 | Mathlib/Control/Random.lean,Mathlib/Tactic/SlimCheck.lean,Mathlib/Testing/SlimCheck/Functions.lean,Mathlib/Testing/SlimCheck/Gen.lean,Mathlib/Testing/SlimCheck/Sampleable.lean,Mathlib/Testing/SlimCheck/Testable.lean,test/slim_check.lean | 7 | 10 | ['github-actions', 'kim-em'] | nobody | 3 months ago | unknown | unknown |
| 6859 | MohanadAhmed | feat: TryLean4Bundle: Windows Bundle Creator | # `TryLean4Bundle`: Windows Bundle Creator A Windows batch script and a CI yml file that create an self extracting archive. The user should 1. just download the archive, 2. double click the archive to expand 3. double click the `RunLean.bat` script in the expanded archive. The script currently downloads 7 dependencies into CI then unpacks them in the appropriate locations and finally packs them back. To try a bundle created using these scripts but from a different repo see (https://github.com/MohanadAhmed/TryLean4Bundle/releases) --- [](https://gitpod.io/from-referrer/) | WIP help-wanted CI | 114/0 | .github/workflows/mk_windows_bundle.yml,scripts/windowsBundle.bat | 2 | 0 | [] | nobody | 3 months ago | unknown | unknown |
| 6993 | jjaassoonn | feat: lemmas about `AddMonoidAlgebra.{divOf, modOf}` | --- - [x] depends on: #7582 - [x] depends on: #8975 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 147/3 | Mathlib/Algebra/MonoidAlgebra/Division.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/MvPolynomial/Basic.lean,Mathlib/Data/MvPolynomial/CommRing.lean,Mathlib/Data/MvPolynomial/Division.lean | 5 | 42 | ['YaelDillies', 'alreadydone', 'digama0', 'eric-wieser', 'github-actions', 'jjaassoonn', 'leanprover-community-mathlib4-bot'] | nobody | 3 months ago | unknown | unknown |
| 7427 | MohanadAhmed | feat: eigenvalues sorted in ascending/descending order | In the file `Analysis.InnerProductSpace.Spectrum` todo notes were left saying: > TODO Postcompose with a permutation so that these eigenvectors are listed in increasing order of eigenvalue. > TODO Postcompose with a permutation so that these eigenvalues are listed in increasing order. - This is a start in that direction --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 162/4 | Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/NormedSpace/PiLp.lean,Mathlib/LinearAlgebra/Matrix/Spectrum.lean | 3 | 0 | [] | nobody | 3 months ago | unknown | unknown |
| 9339 | FMLJohn | feat(RingTheory/GradedAlgebra/HomogeneousIdeal): given a finitely generated homogeneous ideal of a graded semiring, construct a finite spanning set for the ideal which only contains homogeneous elements | --- - [ ] depends on: #8187 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 402/4 | Mathlib.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/Module/GradeZeroModule.lean,Mathlib/RingTheory/Finiteness.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean,Mathlib/RingTheory/GradedAlgebra/Noetherian.lean | 8 | 11 | ['FMLJohn', 'github-actions', 'jjaassoonn', 'leanprover-community-mathlib4-bot'] | nobody | 3 months ago | unknown | unknown |
| 9564 | AntoineChambert-Loir | chore: weaken commutativity assumptions for AdjoinRoot.lift and AdjoinRoot.liftHom | I weaken a commutativity assumption for docs#AdjoinRoot.liftHom that the target algebra be commutative. It is only assumed to be a Semiring. For that, I need to generalize docs#AdjoinRoot.lift which takes `i : R ->+* S`, `a : S` with `f.eval₂ i a = 0` and defines `AdjoinRoot f ->+* S` that extends `i ` and sends `AdjoinRoot.root f` to `a`. --- The initial version of the PR was to define `AdjoinRoot.lift'` where `S` is only a Semiring, with the additional assumption `hcomm : ∀ r, Commute (i r) a` that the element `a` commutes with the image of `i`. @jcommelin suggested to provide this argument as an `autoParam`, filled in by an ad hoc `commutativity` tactic. However, such an argument cannot be made implicit and a first version required to have this argument given each time, most of the time by `_`, even for all subsequent lemmas, `AdjoinRoot.lift_mk`, etc. To avoid this, I tried to make this assumption a `⦃hcomm : ∀ r, Commute (i r) a⦄`. This appears to have some side effects that proofs using an `exact` tactic or in term mode do not work well, but one can resort on `by simp […]`. Maybe @eric-wieser or @Vierkantor will have opinions on that. In some cases one can still give the argument as `(hcomm := by commutativity)`. (There are 3 options : - separate lemmas for the fully commutative case and for the case where a proof is needed - using the `commutativity` tactic, but with an argument `_` sometimes - using the optional argument.) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 146/30 | Mathlib.lean,Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Commutativity.lean,Mathlib/Tactic/Commutativity/Init.lean | 8 | 14 | ['AntoineChambert-Loir', 'Vierkantor', 'eric-wieser', 'jcommelin'] | nobody | 3 months ago | unknown | unknown |
| 10026 | madvorak | feat: linear programming according to Antoine Chambert-Loir's book | --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237386.20Linear.20Programming Four PRs incompatible with each other: https://github.com/leanprover-community/mathlib4/pull/7386 (list of constraints) https://github.com/leanprover-community/mathlib4/pull/9693 (matrix form) https://github.com/leanprover-community/mathlib4/pull/10026 (Antoine Chambert-Loir's def; semirings, linear) https://github.com/leanprover-community/mathlib4/pull/10159 (Antoine Chambert-Loir's def; rings, affine) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 86/0 | Mathlib.lean,Mathlib/LinearAlgebra/LinearProgramming.lean | 2 | 10 | ['eric-wieser', 'madvorak', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] | nobody | 3 months ago | unknown | unknown |
| 10159 | madvorak | feat: linear programming according to Antoine Chambert-Loir's book — affine version | --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237386.20Linear.20Programming Four PRs incompatible with each other: https://github.com/leanprover-community/mathlib4/pull/7386 (list of constraints) https://github.com/leanprover-community/mathlib4/pull/9693 (matrix form) https://github.com/leanprover-community/mathlib4/pull/10026 (Antoine Chambert-Loir's def; semirings, linear) https://github.com/leanprover-community/mathlib4/pull/10159 (Antoine Chambert-Loir's def; rings, affine) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 83/0 | Mathlib.lean,Mathlib/LinearAlgebra/LinearProgramming.lean | 2 | 8 | ['eric-wieser', 'madvorak', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] | nobody | 3 months ago | unknown | unknown |
| 10349 | Shamrock-Frost | refactor(CategoryTheory/MorphismProperty): some clean-ups | We make explicit some of the galois connections/closure operators in the existing MorphismProperty file, rewrite some proofs to take advantage of these structures, and change map/inverseImage by (1) swapping their argument order, for consistency with Set.range and Set.preimage and (2) making "map" perform the strict, evil map while "essMap" (previously called map) forms the closure of the image under isomorphisms. Finally we add `IsMultiplicative` instances for isos/epis/monos, with an eye towards constructing the wide subcategory on these classes of maps. --- - [x] depends on: #10347 - [x] depends on: #10348 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 474/318 | Mathlib/CategoryTheory/Localization/Composition.lean,Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean,Mathlib/CategoryTheory/MorphismProperty.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/Order/Closure.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Hom/CompleteLattice.lean,Mathlib/Order/RelIso/Basic.lean | 8 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 3 months ago | unknown | unknown |
| 11021 | jstoobysmith | feat(AlgebraicTopology): add join of augmented SSets | This pull-request adds the definition of the join of augmented SSets defined as contravariant functors from `WithInitial SimplexCategory` to `Type u`. In addition it shows that the join of two standard augmented SSets is again an augmented SSets. From this the definition of the join of simplicial sets should follow easily. To aid the above theory, an api for `WithInitial SimplexCategory` has been created, with the notion of the `join` and `split` (forming a sort of inverse to join) of objects in this category are defined. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebraic-topology new-contributor | 2137/1 | .gitignore,Mathlib.lean,Mathlib/AlgebraicTopology/Join.lean,Mathlib/AlgebraicTopology/SimplexCategory.lean,Mathlib/AlgebraicTopology/SimplexCategoryWithInitial.lean,Mathlib/AlgebraicTopology/SimplicialSet.lean | 6 | 47 | ['github-actions', 'jcommelin'] | nobody | 3 months ago | unknown | unknown |
| 11800 | 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. --- [](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 | 3 months ago | unknown | unknown |
| 12087 | JADekker | feat: complete API for K-Lindelöf spaces | --- - [ ] depends on: #11800 (which is now awaiting a design decision) [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-topology blocked-by-other-PR | 789/17 | Mathlib.lean,Mathlib/Order/Filter/CardinalInter.lean,Mathlib/Topology/Compactness/KLindelof.lean,Mathlib/Topology/Compactness/Lindelof.lean | 4 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 3 months ago | unknown | unknown |
| 12251 | ScottCarnahan | refactor(RingTheory/HahnSeries): several generalizations | This PR is a container for several smaller PRs that refactor and generalize the existing Hahn series theory. It is (I think) all we need from Hahn series to get a palatable theory of vertex algebras off the ground (other prerequisites from Lie algebras will eventually come in a different PR). Major changes include: - equivalence between iterated Hahn series and Hahn series on Lex products. - introduce `orderTop` and `leadingCoeff` functions. Here, `orderTop` is a `WithTop Γ`-valued version of `order` that does not need `[Zero Γ]` and `leadingCoeff` returns the coefficient of the minimal element of support (or zero if empty). - introduce ordered and cancellative vector addition classes together with some basic theory e.g., finiteness of antidiagonals for partially well-ordered sets. - `HahnSeries Γ R`-module structure on `HahnModule Γ' R V`, when `Γ` is an `OrderedCancelAddCommMonoid`, `Γ'` is a `PartialOrder` with `OrderedCancelVAdd Γ Γ'`, `R` is a semiring, and `V` is an `R`-module. - Move `AddVal` to a separate file - the underlying function is just `orderTop`, but the description of the valuation needs an additional import and an `IsDomain` hypothesis. Results that depended on `AddVal` are changed to use `orderTop` and generalized. --- - [x] depends on: #10781 [HahnSeries on Lex product] - [x] depends on: #10846 [HahnModule] - [x] depends on: #11965 [orderTop] - [x] depends on: #11979 [OrderedVAdd] - [x] depends on: #12996 [leadingTerm] - [x] depends on: #16649 - [x] depends on: #16701 - [x] depends on: #17004 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra t-order | 1059/97 | Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/HahnSeries/Basic.lean,Mathlib/RingTheory/HahnSeries/HEval.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Summable.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 12394 | JADekker | feat: define pre-tight and tight measures | Define tight measures (by first defining separable and pre-tight measures). Define some api for all three concepts Prove Ulam's tightness theorem and a strengthened version of this. --- [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict awaiting-author t-measure-probability | 503/0 | Mathlib.lean,Mathlib/MeasureTheory/Measure/Tight.lean | 2 | 34 | ['EtienneC30', 'JADekker', 'github-actions', 'sgouezel'] | nobody | 3 months ago | unknown | unknown |
| 12452 | JADekker | feat(Cocardinal): add some more api | Just a small PR to add a bit more API for cocardinal filters. Not everything seems to generalise nicely from cofinite, so I didn't include such results. Currently the file has one `sorry`, I'm not sure how to complete this proof. --- [](https://gitpod.io/from-referrer/) | t-topology awaiting-CI | 75/0 | Mathlib/Order/Filter/Cocardinal.lean | 1 | 0 | [] | nobody | 3 months ago | unknown | unknown |
| 14426 | adomani | feat: `#min_imps` command (development branch) | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 142/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/MinImports.lean,test/MinImports.lean | 4 | 2 | ['adomani', 'github-actions'] | nobody | 3 months ago | unknown | unknown |
| 14686 | smorel394 | feat(AlgebraicGeometry/Grassmannian): define the Grassmannian scheme | # The Grassmannian scheme Define the Grassmannian scheme by gluing affine charts. We fix a commutative ring `K`, a free `K`-module of finite type `V` and two natural numbers `r` and `c`. The scheme we define should parametrize surjective `K`-linear maps `V →ₗ[K] (Fin r → K)`, assuming that `V` is of rank `r + c`. We actually define the scheme without assuming the condition on the rank of `V`, but it is empty unless the rank of `V` is `r + c`. Main definitions: * `Grassmannian.glueData K V r c`: the `AlgebraicGeometry.Scheme.GlueData` defining the Grassmannian scheme. * `Grassmannian K V r c`: the Grassmannian scheme, defined as `(Grassmannian.glueData K V r c).glued`. * `Grassmannian.structMorphism K V r c`: the structural morphism from `Grassmannian K V r c` to `Spec K`. # Implementation We use as index type for the charts the type `Basis (Fin (r + c)) K V` (so this is empty unless `V` is free of rank `r + c`). All the charts are the same and equal to the affine space with coordinates indexed by `Fin c × Fin r`, that is, to `Spec (MvPolynomial (Fin c × Fin r) K)`. The idea is that, for `i` in `Basis (Fin (r + c)) K V`, the corresponding chart will parametrize all surjective `K`-linear maps `φ : V →ₗ[K] (Fin r → K)` that become isomorphisms when restricted to the `K`-submodule generated by the first `r` vectors of the basis `i`. To get the point of the chart corresponding to `φ`, we take the matrix of `φ` in the basis `i` of `V` and the canonical basis of `Fin r → K`, we divide it on the right by its top `r × r` square submatrix (which is invertible by assumption), and we taken the botton `c × r` submatrix. This is almost the usual description of the Grassmannian by charts, with three differences: * We consider the Grassmannian parametrizing `r`-dimensional quotients of `V` instead of `r`-dimensional subspaces of `V`, because this is more natural when working over a general ring (or scheme). * In the usual description, we fix a basis of `V` and index the chart by its subsets `I` of cardinality `r`. Here, to avoid making a choice, we instead index charts by the set of bases of `V` and always choose the subset `I` to consist of the first `r` vectors. * Instead of working with `FiniteDimensional.finrank K V - r`, which would cause technical trouble because of the way subtraction works on `ℕ`, we introduce the codimension `c` as an auxiliary variable, and our constructions are only interesting when `r + c` is equal to `FiniteDimensional.finrank K V`. # Why is this a WIP * There a bunch of lemmas in the file `AlgebraicGeometry/Grassmannian/Lemmas.lean` that either should not be necessary or should be put in another PR for some other part of mathlib. * The proofs in `AlgebraicGeometry/Grassmannian/Basic.lean` are probably too complicated, and the names suck. # Notes. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. --- - [x] depends on: #14711 [](https://gitpod.io/from-referrer/) | please-adopt WIP workshop-AIM-AG-2024 merge-conflict t-algebraic-geometry | 1002/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/Grassmannian/Basic.lean,Mathlib/AlgebraicGeometry/Grassmannian/Lemmas.lean | 3 | 15 | ['erdOne', 'github-actions', 'joelriou', 'leanprover-community-mathlib4-bot', 'smorel394'] | nobody | 3 months ago | unknown | unknown |
| 17071 | ScottCarnahan | feat(LinearAlgebra/RootSystem): separation, base, cartanMatrix | This PR defines an abstract separation structure for roots, together with the associated base and Cartan Matrix. In general, the good properties will follow from additional order hypotheses on the base ring (implemented in a future PR). --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 111/0 | Mathlib.lean,Mathlib/LinearAlgebra/RootSystem/Separation.lean | 2 | 1 | ['github-actions'] | nobody | 3 months ago | unknown | unknown |
| 17471 | joelriou | feat(Algebra/ModuleCat/Differentials/Sheaf): the sheaf of relative differentials | --- - [ ] depends on: #17366 - [x] depends on: #17388 - [x] depends on: #16755 - [ ] depends on: #17469 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR t-category-theory large-import merge-conflict t-algebraic-geometry | 740/10 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean,Mathlib/Algebra/Category/ModuleCat/Differentials/Sheaf.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pullback.lean,Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/Algebra/Ring/Hom/Defs.lean,Mathlib/AlgebraicGeometry/Modules/Differentials.lean,Mathlib/Geometry/RingedSpace/SheafedSpace.lean | 9 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 18626 | hannahfechtner | feat: define Artin braid groups | Define the Artin braid group on infinitely many strands. Includes a toGroup function which defines a function out of the braid group to any other group (given a function which satisfies the braid relations) (more to come in this file; next up: Artin braid groups on finitely many strands) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 91/0 | Mathlib.lean,Mathlib/GroupTheory/SpecificGroups/BraidGroup/Basic.lean | 2 | 22 | ['github-actions', 'hannahfechtner', 'jcommelin', 'joelriou'] | nobody | 3 months ago | unknown | unknown |
| 18784 | erdOne | feat(AlgebraicGeometry): use `addMorphismPropertyInstances` | --- - [ ] depends on: #18785 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-geometry blocked-by-other-PR | 435/91 | Mathlib.lean,Mathlib/AlgebraicGeometry/Cover/Open.lean,Mathlib/AlgebraicGeometry/Morphisms/Affine.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean,Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean,Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Proper.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean,Mathlib/AlgebraicGeometry/Restrict.lean,Mathlib/CategoryTheory/MorphismProperty/Composition.lean,Mathlib/CategoryTheory/MorphismProperty/Limits.lean,Mathlib/CategoryTheory/MorphismProperty/Tactic.lean,MathlibTest/AddMorphismPropertyInstances.lean | 18 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 19062 | hannahfechtner | feat(Algebra/PresentedMonoid/Basic): facts about rel | Add in a number of useful theorems (reflexivity, closure under multiplication) and lemmas about when the PresentedMonoid.rel holds as an API for users --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 38/0 | Mathlib/GroupTheory/Congruence/Defs.lean | 1 | 8 | ['github-actions', 'hannahfechtner', 'kbuzzard', 'riccardobrasca'] | nobody | 3 months ago | unknown | unknown |
| 19607 | madvorak | feat: block matrices are totally unimodular | --- Discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/TU.20block.20matrix.20.2319607 - [ ] depends on: #19323 - [ ] depends on: #20428 - [ ] depends on: #20433 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR | 156/0 | Mathlib.lean,Mathlib/Data/Sum/Decompose.lean,Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean | 3 | 11 | ['github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'madvorak', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 20029 | FrederickPu | feat(Tactic/simps): allow for Config attributes to be set directly | Allow for Config attributes to be set directly when using initialize_simp_projection as per issue #19895 Basically modified initialize_simp_projection so that the user has the option of specifying a tuple of config option values. Ex: ``` initialize_simp_projection MulEquiv (toFun → apply, invFun → symm_apply) (fullyApplied := false) ``` These config options are then converted into projections. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP new-contributor t-meta | 34/4 | Mathlib/Tactic/Simps/Basic.lean | 1 | 11 | ['FrederickPu', 'YaelDillies', 'fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 3 months ago | unknown | unknown |
| 21269 | 658060 | feat(CategoryTheory/Topos): basic definitions and results in topos theory | This code contains basic definitions and results in topos theory, including the definition of a subobject classifier, power objects, and topoi. It is proved that every topos has exponential objects, i.e. "internal homs". The mathematical content follows chapter IV sections 1-2 of Mac Lane and Moerdijk's text "Sheaves in Geometry and Logic". --- - [x] depends on: #21281 [](https://gitpod.io/from-referrer/) | WIP t-category-theory new-contributor merge-conflict awaiting-author | 1269/0 | Mathlib.lean,Mathlib/CategoryTheory/Topos/Basic.lean,Mathlib/CategoryTheory/Topos/Classifier.lean,Mathlib/CategoryTheory/Topos/Exponentials.lean,Mathlib/CategoryTheory/Topos/Power.lean | 5 | 10 | ['658060', 'gio256', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 22805 | ScottCarnahan | feat(FieldTheory/Finite): fixed points of Frobenius automorphism | This PR identifies the prime field with the fixed points of frobenius. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 325/7 | Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Finite/GaloisField.lean | 4 | 1 | ['github-actions'] | nobody | 3 months ago | unknown | unknown |
| 23772 | SEU-Prime | feat: Amice equivalence | i built amice equiv [](https://gitpod.io/from-referrer/) | WIP t-number-theory | 283/0 | Mathlib/NumberTheory/Padics/Amice.lean | 1 | 2 | ['grunweg'] | nobody | 3 months ago | unknown | unknown |
| 23990 | robertmaxton42 | feat(Types.Colimits): Quot is functorial and colimitEquivQuot is natural | Add `Functor.quotFunctor` to parallel `Functor.sectionsFunctor`, witnessing that `Quot` is functorial; add `colimNatIsoQuotFunctor` to parallel `limNatIsoSectionsFunctor`, witnessing that `colimitEquivQuot` is natural in the diagram $F$. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 33/0 | Mathlib/CategoryTheory/Limits/Types/Colimits.lean | 1 | 5 | ['github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'robertmaxton42'] | nobody | 3 months ago | unknown | unknown |
| 24533 | robertmaxton42 | feat(ULift): conjugation by ULift.up/down, misc cast/heq lemmas | * Adds the convenience def `ULift.conj x := `down (f (up x))`, and corresponding basic lemmas * Adds lemmas showing that `ULift.up` and `.down` commute with casts and preserve `HEq`. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data | 31/0 | Mathlib/Data/ULift.lean | 1 | 23 | ['eric-wieser', 'github-actions', 'grunweg', 'robertmaxton42'] | nobody | 3 months ago | unknown | unknown |
| 24690 | ScottCarnahan | feat(Data.Prod): reverse lexicographic order | This PR implements the type synonym RevLex as a one-field structure, defines an order on products, and proves an order isomorphism with the Lex product with factors switched. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order | 141/0 | Mathlib.lean,Mathlib/Data/Prod/RevLex.lean | 2 | 5 | ['ScottCarnahan', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] | YaelDillies | 3 months ago | unknown | unknown |
| 24692 | ScottCarnahan | feat(RingTheory/HahnSeries/Basic): isomorphism of Hahn series induced by order isomorphism | This PR introduces an isomorphism of Hahn series induced by an order isomorphism on the exponent posets. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order | 35/0 | Mathlib/RingTheory/HahnSeries/Basic.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25034 | ScottCarnahan | feat(Algebra/Module/Equiv/Basic): Restriction of scalars from a semilinear equivalence to a linear equivalence | If `M` and `M₂` are both `R`-modules and modules for `S` and `S₂`, respectively, then for any ring isomorphism `e` between `S` and `S₂` and any `e`-semilinear equivalence between `M` and `M₂` that respects the `R`-action, we obtain an `R`-linear equivalence between `M` and `M₂`. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra | 28/0 | Mathlib/Algebra/Module/Equiv/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 3 months ago | unknown | unknown |
| 25831 | ScottCarnahan | feat(RingTheory/HahnSeries): Powers of a binomial | This PR introduces powers of a binomial `single g 1 - single g' 1` in a Hahn series, where the powers take values in a binomial ring. These series behave as one would expect with respect to addition of powers, and comparison with natural number powers. They are often used in the theory of vertex algebras. --- - [x] depends on: #25830 - [x] depends on: #27497 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24102.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24102* | merge-conflict WIP t-ring-theory | 132/0 | Mathlib.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/HahnSeries/Binomial.lean,Mathlib/RingTheory/HahnSeries/HEval.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean | 5 | 14 | ['ScottCarnahan', 'github-actions', 'kbuzzard', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | kbuzzard | 3 months ago | 120 days ago | 80 days |
| 26455 | ScottCarnahan | feat(LinearAlgebra/RootSystem): API for CartanMatrix | Some attempts at working out good ways to eliminate bad Cartan matrices. Very much WIP --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 815/26 | Mathlib/Algebra/Group/Action/Faithful.lean,Mathlib/LinearAlgebra/LinearIndependent/Basic.lean,Mathlib/LinearAlgebra/RootSystem/Base.lean,Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean,Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Relations.lean,Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean,Mathlib/LinearAlgebra/RootSystem/RootPositive.lean | 9 | 8 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 250 days ago | 4 hours |
| 26804 | kckennylau | feat(SetTheory): ZFSet is a model of ZFC | --- Depends on: * [ ] #26644 `Mathlib/SetTheory/ZFC/Model.lean` is the main file, and it starts at Line 346. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-set-theory | 1245/0 | Mathlib.lean,Mathlib/SetTheory/ZFC/Axioms.lean,Mathlib/SetTheory/ZFC/Model.lean,docs/references.bib | 4 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 3 months ago | unknown | unknown |
| 26881 | emo916math | feat(Analysis/Calculus/Deriv/Star): a formula for `deriv (conj ∘ f ∘ conj)` | Added a lemma that `deriv (conj ∘ f ∘ conj) = conj ∘ deriv f ∘ conj`, proved by cases on whether the derivative mathematically exists or not. This PR replaces [#26805](https://github.com/leanprover-community/mathlib4/pull/26805); see discussion there. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-analysis new-contributor | 50/2 | Mathlib/Analysis/Calculus/Deriv/Star.lean | 1 | 15 | ['emo916math', 'github-actions', 'j-loreaux', 'kckennylau'] | j-loreaux | 3 months ago | 207 days ago | 31 days |
| 26890 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): more API for `DayFunctor` | We provide some lemmas that helps characterizing the monoidal structure on `DayFunctor`, they are special cases of the lemmas for `LawfulDayConvolutionMonoidalCategoryStruct`. --- - [x] depends on: #26824 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 1372/19 | Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean | 4 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26310 | kckennylau | feat: binary forms | This PR provides the basic definition of binary forms, which are homogeneous polynomials in two variables. --- - [ ] depends on: #26312 - [ ] depends on: #26313 - [ ] depends on: #26314 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 73/0 | Mathlib.lean,Mathlib/RingTheory/MvPolynomial/BinaryForm.lean | 2 | 14 | ['MichaelStollBayreuth', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] | ocfnash | 3 months ago | 196 days ago | 7 days |
| 26283 | kckennylau | feat: resultant of polynomials | --- This is a WIP PR for resultant for me to get cache. PRs produced: * [x] #25139 (migrated to #26091) * [x] #25270 * [x] #25279 * [x] #25293 * [x] #25294 * [x] #25305 * [x] #26285 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 1190/0 | Mathlib.lean,Mathlib/Algebra/Polynomial/Resultant/Basic.lean,Mathlib/Algebra/Polynomial/Resultant/MvPolynomial.lean,Mathlib/RingTheory/Polynomial/Discriminant.lean | 4 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 27991 | sinianluoye | feat(Rat): add Rat.den_eq_of_add_den_eq_one and its dependent lemmas | ```lean4 example {q r : ℚ} (h : (q + r).den = 1) : q.den = r.den := by ``` It is so simple, but I couldn't find it in current mathlib repo. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data new-contributor | 22/0 | Mathlib/Data/Rat/Lemmas.lean | 1 | 33 | ['github-actions', 'kim-em', 'mathlib-bors', 'pechersky', 'sinianluoye', 'themathqueen'] | pechersky | 3 months ago | 135 days ago | 74 days |
| 28215 | 5hv5hvnk | feat: strong and Weak connectivity for Digraphs | strong and weak connectivity in Digraphs --- Should resolve a part of issue #26771 Main additions in the PR: 1. Walks in Digraphs (Walk.lean) - Basic walk structure with start and end vertices - Support for walk operations: append, reverse, length - Support functions: getVert, copy, support 2. Walk Decompositions (WalkDecomp.lean) - takeUntil and dropUntil functions to split walks - rotate operation for loop walks - Theorems relating to walk decomposition properties 3. Subgraphs (subgraph.lean) - Subgraph structure for digraphs - Induced and spanning subgraph predicates - Lattice structure (sup, inf, top, bot) - Coercion to standalone digraphs 4. Paths (Paths.lean) - Trail, Path, Circuit, Cycle definitions - Path structure with no repeating vertices - Theorems relating different path types - Basic connectivity definitions (reachable, weakly/strongly connected) 5. Connectivity (Connected.lean) - Reachability relations and properties - Strong and weak connectivity definitions - Connected component types: - StronglyConnectedComponent - WeaklyConnectedComponent - ConnectedComponent - Component properties and equivalence relations --> [](https://gitpod.io/from-referrer/) | WIP new-contributor merge-conflict awaiting-author t-combinatorics | 1266/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Connected.lean,Mathlib/Combinatorics/Digraph/Paths.lean,Mathlib/Combinatorics/Digraph/Subgraph.lean,Mathlib/Combinatorics/Digraph/Walk.lean,Mathlib/Combinatorics/Digraph/WalkDecomp.lean | 6 | 4 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 28970 | Whysoserioushah | feat(Algebra/Algebra/ReducedNorm): defines reduced norm and trace | TODO : 1. add the theorem proving reduced charpoly is independent from the choice of AlgEquiv (blocked by this [discussion](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Algebra.2ETensorProduct.2Eassoc/with/536349758)) 2. prove reduced charpoly is "actually" in the polynomial ring of base field (blocked by this [discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.E2.9C.94.20Refactor.20Subfield)) therefore content about this topic is basically the best I could do for now :-( --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 66/0 | Mathlib.lean,Mathlib/Algebra/Algebra/ReducedNorm.lean | 2 | 19 | ['Whysoserioushah', 'chrisflav', 'erdOne', 'eric-wieser', 'github-actions', 'kbuzzard', 'mathlib4-merge-conflict-bot'] | chrisflav | 3 months ago | 148 days ago | 40 days |
| 29212 | Whysoserioushah | feat(Algebra/CrossProductAlgebra/Defs): define Cross Product Algebra | PS: All to-dos listed in the file has been fully sorry-freed and will be (slowly) upstreamed by either me or Yaël
Co-authored-by: Yaël Dillies |
merge-conflict awaiting-author t-algebra | 270/0 | Mathlib.lean,Mathlib/RepresentationTheory/CrossProductAlgebra/Defs.lean,docs/references.bib | 3 | 9 | ['Whysoserioushah', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 177 days ago | 5 days |
| 29514 | grunweg | feat(CI): use more strict mode | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP CI | 192/33 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/ValidatePRTitle.lean,lakefile.lean,scripts/README.md,scripts/check_title_labels.lean | 10 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 29574 | JarodAlper | feat: regular local rings are domains | We have added three new files in Mathlib/RingTheory/LocalRing * EmbeddingDimension.lean * LocalRingDimension.lean * RegularLocalRings.lean We have added two lemmas and an instance in Mathlib/RingTheory/LocalRing/RingHom/Basic.lean This work was done by Jarod Alper and Brian Nugent. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory new-contributor | 910/3 | Mathlib.lean,Mathlib/RingTheory/LocalRing/EmbeddingDimension.lean,Mathlib/RingTheory/LocalRing/LocalRingDimension.lean,Mathlib/RingTheory/LocalRing/RegularLocalRings.lean,Mathlib/RingTheory/LocalRing/RingHom/Basic.lean,lake-manifest.json | 6 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 28718 | imbrem | feat: class for chosen finite coproducts | Added basic `ChosenFiniteCoproducts` class, and started porting some of the lemmas about `ChosenFiniteProducts` suitably translated --- This, combined with #20182 modified to use chosen finite coproducts and premonoidal categories (#21488), should be enough for me to formalize strong Elgot categories, and hence a lot of categorical iteration theory for my PhD thesis. Re-done from #21603 to deal with changes in #24399 and #24390 Eventually, if we really want to harmonize approaches, we could introduce an `AddMonoidalCategory` struct and do the analogous to #24399 and #24390 for additive monoidal structure, but that seems like a massive overcomplication for now. It would allow formalizing fun things like rig categories, though. - [ ] depends on: #30150 | blocked-by-other-PR t-category-theory new-contributor merge-conflict awaiting-author | 290/0 | Mathlib.lean,Mathlib/CategoryTheory/ChosenFiniteCoproducts.lean | 2 | 9 | ['YaelDillies', 'github-actions', 'imbrem', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | nobody | 3 months ago | unknown | unknown |
| 30352 | kckennylau | feat(RingTheory): Homogeneous localization of tensor product | Let `𝒜` be a graded `R`-algebra, and `S` be an `R`-algebra. Then `S ⊗[R] 𝒜` is a graded `S`-algebra with the same grading. Let `W` be a homogeneous submonoid of `𝒜`. Then `(S⊗[R]𝒜)[(1⊗W)⁻¹]₀ ≅ S ⊗[R] (𝒜[W⁻¹]₀)`. --- Split from #26061. - [x] depends on: #30173 - [ ] depends on: #30322 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR | 563/48 | Mathlib.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct/Decomposition.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Flat/Basic.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean,Mathlib/RingTheory/GradedAlgebra/TensorLocalization.lean,Mathlib/RingTheory/GradedAlgebra/TensorProduct.lean | 13 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30366 | sinhp | feat(CategoryTheory): The Preliminaries for Locally Cartesian Closed Categories | See https://github.com/leanprover-community/mathlib4/pull/21525 This PR defines the basic preliminaries for defining locally cartesian closed categories (LCCCs). First, we develop a computable implementation of pullbacks, by introducing a new type-class `ChosenPullback`. The non-computable `HasPullbacksAlong` and `HasPullbacks` predicates yield instances of `ChosenPullback` using global choice, but interestingly in the category of types every morphism has chosen pullbacks. Also, cartesian monoidal categories, morphisms to the terminal object and the product projections have chosen pullbacks. We prove that `ChosenPullback` has good closure properties, e.g., isos have chosen pullbacks, and composition of morphisms with chosen pullbacks have chosen pullbacks. Separately, we prove that pull-push along a morphism with chosen pullbacks gives the (cartesian) binary product of that morphism, seen as an object of a slice category, and any other object of the same slice category. In fact, we also prove the stronger statement, namely that the pull-push composition `(Over.ChosenPullback.pullback Z.hom) ⋙ (Over.map Z.hom)` is naturally isomorphic to the right tensor product functor `_ × Y` in `Over X`. _This is going to be crucial in our mate-based approach to LCCCs_. Also, using the calculus of mates we define certain natural isomorphisms involving `Over.star` and `Over.pullback` which will be used in defining the right adjoint to the pullback functor in the development of LCCCs. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 4865/526 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,Mathlib.lean,Mathlib/Algebra/Algebra/Spectrum/Quasispectrum.lean,Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/BrauerGroup/Defs.lean,Mathlib/Algebra/Category/Grp/Subobject.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean,Mathlib/Algebra/Category/ModuleCat/Semi.lean,Mathlib/Algebra/CharP/Frobenius.lean,Mathlib/Algebra/Colimit/Ring.lean,Mathlib/Algebra/Field/MinimalAxioms.lean,Mathlib/Algebra/GroupWithZero/Hom.lean,Mathlib/Algebra/Homology/ComplexShapeSigns.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Linear.lean,Mathlib/Algebra/Homology/DerivedCategory/Linear.lean,Mathlib/Algebra/Homology/HomologySequenceLemmas.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomologicalFunctor.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/AlgebraicGeometry/Modules/Presheaf.lean,Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/IsUniquelyCodimOneFace.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean,Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean,Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean,Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplicesSubcomplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/Analysis/Analytic/ChangeOrigin.lean,Mathlib/Analysis/Calculus/FDeriv/Prod.lean,Mathlib/Analysis/Calculus/IteratedDeriv/ConvergenceOnBall.lean,Mathlib/Analysis/Complex/OperatorNorm.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean,Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean,Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean,Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean,Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean,Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Adjunction/CompositionIso.lean,Mathlib/CategoryTheory/Adjunction/Mates.lean,Mathlib/CategoryTheory/Bicategory/Strict/Pseudofunctor.lean,Mathlib/CategoryTheory/Category/ULift.lean,Mathlib/CategoryTheory/Closed/Cartesian.lean,Mathlib/CategoryTheory/Comma/StructuredArrow/Small.lean,Mathlib/CategoryTheory/ComposableArrows.lean,Mathlib/CategoryTheory/Discrete/StructuredArrow.lean,Mathlib/CategoryTheory/EssentiallySmall.lean,Mathlib/CategoryTheory/Filtered/Final.lean,Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean,Mathlib/CategoryTheory/Generator/Abelian.lean,Mathlib/CategoryTheory/Generator/Basic.lean,Mathlib/CategoryTheory/Generator/StrongGenerator.lean,Mathlib/CategoryTheory/GuitartExact/KanExtension.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Filtered.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Final/Connected.lean,Mathlib/CategoryTheory/Limits/Final/Type.lean,Mathlib/CategoryTheory/Limits/HasLimits.lean,Mathlib/CategoryTheory/Limits/Preserves/Basic.lean,Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean,Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean,Mathlib/CategoryTheory/Limits/Types/ColimitType.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Prelim.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/CategoryTheory/ObjectProperty/ClosedUnderIsomorphisms.lean,Mathlib/CategoryTheory/ObjectProperty/CompleteLattice.lean,Mathlib/CategoryTheory/ObjectProperty/LimitsClosure.lean,Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean,Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/CategoryTheory/Shift/ShiftedHom.lean,Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean,Mathlib/CategoryTheory/Sites/Equivalence.lean,Mathlib/CategoryTheory/Sites/LeftExact.lean,Mathlib/CategoryTheory/Sites/PreservesSheafification.lean,Mathlib/CategoryTheory/Sites/Whiskering.lean,Mathlib/Combinatorics/Enumerative/Bell.lean,Mathlib/Condensed/Discrete/Basic.lean,Mathlib/Condensed/Light/AB.lean,Mathlib/Condensed/Light/CartesianClosed.lean,Mathlib/Condensed/Light/Instances.lean,Mathlib/Condensed/Light/Module.lean,Mathlib/Data/Rel/Separated.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/GroupTheory/ArchimedeanDensely.lean,Mathlib/GroupTheory/OrderOfElement.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean | 131 | 40 | ['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'sinhp'] | nobody | 3 months ago | 126 days ago | 3 days |
| 26765 | KiringYJ | feat(MeasureTheory/PiSystem): add π-λ theorem and SetLike instance | Add two small features to `MeasureTheory/PiSystem`: 1. SetLike instance `instance : SetLike (DynkinSystem α) (Set α)` This lets us write `s ⊆ d` and `t ∈ d` for a DynkinSystem `d`, matching usual mathlib style. 2. `DynkinSystem.pi_lambda` lemma Classical π‑λ theorem: if a π‑system `s` is contained in a Dynkin system `d`, every set measurable for `σ(s)` is also in `d`. Currently, mathlib exposes this result only indirectly (e.g. via `generateFrom_eq`). Although logically equivalent, it is not obvious at first glance that those lemmas are the π‑λ theorem. The new lemma states the result in its familiar textbook form, so users can recognise and cite it immediately. Both pieces are under 10 lines, term‑mode only, and do not modify existing APIs. No breaking changes. No dependencies. | awaiting-author t-measure-probability new-contributor | 13/0 | Mathlib/MeasureTheory/PiSystem.lean | 1 | 14 | ['EtienneC30', 'KiringYJ', 'dagurtomas', 'github-actions', 'ocfnash'] | RemyDegenne | 3 months ago | 104 days ago | 135 days |
| 29409 | Julian | feat(Mathlib/Analysis): deriv_eq_self and deriv_exp_iff | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-analysis | 29/0 | Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean | 1 | 9 | ['Julian', 'Paul-Lez', 'eric-wieser', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] | j-loreaux | 3 months ago | 161 days ago | 15 days |
| 31513 | 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). - [ ] depends on: #31508 --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-meta | 1824/6 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Algebra/Basic.lean,Mathlib/Tactic/Algebra/Lemmas.lean,Mathlib/Tactic/Polynomial/Basic.lean,Mathlib/Tactic/Polynomial/Core.lean,Mathlib/Util/Qq.lean,MathlibTest/Algebra.lean,MathlibTest/Polynomial.lean,scripts/noshake.json | 10 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | Vierkantor | 3 months ago | 112 days ago | 7 minutes |
| 27306 | xyzw12345 | feat: `lie_ring` tactic and `LieReduce` command | This PR continues the work from #22196. Original PR: https://github.com/leanprover-community/mathlib4/pull/22196 | t-meta | 789/2 | Mathlib.lean,Mathlib/Algebra/Lie/Derivation/AdjointAction.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LieAlgebra/Basic.lean,Mathlib/Tactic/LieAlgebra/LieRingNF.lean,Mathlib/Util/AtomM.lean,MathlibTest/lie_ring.lean,scripts/noshake.json | 8 | 33 | ['FLDutchmann', 'JovanGerb', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'xyzw12345'] | JovanGerb | 3 months ago | 106 days ago | 70 days |
| 29434 | ntapiam | feat(NonAssoc/LieAdmissible): prove every ring/algebra is LieAdmissible | -awaiting-author | t-algebra new-contributor | 27/6 | Mathlib/Algebra/NonAssoc/LieAdmissible/Defs.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 27694 | grunweg | feat: Gram-Schmidt orthonormalisation preserves continuity of sections | provided the bundle metric used in the process is continuous. From the path towards geodesics and the Levi-Civita connection. Co-authored-by: Patrick Massot [patrickmassot@free.fr](mailto:patrickmassot@free.fr) --- - [ ] depends on: #27024 - [x] depends on: #27021 Baby version of #27025. [](https://gitpod.io/from-referrer/) | merge-conflict t-differential-geometry blocked-by-other-PR | 390/11 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Geometry/Manifold/VectorBundle/GramSchmidtOrtho.lean,scripts/noshake.json | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 27025 | grunweg | feat: Gram-Schmidt procedure on smooth vector bundles yields smooth sections | For the Gram-Schmidt process on a vector bundle, deduce that smoothness of the bundle metric implies smoothness of the resulting sections.
From the path towards geodesics and the Levi-Civita connection.
Co-authored-by: Patrick Massot |
merge-conflict t-differential-geometry blocked-by-other-PR | 927/11 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Geometry/Manifold/Elaborators.lean,Mathlib/Geometry/Manifold/Traces.lean,Mathlib/Geometry/Manifold/VectorBundle/GramSchmidtOrtho.lean,scripts/noshake.json | 6 | 6 | ['faenuccio', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30637 | strihanje01 | feat(Combinatorics/SetFamily/Lindstrom): Lindstrom's theorem for subfamilies with equal unions | add Lindstrom's theorem and its strengthening for equal intersections --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 209/0 | Mathlib/Combinatorics/SetFamily/Lindstrom.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | b-mehta | 3 months ago | 104 days ago | 31 days |
| 31949 | ADedecker | chore: prefer `Pi.single i 1 j` over `fun j => if i = j then 1 else 0` | --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author | 23/21 | Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Analysis/Convex/StdSimplex.lean,Mathlib/LinearAlgebra/Matrix/Adjugate.lean,Mathlib/LinearAlgebra/Pi.lean,Mathlib/Topology/Algebra/Module/Basic.lean | 5 | 5 | ['eric-wieser', 'github-actions', 'themathqueen'] | nobody | 3 months ago | 101 days ago | 6 hours |
| 25902 | pfaffelh | feat: The finite product of semi-rings (in terms of measure theory) is a semi-ring. | ~~Move results for rings (in terms of measure theory) to a separate file; was in Semiring.lean before.~~ For `∀ i ∈ s, IsSetSemiring (C i))`, the product `s.pi '' s.pi C` is a semiring. Prove two auxiliary lemmas in `Data.Set.Prod` needed on the way. --- *This PR continues the work from #22714.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/22714* | t-measure-probability brownian large-import merge-conflict awaiting-author | 260/14 | Mathlib/Data/Set/Pairwise/Lattice.lean,Mathlib/Data/Set/Prod.lean,Mathlib/MeasureTheory/MeasurableSpace/Pi.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/MeasureTheory/SetSemiring.lean | 5 | 7 | ['github-actions', 'mathlib4-merge-conflict-bot', 'sgouezel'] | kex-y | 3 months ago | 165 days ago | 29 days |
| 31571 | erdOne | feat(RingTheory): existence of local algebra with given residue field | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-ring-theory | 225/0 | Mathlib.lean,Mathlib/RingTheory/LocalRing/SeparableResidueField.lean | 2 | 7 | ['chrisflav', 'github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot'] | chrisflav | 3 months ago | 100 days ago | 9 days |
| 29517 | pechersky | feat(RingTheory/Torsion): torsion = union of roots of unity | with additional API for Associates and rootsOfUnity sups --- [](https://gitpod.io/from-referrer/) - [x] depends on: #29988 - [x] depends on: #29989 - [x] depends on: #29990 - [x] depends on: #29991 | merge-conflict awaiting-author t-algebra | 149/8 | Mathlib.lean,Mathlib/Algebra/Group/Subgroup/Lattice.lean,Mathlib/RingTheory/RootsOfUnity/Basic.lean,Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean,Mathlib/RingTheory/Torsion.lean | 5 | 35 | ['chrisflav', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | chrisflav | 3 months ago | 120 days ago | 37 days |
| 31176 | mcdoll | feat(Analysis): Taylor's theorem with the integral remainder | --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author | 169/2 | Mathlib.lean,Mathlib/Analysis/Calculus/TaylorIntegral.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,docs/100.yaml,docs/undergrad.yaml | 5 | 5 | ['github-actions', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 3 months ago | 99 days ago | 7 days |
| 28933 | artie2000 | chore(Data): correct definition for `single_apply` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 42/40 | Mathlib/Data/DFinsupp/Defs.lean,Mathlib/Data/DFinsupp/Sigma.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/SMul.lean,Mathlib/Data/Finsupp/Single.lean,Mathlib/Data/Finsupp/ToDFinsupp.lean,Mathlib/LinearAlgebra/Basis/Basic.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/LinearAlgebra/DFinsupp.lean,Mathlib/LinearAlgebra/Finsupp/Defs.lean,Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean,Mathlib/LinearAlgebra/Finsupp/Supported.lean,Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean,Mathlib/LinearAlgebra/StdBasis.lean | 15 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 24627 | pechersky | feat(Topology/Algebra/Valued): `IsLinearTopology 𝒪[K] K` and `𝒪[K] 𝒪[K]` | as well as `IsLinearTopology ℤ_[p] ℤ_[p]` --- [](https://gitpod.io/from-referrer/) - [x] depends on: #26829 | merge-conflict awaiting-author t-topology | 219/26 | Mathlib.lean,Mathlib/NumberTheory/Padics/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean | 5 | 55 | ['ADedecker', 'erdOne', 'faenuccio', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'loefflerd', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | jcommelin | 3 months ago | 104 days ago | 16 days |
| 27756 | grunweg | feat: `Weak(Pseudo)EMetricSpace`, generalises `(Pseudo)EMetricSpace` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology carleson | 142/36 | Mathlib/Topology/EMetricSpace/Defs.lean,Mathlib/Topology/Instances/ENNReal/Lemmas.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30904 | vihdzp | chore: golf `Finsupp.single` lemmas | In particular, we make the coercion `⇑(single a b) = Pi.single a b` a `simp` lemma. --- - [ ] depends on: #30905 [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 21/31 | Mathlib/Data/Finsupp/Single.lean | 1 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 31948 | ADedecker | feat: move `ContinuousSMul` to a finite extension with the module topology | My motivation is the following: to define the topology on test functions (see #31806), we take the inductive limit in the category of *real* locally convex topological vector spaces (we don't want the result to depend on the base field!). But then, we need a way to get that complex-valued test functions are also a *complex* topological vector space, which we will obtain by combining this PR with [isModuleTopologyOfFiniteDimensional](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Module/FiniteDimension.html#isModuleTopologyOfFiniteDimensional). --- [](https://gitpod.io/from-referrer/) | merge-conflict | 109/57 | Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Module/LinearMap/Basic.lean,Mathlib/Analysis/LocallyConvex/WeakDual.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Pi.lean,Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/Algebra/Module/ModuleTopology.lean | 8 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 24016 | plp127 | feat: fine uniformity | Adds the fine uniformity, and proves some properties. --- - [ ] depends on: #24096 for showing the induced topology is equal on completely regular spaces [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 283/0 | Mathlib.lean,Mathlib/Topology/UniformSpace/FineUniformity.lean,Mathlib/Topology/UniformSpace/Uniformizable.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30995 | kckennylau | feat(RingTheory): replace ofLinearEquiv with limit | For an `I`-adically complete `M` we define `limit : AdicCompletion I M ≃ₗ[R] M`. This replaces the existing `ofLinearEquiv : M ≃ₗ[R] AdicCompletion I M` which goes in the opposite direction, and should make #30989 and subsequent PR's smoother. It is intended to be used together with [AdicCompletion.mk](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/AdicCompletion/Basic.html#AdicCompletion.mk) : `AdicCompletion.AdicCauchySequence I M →ₗ[R] AdicCompletion I M`. We also introduce `adicExpansion (ϖ : R) (hϖ : ϖ ∈ I) : (ℕ → M) →ₗ[R] AdicCauchySequence I M`, which sends a sequence `a : ℕ → M` to the Cauchy sequence `∑ ϖ ^ i • a i`. --- [](https://gitpod.io/from-referrer/) | t-ring-theory awaiting-author | 77/49 | Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/RingHom.lean | 3 | 8 | ['erdOne', 'github-actions', 'jjdishere', 'kckennylau', 'mathlib4-merge-conflict-bot'] | erdOne | 3 months ago | 101 days ago | 13 days |
| 32094 | grunweg | feat(runLinter): allow only running certain linters | This adds a script `run_linter`, which is a fork of batteries' `runLinter` with extra features: - rewrite as a CLI app, so --help messages etc. come for free - add a `--list` option, which prints the list of linters it was about to run, and exists - add `--select`, `--ignore` and `--only` options which ensure certain linters are always run, never resp. that only a certain list of linters are run. (`add` takes priority over `exclude` or `only`.) - add an `update_only_remove` flag which only runs linters mentioned in the `nolints` file: this only removes entries (by design), but is often much faster. - renamed to `run_linter`: actually, per the [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention/near/450896930), this should be `run-linter` --- and one could as well use the opportunity to rename this to e.g. `env-linter`. Asked [here](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Configuring.2Fmodernizing.20runLinter). Intended use cases 1. Run `update_only_remove` when updating the nolints file. In fact, it is so fast that it could even run during regular CI, after the normal `lint` step... 2. Run the mathlib linters locally. The simpNF linters are slow enough (for a reason, but still) that doing so is currently annoying. On my notebook, they can easily take half an hour, during which my notebook is otherwise hardly usable. 3. You're developing a new linter and only want to run *that* one (as there was no change about the other ones). Probably, the nicest result would be this PR landing in batteries (perhaps in pieces) instead of here. --- I'm not happy about one detail: - many options take an `Array String`: how can I pass this to the executable? This is not obvious to me... - TODO: address the comment at https://github.com/leanprover-community/mathlib4/pull/14654#discussion_r1685824917 Continuation of #14654. Proof-of-concept; the real implementation should be in batteries/a separate repository. --- [](https://gitpod.io/from-referrer/) | t-linter CI | 154/0 | lakefile.lean,scripts/run_linter.lean | 2 | 1 | ['github-actions'] | nobody | 3 months ago | unknown | unknown |
| 32095 | grunweg | chore: fix some explicitVarOfIff linter errors | Needs a merge, and removing the linter changes... should be re-done and split out! --- [](https://gitpod.io/from-referrer/) | please-adopt WIP merge-conflict | 320/146 | Mathlib/Analysis/LocallyConvex/Bounded.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Geometry/Manifold/LocalInvariantProperties.lean,Mathlib/MeasureTheory/Measure/EverywherePos.lean,Mathlib/SetTheory/Ordinal/Topology.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/Algebra/Monoid.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Basic.lean,Mathlib/Topology/Category/TopCat/Basic.lean,Mathlib/Topology/Clopen.lean,Mathlib/Topology/CompactOpen.lean,Mathlib/Topology/Compactness/LocallyCompact.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/DenseEmbedding.lean,Mathlib/Topology/Gluing.lean,Mathlib/Topology/Homeomorph.lean,Mathlib/Topology/IndicatorConstPointwise.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Irreducible.lean,Mathlib/Topology/IsLocalHomeomorph.lean,Mathlib/Topology/LocalAtTarget.lean,Mathlib/Topology/Maps/Basic.lean,Mathlib/Topology/MetricSpace/Isometry.lean,Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Order.lean,Mathlib/Topology/Order/LowerUpperTopology.lean,Mathlib/Topology/Partial.lean,Mathlib/Topology/PartialHomeomorph.lean,Mathlib/Topology/PartitionOfUnity.lean,Mathlib/Topology/QuasiSeparated.lean,Mathlib/Topology/Separation.lean,Mathlib/Topology/TietzeExtension.lean,Mathlib/Topology/UniformSpace/Ascoli.lean,Mathlib/Topology/UniformSpace/Basic.lean,Mathlib/Topology/UniformSpace/Cauchy.lean,Mathlib/Topology/UniformSpace/CompactConvergence.lean,Mathlib/Topology/UniformSpace/Completion.lean,Mathlib/Topology/UniformSpace/Equicontinuity.lean,Mathlib/Topology/UniformSpace/Matrix.lean,Mathlib/Topology/UniformSpace/Pi.lean,Mathlib/Topology/UnitInterval.lean,Mathlib/Topology/UrysohnsBounded.lean,Mathlib/Topology/UrysohnsLemma.lean,Mathlib/Topology/VectorBundle/Basic.lean,lakefile.lean,scripts/run_linter.lean | 49 | 0 | [] | nobody | 3 months ago | unknown | unknown |
| 31796 | dobronx1325 | feat(Data/Real/EReal): add mul_lt_mul_of_pos_left theorem | This PR adds the theorem `EReal.mul_lt_mul_of_pos_left`, which states that for a positive real number `a` and extended reals `b < c`, left multiplication by `a` preserves the strict order: `(a : EReal) * b < (a : EReal) * c`. The theorem complements existing order-preserving properties for addition in `EReal` and extends the algebraic structure for multiplication. The proof uses basic properties of extended reals and order relations. --- [](https://gitpod.io/from-referrer/) | t-data new-contributor | 23/0 | Mathlib/Data/EReal/Operations.lean | 1 | 4 | ['JovanGerb', 'LLaurance', 'dobronx1325', 'github-actions'] | nobody | 3 months ago | 98 days ago | 6 days |
| 29899 | eric-wieser | chore: add `=Q` arguments to ring casting operations | This also detects an `isDefeq` which is unifying across universes and types, which I remember rumors about being sometimes a bad idea. I'm a little worried that the `=Q` design here runs into DTT hell, but it works in the one place that is "Qq-clean" right now, so I'd be inclined to apply it to help us learn more about the pattern in future. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 36/23 | Mathlib/Tactic/Ring/Basic.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 31920 | thorimur | test: `env_linter` for unused decidable instances | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 128/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/UnusedAssumptionInType.lean | 5 | 19 | ['github-actions', 'leanprover-bot', 'leanprover-radar', 'mathlib4-merge-conflict-bot', 'thorimur'] | nobody | 3 months ago | unknown | unknown |
| 27258 | JovanGerb | feat: Imo2020 q6 | Original PR: #23431 This PR adds a solution to IMO 2020 Q6. It follows the solution that I found when I was participating in the IMO. I used the statement formalization that was given by @jsm28. --- - [x] depends on: #27257 [](https://gitpod.io/from-referrer/) | IMO awaiting-author | 335/0 | Archive.lean,Archive/Imo/Imo2020Q6.lean | 2 | 14 | ['JovanGerb', 'dwrensha', 'github-actions', 'jsm28', 'mathlib4-dependent-issues-bot'] | dwrensha | 3 months ago | 97 days ago | 64 days |
| 26138 | xroblot | Development branch (2) | --- | WIP merge-conflict | 331/70 | Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/FieldTheory/Finite/GaloisField.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean,Mathlib/NumberTheory/NumberField/CMField.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Embeddings.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean,Mathlib/Sandbox.lean | 11 | 16 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 29357 | eric-wieser | refactor: generalize IsSimpleRing to semirings | --- - [ ] depends on: #26277 - [ ] depends on: #22954 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR | 26/9 | Mathlib/Data/Setoid/Basic.lean,Mathlib/RingTheory/SimpleRing/Basic.lean,Mathlib/RingTheory/SimpleRing/Defs.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 31729 | thorimur | chore: log on theorem type signature in unused instances in type linters | Logs on the type signature in the unused instances in types linter, and tests this using `#guard_msgs (positions := true)`. --- - [ ] depends on: #31730 - [x] depends on: #31142 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR large-import | 636/3 | Mathlib.lean,Mathlib/Lean/Elab/InfoTree.lean,Mathlib/Lean/Environment.lean,Mathlib/Lean/Expr.lean,Mathlib/Lean/Expr/Basic.lean,Mathlib/Lean/Syntax.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/UnusedInstancesInType.lean,Mathlib/Util/DeclarationManipulation.lean,MathlibTest/UnusedInstancesInType.lean | 12 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 32157 | peabrainiac | feat(Analysis/Calculus): Hadamard's lemma | Add [Hadamard's lemma](https://en.wikipedia.org/wiki/Hadamard%27s_lemma) for functions from finite-dimensional normed spaces to Banach spaces. --- - [ ] depends on: #31141 [](https://gitpod.io/from-referrer/) | t-analysis blocked-by-other-PR | 314/5 | Mathlib.lean,Mathlib/Analysis/Calculus/Hadamard.lean,Mathlib/Analysis/Calculus/ParametricIntegral.lean,Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean | 5 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | 97 days ago | 9 minutes |
| 26436 | AntoineChambert-Loir | feat(Mathlib/Data/Nat/Prime/Defs): fuel Nat.minFac | This is a fueled version of docs#Nat.minFacAux that can now be checked by `decide`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data awaiting-author | 53/48 | Mathlib/Data/Nat/Prime/Defs.lean | 1 | 3 | ['digama0', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 3 months ago | unknown | unknown |
| 24514 | b-mehta | chore(Int/GCD): use fuel in xgcd | Modify the definition of xgcd to use fuel recursion, to allow it to be reduced in the kernel. As a consequence, this means the evaluation of field operations in ZMod p become provable by `rfl` and `decide`. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/opaque.20recursion.20definitions.20break.20mergeSort.20decidability --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data merge-conflict | 44/22 | Mathlib/Data/Int/GCD.lean | 1 | 6 | ['astrainfinita', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'nomeata', 'urkud'] | nobody | 3 months ago | unknown | unknown |
| 32169 | saodimao20 | feat: add convolution_comp_add_right | This PR adds a lemma `convolution_comp_translation_right` showing that convolution commutes with translation on the right operand. Specifically, it proves that for an additive commutative group $G$, the convolution of a function $f$ with a translated function $x \mapsto g(a + x)$ is equal to the convolution of $f$ and $g$ evaluated at $x + a$. --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor awaiting-author | 14/0 | Mathlib/Analysis/Convolution.lean | 1 | 3 | ['github-actions', 'urkud'] | nobody | 3 months ago | 95 days ago | 22 hours |
| 28244 | robin-carlier | feat(CategoryTheory/Bicategory/NaturalTransformation): Icons | We define icons (short for Identity Component Oplax Natural transformations) between lax functors in bicategories. Such transformations bundle an oplax natural transformation, along with the assertion that the source and target functor agree on objects, and the fact that the app-component of the underlying natural transformation is the `eqToHom` morphism along that equality. We define vertical composition of such natural transformations. Strict associativity and strict unitality of the composition of icons will be the content of a follow-up PR. In future work, icons will constitute the 2-cells of a strict bicategory structure on bicategories, with 1-cells (strictly unitary) pseudofunctors. This bicategory structure will define a category structure on strictly unitary pseudofunctors from `LocallyDiscrete (Fin n)` to a bicategory `C` (i.e "pseudo-composable arrows" in `C`), which will be part of the definition of the 2-nerve of `C`, which is a simplicial category that encodes higher compositions within a bicategory `C`. --- - [ ] depends on: #25825 - [ ] depends on: #28243 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR t-category-theory awaiting-CI large-import merge-conflict | 816/33 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/EqToHom.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Icon.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Strict.lean,Mathlib/CategoryTheory/EqToHom.lean,scripts/noshake.json | 8 | 4 | ['github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 29933 | smmercuri | chore: fix `def` naming isses in `Normed/Field/WithAbs.lean` | --- - [x] depends on: #29932 [](https://gitpod.io/from-referrer/) | WIP merge-conflict | 33/23 | Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/NumberTheory/NumberField/AdeleRing.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 159 days ago | 1 day |
| 27980 | smmercuri | feat: dimensions of completions at infinite place extensions | This PR continues the work from #24853. Original PR: https://github.com/leanprover-community/mathlib4/pull/24853 --- - [x] depends on: #27977 - [ ] depends on: #27978 - [x] depends on: #27974 - [x] depends on: #27975 - [ ] depends on: #27976 - [ ] depends on: #29942 - [ ] depends on: #29946 | t-number-theory blocked-by-other-PR large-import merge-conflict FLT | 619/2 | Mathlib.lean,Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/NumberTheory/NumberField/Completion.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Dimension.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean | 7 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 31350 | grunweg | feat: (unoriented) bordism groups | We define the unoriented bordism group of a topological space and prove that it is an abelian group: we don't prove transitivity of bordisms yet, as that requires the collar neighbourhood theorem and gluing of smooth manifolds, which are both not in mathlib and a sizable piece of work. --- This PR is not ready for review yet; I'm merely opening this to track this branch' state better. In particular, this PR depends on several preliminary PRs: - [ ] depends on: #15906 for defining singular manifolds - [ ] depends on: #23040: define immersions and smooth embeddings: in finite dimensions, these are easy to describe; for mathlib, we will want a correct definition for e.g. Banach manifolds also. - [ ] depends on: #28793 is the first step for this - [ ] depends on: #31351 defines manifolds with smooth boundary: the main dependence are smooth embeddings (and some basic results about these), then the definition needs redoing. - depends on: #22874 for some constructions - defining unoriented bordisms, and proving some basic constructions about them: will be another PR This PR continues the work from #23138. | merge-conflict WIP t-differential-geometry blocked-by-other-PR | 1084/2 | Mathlib.lean,Mathlib/Geometry/Manifold/Bordisms.lean,Mathlib/Geometry/Manifold/Diffeomorph.lean,Mathlib/Geometry/Manifold/HasSmoothBoundary.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean | 6 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 32126 | nielsvoss | feat(Analysis/Normed/Operator): definition of singular values for linear maps | This PR defines a generalization of singular values, the approximation numbers, for continuous linear maps between normed vector spaces. It proves basic lemmas about the approximation numbers and shows that for finite-dimensional vector spaces, the approximation numbers coincide with the standard definition of singular values.
See the discussion on Zulip: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Singular.20Value.20Decomposition/with/558914024
Co-authored-by: Arnav Mehta |
WIP t-analysis new-contributor | 331/0 | Mathlib/Analysis/Normed/Operator/SingularValues.lean | 1 | 2 | ['github-actions', 'nielsvoss'] | nobody | 3 months ago | unknown | unknown |
| 26389 | jjdishere | feat(RingTheory): Perfectoid Field | This PR continues the work from #19972. Original PR: https://github.com/leanprover-community/mathlib4/pull/19972 | t-algebra WIP t-topology t-analysis | 150/0 | Mathlib/RingTheory/Perfectoid.lean | 1 | 2 | ['github-actions', 'jjdishere'] | nobody | 3 months ago | unknown | unknown |
| 32285 | awainverse | chore(ModelTheory/Bundled): Replace CategoryTheory.Bundled | Replaces the use of CategoryTheory.Bundled L.Structure with a bespoke type for bundled L.Structures, L.StrucType. --- [](https://gitpod.io/from-referrer/) | t-logic awaiting-author | 95/55 | Mathlib/ModelTheory/Bundled.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/Order.lean,Mathlib/ModelTheory/Satisfiability.lean | 5 | 2 | ['github-actions', 'jcommelin'] | nobody | 3 months ago | 92 days ago | 17 hours |
| 31663 | xroblot | feat(Algebra): more instances about `min`, `max`, `iSup` and `iInf` of sub-algebras | Let `S₁ S₂ : Subalgebra R C`, we add more `Algebra` instances about their min, max, and for `iSup` and `iInf` and the corresponding `IsScalarTower` instances. We also add the corresponding instances for `IntermediateField F E`. Note that, in this situation, some `IsScalarTower` instances are not added since they can be deduced automatically. --- [](https://gitpod.io/from-referrer/) | t-algebra WIP | 75/9 | Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean,Mathlib/RingTheory/LocalProperties/IntegrallyClosed.lean | 3 | 11 | ['github-actions', 'jcommelin', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'leanprover-radar', 'xroblot'] | mariainesdff | 3 months ago | 92 days ago | 15 days |
| 25816 | sgouezel | chore: kill coercion from EquivLike to Equiv | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-logic | 35/37 | Mathlib/Logic/Equiv/Defs.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 3 months ago | unknown | unknown |
| 26776 | sgouezel | refactor: make `I` an outparam, and use forgetful inheritance in products | I consider this as a failed experiment, so it's not for merging. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP RFC | 2411/1664 | Mathlib/Analysis/Asymptotics/Defs.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/Classes.lean,Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean,Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/Calculus/TangentConeDef.lean,Mathlib/Analysis/Complex/Circle.lean,Mathlib/Analysis/Complex/UnitDisc/Basic.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/Normed/Module/Prod.lean,Mathlib/Analysis/NormedSpace/HomeomorphBall.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/PolarCoord.lean,Mathlib/Analysis/SpecialFunctions/Sqrt.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/Manifold/AnalyticManifold.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/Geometry/Manifold/Complex.lean,Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean,Mathlib/Geometry/Manifold/ContMDiff/Defs.lean,Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/IsManifold/ModelWithCornersDef.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/LocalInvariantProperties.lean,Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean,Mathlib/Geometry/Manifold/MFDeriv/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/Defs.lean,Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean,Mathlib/Geometry/Manifold/VectorBundle/Hom.lean,Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean,Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean,Mathlib/Topology/Algebra/Constructions.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean,Mathlib/Topology/Algebra/PontryaginDual.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Basic.lean,Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/Clopen.lean,Mathlib/Topology/Connected/TotallyDisconnected.lean,Mathlib/Topology/Constructions/SumProd.lean,Mathlib/Topology/ContinuousMap/Bounded/Basic.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/ContinuousOnMore.lean,Mathlib/Topology/Covering.lean,Mathlib/Topology/Defs/Basic.lean,Mathlib/Topology/Defs/Filter.lean,Mathlib/Topology/FiberBundle/Basic.lean,Mathlib/Topology/FiberBundle/Constructions.lean,Mathlib/Topology/FiberBundle/Trivialization.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Instances/AddCircle.lean,Mathlib/Topology/Instances/Shrink.lean,Mathlib/Topology/Instances/TrivSqZeroExt.lean,Mathlib/Topology/Irreducible.lean,Mathlib/Topology/IsLocalHomeomorph.lean,Mathlib/Topology/LocallyFinite.lean,Mathlib/Topology/OmegaCompletePartialOrder.lean,Mathlib/Topology/Order/LeftRight.lean,Mathlib/Topology/PartialHomeomorph.lean,Mathlib/Topology/PartialHomeomorphMore.lean,Mathlib/Topology/Separation/Basic.lean,Mathlib/Topology/Separation/Regular.lean,Mathlib/Topology/UniformSpace/Basic.lean,Mathlib/Topology/UniformSpace/Cauchy.lean,Mathlib/Topology/UniformSpace/Defs.lean,Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean,Mathlib/Topology/VectorBundle/Basic.lean,Mathlib/Topology/VectorBundle/Hom.lean | 88 | 0 | [] | nobody | 3 months ago | unknown | unknown |
| 28895 | yury-harmonic | feat(NumberTheory): prove Zsigmondy's theorem | --- - [x] depends on: #28879 - [x] depends on: #28825 - [x] depends on: #28833 - [x] depends on: #28888 - [x] depends on: #28830 - [x] depends on: #28765 - [x] depends on: #28886 - [x] depends on: #28934 [](https://gitpod.io/from-referrer/) | 1307/0 | Mathlib.lean,Mathlib/NumberTheory/Zsigmondy.lean | 2 | 8 | ['dupuisf', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'yury-harmonic'] | nobody | 3 months ago | unknown | unknown | |
| 31950 | callesonne | feat(CategoryTheory/Product/Basic): make `Hom` into a 1-field structure | This should help unification. --- [](https://gitpod.io/from-referrer/) | WIP t-category-theory merge-conflict | 80/68 | Mathlib/CategoryTheory/Comma/Basic.lean,Mathlib/CategoryTheory/Discrete/SumsProducts.lean,Mathlib/CategoryTheory/Functor/Currying.lean,Mathlib/CategoryTheory/Functor/CurryingThree.lean,Mathlib/CategoryTheory/Functor/Hom.lean,Mathlib/CategoryTheory/Groupoid.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/MorphismProperty/Basic.lean,Mathlib/CategoryTheory/Products/Associator.lean,Mathlib/CategoryTheory/Products/Basic.lean,Mathlib/CategoryTheory/Products/Unitor.lean,Mathlib/CategoryTheory/Sums/Products.lean,Mathlib/CategoryTheory/Yoneda.lean | 14 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 8224 | Kha | chore: add `lean4checker` benchmark | WIP merge-conflict | 16/0 | scripts/bench/temci-config.run.yml | 1 | 4 | ['Kha', 'grunweg', 'kim-em', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown | |
| 22416 | JLimperg | chore: fix benchmark script for precompilation | The benchmarking script used to fail when precompilation was enabled anywhere in the dependency graph. --- Fix courtesy of @Kha. [](https://gitpod.io/from-referrer/) | merge-conflict | 2/0 | scripts/bench/fake-root/lib/lean/libleanshared.so,scripts/bench/run | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 27579 | RemyDegenne | feat: risk of an estimator, DeGroot statistical information, total variation distance | This is an overview PR and will be cut into several pieces. It contains definitions and properties of: - the risk and Bayes risk of an estimator, in general and then specialized to binary hypothesis testing - the DeGroot statistical information between two measures, as well as a generalization for a kernel on more than two outcomes - the total variation distance between measures, defined as a special case of the DeGroot statistical information Co-authored-by: Lorenzo Luccioli @LorenzoLuccioli From the TestingLowerBounds project --- - [x] depends on: #27583 - [x] depends on: #27584 - [x] depends on: #27585 - [x] depends on: #27586 - [x] depends on: #27587 - [x] depends on: #27591 - [x] depends on: #28081 - [x] depends on: #28082 - [x] depends on: #28117 - [x] depends on: #28341 - [x] depends on: #29137 - [x] depends on: #29143 [](https://gitpod.io/from-referrer/) | WIP large-import t-measure-probability | 1713/1 | Mathlib.lean,Mathlib/InformationTheory/TotalVariation/Basic.lean,Mathlib/Probability/Decision/AuxLemmas.lean,Mathlib/Probability/Decision/BayesEstimator.lean,Mathlib/Probability/Decision/Binary.lean,Mathlib/Probability/Decision/BoolMeasure.lean,Mathlib/Probability/Decision/DeGrootInfo.lean,Mathlib/Probability/Decision/Risk/Basic.lean,Mathlib/Probability/Decision/Risk/Countable.lean,Mathlib/Probability/Decision/RiskIncrease.lean,Mathlib/Probability/Decision/ZeroOneLoss.lean | 11 | 7 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 30966 | gasparattila | refactor: disable `simp` in `measurability` | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 5/3 | Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/MeasurableSpace/Defs.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean,Mathlib/Tactic/Measurability.lean | 5 | 8 | ['github-actions', 'grunweg', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 29315 | kbuzzard | chore: raise priority of `IsTopologicalSemiring.toIsModuleTopology` | Instances of the form `SMul A B -> SMul (F A) (F B)` can be problematic for several reasons, one of them being that if `A = B` is a ring and if `F A` is also ring then this can cause a diamond with `Algebra.id`. In mathlib we attempt to coerce typeclass inference away from such problems by raising the priority of `Algebra.id` to 1100; this hack (implemented in #13032) seems to work well, indeed it seems sensible to try this instance early because it should be quick to fail and is always the right idea when it doesn't (the change also made mathlib faster and made a proof better). By the same logic it seems safe to raise the priority of `IsTopologicalSemiring.toIsModuleTopology` by the same amount; in FLT there is a mathematically natural but mathlib-problematic instance `Algebra K L -> Algebra (𝔸 K) (𝔸 L)` and then another instance `Algebra K L -> IsModuleTopology (𝔸 K) (𝔸 L)` where `𝔸 K` is the adele ring of the number field `K`, and the change in this PR solves timeouts when `K = L`. Zulip: [#mathlib4 > product of modules over product of rings @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/product.20of.20modules.20over.20product.20of.20rings/near/532799613) --- [](https://gitpod.io/from-referrer/) There are other solutions to this problem -- I am certainly not claiming that the FLT project needs this PR to be merged! We can tinker with priorities locally in FLT for example. However when I noticed that `Algebra.id` had a raised priority in mathlib I realised that mathlib might be amenable to this further ~~hack~~change. | awaiting-author t-topology | 6/1 | Mathlib/Topology/Algebra/Module/ModuleTopology.lean | 1 | 9 | ['github-actions', 'j-loreaux', 'kbuzzard', 'leanprover-bot', 'ocfnash'] | ocfnash | 2 months ago | 156 days ago | 25 days |
| 31730 | thorimur | feat(Meta): declaration manipulation meta API: allow logging on type signature of theorems | This PR introduces some initial definitions in the space of a declaration manipulation meta API. In the course of #31142, it became apparent that we could benefit from having tools for handling the syntax and elaboration info of user-written declarations. This PR makes a small beginning towards that end in the Mathlib.Util.DeclarationManipulation module, and provides API for - getting the info and syntax ref of a declaration given its `Name` - getting the ref of a theorem's type signature from within some command source syntax given the declaration's ref given above - running a monadic action with the ambient ref set to that of the type signature of a theorem, with sensible fallbacks This is used to improve logging locations for the unused-instances-in-types linters, and may be useful for other linters that want to inpsect a theorem's type at the expression level (instead of the syntax level). (It also introduces the small helper definitions `Syntax.findSome?` and `Syntax.rangeEq`, which behave as expected.) For context: in the future, it would be nice to - provide support for all sorts of declarations, not just theorems--but this requires a lot more syntax matching - provide "exploded views" of declaration syntax like `mkDefView`, but finer grained, and geared for use during linting rather than elaboration - make it easy to compose complex suggestions to transform different parts of a declaration at once --- - [x] depends on: #31725 [](https://gitpod.io/from-referrer/) | t-meta | 131/0 | Mathlib.lean,Mathlib/Lean/Syntax.lean,Mathlib/Util/DeclarationManipulation.lean | 3 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | 104 days ago | 2 days |
| 31242 | plp127 | feat: express filter as supremum of principal filter and free filter | Prove a filter is free iff it is smaller than the cofinite filter. Prove that every filter decomposes as the disjoint supremum of a principal filter and a free filter. --- - [ ] depends on: #31264 [](https://gitpod.io/from-referrer/) | t-order awaiting-author merge-conflict | 55/0 | Mathlib/Order/Filter/Cofinite.lean,Mathlib/Order/Lattice.lean | 2 | 7 | ['github-actions', 'jcommelin', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] | bryangingechen | 2 months ago | 92 days ago | 24 days |
| 32474 | mattrobball | perf(Module.LinearMap.Defs): deprioritize projections to parents for SemilinearMapClass | Trying to figure out if a given type has a SemilinearMapClass instance when all we want is an AddHomClass or a MulActionSemiHomClass can be quite expensive since there are multiple ways to crawl the algebraic hierarchy to generate LinearMapClass instances. If these fail, then they fail slowly. We deprioritize the projections from SemilinearMapClass to AddHomClass and MulActionSemiHomClass to make this one of the last choices. --- This PR continues #23214 which was delegated by @j-loreaux but I let it slip. Will re-bench and see the effect. [](https://gitpod.io/from-referrer/) | t-algebra | 6/0 | Mathlib/Algebra/Module/LinearMap/Defs.lean | 1 | 1 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 31898 | ntapiam | feat(LinearAlgebra/TensorAlgebra): implement HopfAlgebra for TensorAlgebra | implementation of the natural Hopf algebra structure on the TensorAlgebra | new-contributor t-ring-theory awaiting-author | 253/0 | Mathlib.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean,Mathlib/RingTheory/Bialgebra/FreeAlgebra.lean,Mathlib/RingTheory/Bialgebra/TensorAlgebra.lean,Mathlib/RingTheory/HopfAlgebra/TensorAlgebra.lean | 6 | 64 | ['YaelDillies', 'github-actions', 'kckennylau', 'ntapiam'] | nobody | 2 months ago | 101 days ago | 8 hours |
| 31597 | grunweg | chore(AtLocation): allow throwing a warning when no progress is being made | A future PR will use this to make `by_contra!` and friends warn if the `push_neg` step makes no progress.
Co-authored by: Jovan Gerbscheid |
awaiting-author t-meta merge-conflict | 46/28 | Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Field.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/ReduceModChar.lean,Mathlib/Tactic/Ring/RingNF.lean,Mathlib/Util/AtLocation.lean,MathlibTest/FieldSimp.lean,MathlibTest/abel.lean | 10 | 7 | ['JovanGerb', 'fpvandoorn', 'github-actions', 'mathlib4-merge-conflict-bot', 'thorimur'] | thorimur | 2 months ago | 102 days ago | 7 days |
| 30525 | 515801431 | feat(Mathlib/Combinatorics/Enumerative/Polya): Add Polya Counting | This PR introduces basic definitions and results about colorings under permutation group actions. A coloring is defined as a function X → Y, and the permutation group Equiv.Perm X acts on colorings by precomposition: (g • c) x = c (g⁻¹ • x) This formalizes the natural action of relabeling the elements of X. Main definitions MulAction (Equiv.Perm X) (X → Y): The action of the permutation group on colorings via precomposition. coloringEquiv (c₁ c₂ : X → Y) : Prop: Two colorings are equivalent if they lie in the same orbit under this action, i.e. ∃ f : Equiv.Perm X, f • c₁ = c₂. Main results smul_eq_iff_mem_stabilizer: Characterizes when two group actions on the same coloring are equal, showing that g • c = f • c ↔ f⁻¹ * g ∈ stabilizer c. coloringEquiv_equivalence: Proves that coloringEquiv defines an equivalence relation on X → Y. orbit_size_eq_index: Reformulates the orbit–stabilizer theorem in the context of colorings: |orbit c| = |Perm X| / |stabilizer c| Motivation These results provide foundational infrastructure for studying Burnside’s lemma and Pólya’s enumeration theorem in Mathlib, where the enumeration of distinct colorings up to symmetry plays a central role. | t-combinatorics new-contributor awaiting-author merge-conflict | 113/0 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean | 2 | 8 | ['IvanRenison', 'alreadydone', 'github-actions', 'mathlib4-merge-conflict-bot'] | awainverse | 2 months ago | 96 days ago | 39 days |
| 31113 | 515801431 | feat(Mathlib/Combinatorics/Enumerative/Polya.lean): Add additional theorem in `Polya.lean` | --- - [ ] depends on: #30525 --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor blocked-by-other-PR merge-conflict | 302/0 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean | 2 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | b-mehta | 2 months ago | 97 days ago | 16 days |
| 24441 | MrSumato | feat(Data/List): add Lyndon-Schutzenberger theorem on list commutativity | Add Lyndon-Schutzenberger theorem on list commutativity. Included definition for List.repeatSelf that returns list repeated n times. --- This is my first mathlib PR, so any comments are highly appreciated. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data new-contributor | 129/1 | Mathlib.lean,Mathlib/Data/List/Commutativity.lean,Mathlib/Data/List/Defs.lean,Mathlib/Data/List/Lemmas.lean | 4 | 38 | ['MrSumato', 'github-actions', 'grunweg', 'madvorak', 'mathlib4-merge-conflict-bot', 'plp127'] | grunweg | 2 months ago | unknown | unknown |
| 28057 | plp127 | feat(SuccOrder): simp lemma to refold `Order.succ` and `Order.pred` | Adds `SuccOrder.succ_eq_succ` and `PredOrder.pred_eq_pred` to refold `SuccOrder.succ` and `PredOrder.pred` into `Order.succ` and `Order.pred`. These lemmas are marked `@[simp]`. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-order merge-conflict | 8/2 | Mathlib/Order/SuccPred/Basic.lean | 1 | 4 | ['YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | bryangingechen | 2 months ago | 165 days ago | 44 days |
| 31601 | BoltonBailey | feat(Data/Nat/Choose): A new strictly positive binomial coefficient | This is an experimental PR relating to replacing `Nat.choose` with a strictly positive function equivalently to `Nat.choose a (a + b)`. Currently this introduces a new function `Nat.binom`, but we could also modify `Nat.multinomial`. --- [](https://gitpod.io/from-referrer/) | t-data | 226/1 | Mathlib/Data/Nat/Choose/Binomial.lean,Mathlib/Data/Nat/Choose/Multinomial.lean | 2 | 1 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 31901 | callesonne | feat(Bicategory/Subbicategory): add full subbicategories using `ObjectProperty` | Analogously to the 1-categorical setting we construct a full subbicategory from an object property. One could also construct locally full subbicategories using a pair of an object property and a morphism property. However then there is no way to obtain the bicategory structure by specializing from the `InducedBicategory` case. It is not clear to me if we want a full subbicategory to be specialized from this other construction, or from `InducedBicategory`. --- - [x] depends on: #30925 [](https://gitpod.io/from-referrer/) | t-category-theory awaiting-author | 135/2 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Basic.lean,Mathlib/CategoryTheory/Bicategory/InducedBicategory.lean,Mathlib/CategoryTheory/Bicategory/Subbicategory.lean | 4 | 7 | ['callesonne', 'github-actions', 'leanprover-radar', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | nobody | 2 months ago | 88 days ago | 2 days |
| 32473 | mattrobball | chore(Kaehler.JacobiZariski): remove egregious local instance hack | This code looks terrible and is no longer strictly necessary. Local timings give `lake build Mathlib/RingTheory/Kaehler/JacobiZariski.lean 39.77s user 1.07s system 263% cpu 15.482 total` after removal and `lake build Mathlib/RingTheory/Kaehler/JacobiZariski.lean 36.93s user 1.01s system 251% cpu 15.113 total` before the removal. So the preformance impact of removal is small. One could argue that keeping is a remainder that everything here needs to be seriously changed but the miminmal performance difference suggests that these local instances would be a red herring in that regard. --- [](https://gitpod.io/from-referrer/) | t-ring-theory awaiting-author | 0/4 | Mathlib/RingTheory/Kaehler/JacobiZariski.lean | 1 | 13 | ['chrisflav', 'erdOne', 'github-actions', 'leanprover-radar', 'mattrobball'] | nobody | 2 months ago | 87 days ago | 23 hours |
| 27525 | Hagb | (WIP) feat(Tactic/Linter/Indentation): add a linter for general indentation | --- todo: - [x] check whether some (direct or indirect) children of some kinds of parents are intended _strictly_ deeper than this parent. For example: ```lean example : Nat := Nat.add 1 -- should be strictly deeper than `Nat.add`? 2 ``` - [ ] check whether some (direct or indirect) children of some kinds of parents are intended exactly N spaces deeper than this parent. For example: ```lean example : True := trivial -- should be exact 2 spaces deeper than 0 space of `example` ``` - [ ] some special cases, such as `calc`. https://github.com/leanprover-community/mathlib4/blob/5ebccb65951c70539ba1c36e53e079ac28b3fd23/Mathlib/Geometry/Manifold/Riemannian/Basic.lean#L452-L454 - [ ] add test cases [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter large-import | 1364/1 | Mathlib/Init.lean,Mathlib/Tactic/Linter/Indentation.lean,Mathlib/Tactic/Linter/Indentation/Basic.lean,Mathlib/Tactic/Linter/Indentation/Defs.lean,Mathlib/Tactic/Linter/Indentation/Linters.lean,MathlibTest/IndentationLinter.lean,lakefile.lean | 7 | 15 | ['Hagb', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 18551 | joelriou | feat(AlgebraicGeometry): the algebraic De Rham complex | If `B` is an `A`-algebra, we construct the algebraic De Rham complex of `B` over `A`: it is a cochain complex of `A`-modules. --- - [ ] depends on: #18735 - [ ] depends on: #18662 - [ ] depends on: #26464 - [x] depends on: #18534 - [x] depends on: #18527 - [x] depends on: #18440 - [ ] depends on: #18432 - [x] depends on: #18408 - [x] depends on: #18389 - [x] depends on: #18374 - [x] depends on: #18359 - [x] depends on: #18332 [](https://gitpod.io/from-referrer/) | WIP t-algebra blocked-by-other-PR merge-conflict t-algebraic-geometry | 2836/156 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean,Mathlib/Algebra/Module/Presentation/Basic.lean,Mathlib/Algebra/Module/Presentation/Cokernel.lean,Mathlib/Algebra/Module/Presentation/Differentials.lean,Mathlib/Algebra/Module/Presentation/DirectSum.lean,Mathlib/Algebra/Module/Presentation/ExteriorPower.lean,Mathlib/Algebra/Module/Presentation/PiTensor.lean,Mathlib/Algebra/Module/Presentation/RestrictScalars.lean,Mathlib/Algebra/Module/Presentation/Tensor.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Sum/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Generators.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/RingTheory/DeRham/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean | 26 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 29744 | 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 | 391/0 | Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | b-mehta | 2 months ago | 104 days ago | 57 days |
| 31147 | daefigueroa | feat(Dynamics): point transitive monoid actions and transitive points | We define point transitivity for a monoid action on a topological space and define the set of transitive points. We add some basic lemmas and implications between topological transitivity and point transitivity. --- - [x] depends on: #28001 [](https://gitpod.io/from-referrer/) | t-dynamics new-contributor awaiting-author | 114/6 | Mathlib/Dynamics/Transitive.lean | 1 | 6 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 2 months ago | 85 days ago | 18 days |
| 30711 | kim-em | experiment: which `omega` can not be replaced with `grind`? | 1/0 | lakefile.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown | ||
| 30718 | kim-em | experiment: merge rewrites | t-meta | 1/0 | lakefile.lean | 1 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown | |
| 30720 | kim-em | experiment: merge with subsequent grind | 1/0 | lakefile.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown | ||
| 32614 | vihdzp | refactor: Typeclass for antitone inverses/negation | There are a couple of types with antitone inverses or negation that don't otherwise adhere to the group axioms. Examples include `SignType` and `EReal` for negation, and `ENNReal` for inverses. The CGT repository also adds the type of games and the type of surreal cuts to the list for negation. To standardize the various corollaries of this condition, we introduce mix-ins `NegAntiClass` and `InvAntiClass`. Lemmas which formerly required `Group` are now proven under weaker assumptions like `DivisionMonoid` or even `InvolutiveInv`. --- [](https://gitpod.io/from-referrer/) | t-algebra | 161/82 | Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/OrderIso.lean,Mathlib/Algebra/Order/Group/Unbundled/Basic.lean | 3 | 2 | ['github-actions', 'jsm28'] | nobody | 2 months ago | unknown | unknown |
| 25871 | eric-wieser | refactor: generalize rank lemmas to semirings | --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 18/8 | Mathlib/LinearAlgebra/Dimension/Finite.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 30119 | Ruben-VandeVelde | feat: WithTop/Bot.mapD | To replace Option.elim; working towards #27918 --- [](https://gitpod.io/from-referrer/) | awaiting-author t-order merge-conflict | 32/4 | Mathlib/Order/Hom/WithTopBot.lean,Mathlib/Order/WithBot.lean | 2 | 5 | ['JovanGerb', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] | YaelDillies | 2 months ago | 140 days ago | 12 days |
| 32328 | ADedecker | feat: template for distributions and their API | --- [](https://gitpod.io/from-referrer/) | large-import t-analysis merge-conflict | 888/5 | Mathlib.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/Distribution.lean,Mathlib/Analysis/Distribution/TestFunction.lean | 4 | 4 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 28613 | 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 merge-conflict | 375/0 | Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean | 2 | 54 | ['b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot'] | b-mehta | 2 months ago | 104 days ago | 76 days |
| 23040 | grunweg | feat: define immersions and smooth embeddings in infinite dimensions | Sadly, we cannot prove most nice things about them yet, as we don't have the inverse function theorem yet. TODO: prove the few things we can already say --- - [ ] depends on: #28796 - [x] depends on: #28853 - [x] depends on: #23175 (preliminaries) - [x] depends on: #23186 - [ ] depends on: another PR, about `MSplitAt` (to be filed) - and perhaps some prerequisites about products of complemented modules etc. - [x] depends on: #23219 (preliminaries about local diffeomorphisms) - [x] depends on: #8738 - in fact, #9273 is not a strict pre-requisite for this. It suffices to know "extended charts have invertible differentials", which [isInvertible_mfderiv_extChartAt](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Geometry/Manifold/MFDeriv/Atlas.html#isInvertible_mfderiv_extChartAt) mostly proves. (There's nothing wrong with completing that PR, for all interior points.) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry blocked-by-other-PR | 967/0 | Mathlib.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Splits.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/MSplits.lean | 5 | 4 | ['github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 30668 | 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 | 2 months ago | unknown | unknown |
| 32706 | CoolRmal | feat: a set is Gdelta iff it is completely metrizable | This PR proves that 1. A Gdelta subset of a completely metrizable space is completely metrizable. 2. We prove that under certain conditions we can always extends a continuous function on a set A to a Gdelta set. We then use this lemma to prove that if `A` is a completely metrizable subset in a metric space `M`, then `A` is Gdelta. --- [](https://gitpod.io/from-referrer/) | t-topology | 29/0 | Mathlib/Topology/Metrizable/CompletelyMetrizable.lean | 1 | 1 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 30847 | joelriou | feat(CategoryTheory/Presentable): the representation theorem | If `C` is an essentially `w`-small category, then the category of `κ`-continuous functors `Cᵒᵖ ⥤ Type w` is locally `κ`-presentable, and any locally `κ`-presentable category is equivalent to such a category. In particular, we show that a locally `κ`-presentable category has limits. This is a draft... --- - [ ] depends on: #32423 - [ ] depends on: #32424 - [ ] depends on: #32034 - [ ] depends on: #31137 - [ ] depends on: #30817 - [x] depends on: #30795 - [ ] depends on: #30755 - [ ] depends on: #30731 - [ ] depends on: #30554 - [ ] depends on: #30533 - [ ] depends on: #30513 - [x] depends on: #30509 - [x] depends on: #30507 - [x] depends on: #30492 - [x] depends on: #30464 - [x] depends on: #30459 - [x] depends on: #30269 - [ ] depends on: #30247 - [ ] depends on: #30241 - [x] depends on: #30168 - [x] depends on: #30160 - [x] depends on: #29881 - [x] depends on: #29854 - [x] depends on: #29565 - [x] depends on: #29543 - [x] depends on: #29519 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR t-category-theory merge-conflict | 2137/27 | Mathlib.lean,Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/EssentiallySmall.lean,Mathlib/CategoryTheory/Functor/KanExtension/Dense.lean,Mathlib/CategoryTheory/Generator/Basic.lean,Mathlib/CategoryTheory/Generator/Type.lean,Mathlib/CategoryTheory/Limits/HasLimits.lean,Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean,Mathlib/CategoryTheory/Limits/Types/Limits.lean,Mathlib/CategoryTheory/MorphismProperty/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/IsSmall.lean,Mathlib/CategoryTheory/ObjectProperty/Basic.lean,Mathlib/CategoryTheory/ObjectProperty/ClosedUnderIsomorphisms.lean,Mathlib/CategoryTheory/ObjectProperty/ColimitsCardinalClosure.lean,Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean,Mathlib/CategoryTheory/ObjectProperty/CompleteLattice.lean,Mathlib/CategoryTheory/ObjectProperty/Equivalence.lean,Mathlib/CategoryTheory/ObjectProperty/FunctorCategory/Limits.lean,Mathlib/CategoryTheory/ObjectProperty/FunctorCategory/Presheaf.lean,Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean,Mathlib/CategoryTheory/ObjectProperty/Local.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean,Mathlib/CategoryTheory/Presentable/Adjunction.lean,Mathlib/CategoryTheory/Presentable/Basic.lean,Mathlib/CategoryTheory/Presentable/Continuous.lean,Mathlib/CategoryTheory/Presentable/Dense.lean,Mathlib/CategoryTheory/Presentable/EssentiallyLarge.lean,Mathlib/CategoryTheory/Presentable/Limits.lean,Mathlib/CategoryTheory/Presentable/LocallyPresentable.lean,Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean,Mathlib/CategoryTheory/Presentable/Presheaf.lean,Mathlib/CategoryTheory/Presentable/Representation.lean,Mathlib/CategoryTheory/Presentable/StrongGenerator.lean,Mathlib/CategoryTheory/Presentable/Type.lean,Mathlib/CategoryTheory/Yoneda.lean | 35 | 7 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 30817 | joelriou | feat(CategoryTheory): `κ`-continuous presheaves | Given categories `C`, `D` and a regular cardinal `κ : Cardinal.{w}`, we define `isCardinalContinuous C D κ : ObjectProperty (C ⥤ D)` as the property of functors which preserves limits indexed by categories `J` such that `HasCardinalLT (Arrow J) κ`. When `C : Type w` is a small category, we show that `κ`-continuous functors `Cᵒᵖ ⥤ Type w` are exactly the objects that are local with respect to a suitable `w`-small family of morphisms. DRAFT --- - [ ] depends on: #32725 - [x] depends on: #32423 - [x] depends on: #32424 - [x] depends on: #30168 - [x] depends on: #30160 - [x] depends on: #29881 - [x] depends on: #29854 [](https://gitpod.io/from-referrer/) | WIP t-category-theory blocked-by-other-PR | 292/0 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Types/Limits.lean,Mathlib/CategoryTheory/MorphismProperty/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/IsSmall.lean,Mathlib/CategoryTheory/ObjectProperty/FunctorCategory/Presheaf.lean,Mathlib/CategoryTheory/ObjectProperty/Local.lean,Mathlib/CategoryTheory/Presentable/Continuous.lean | 7 | 9 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 6633 | adomani | feat(..Polynomial..): `MvPolynomial`s have no zero divisors | This PR continues #6627, placing the `NoZeroDivisors` instance on `MvPolynomial`s and removing auxiliary intermediate results that are no longer needed. Affected files: ``` Data/MvPolynomial/Basic.lean Data/Polynomial/RingDivision.lean RingTheory/Polynomial/Basic.lean ``` --- - [x] depends on: #6227 for the `NoZeroDivisors` instance on `AddMonoidAlgebra`s [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 143/57 | Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean,Mathlib/Data/MvPolynomial/Basic.lean,Mathlib/Data/Polynomial/RingDivision.lean,Mathlib/RingTheory/Polynomial/Basic.lean | 4 | 6 | ['SnirBroshi', 'YaelDillies', 'adomani', 'eric-wieser', 'leanprover-community-mathlib4-bot'] | nobody | 2 months ago | unknown | unknown |
| 28865 | grunweg | feat: a map is smooth iff its post-composition with an immersion is | The continuous case is mostly solved --- except for one detail where I'm not even sure if this is true. Maybe!, I need to require continuity, at least in general. (Perhaps not for interior points... we'll see!) A future PR will use this to golf the results in `Icc/Instances.lean`. --- - [x] depends on: #28793 - [ ] depends on: #28796 - [x] depends on: #28853 (for simplicity) - [ ] depends on: #28905 history bifurcates here: merge that PR first, then rebase this one [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry blocked-by-other-PR | 1026/7 | Mathlib.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/ContMDiff/Defs.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Topology/PartialHomeomorph.lean,docs/references.bib,temp_.sh | 12 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'peabrainiac'] | nobody | 2 months ago | unknown | unknown |
| 26950 | alreadydone | Primitives of holomorphic functions and path integral | --- - [ ] depends on: #31925 - [x] depends on: #24983 - [x] depends on: #22771 [](https://gitpod.io/from-referrer/) | WIP merge-conflict t-topology t-analysis blocked-by-other-PR | 1288/361 | Mathlib.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean,Mathlib/Analysis/Complex/Primitive.lean,Mathlib/CategoryTheory/Groupoid.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Topology/Covering.lean,Mathlib/Topology/EtaleSpace.lean,Mathlib/Topology/FiberBundle/Trivialization.lean,Mathlib/Topology/Homotopy/HomotopyGroup.lean,Mathlib/Topology/Homotopy/Lifting.lean,Mathlib/Topology/Homotopy/Product.lean,Mathlib/Topology/IsLocalHomeomorph.lean,Mathlib/Topology/Sheaves/LocalPredicate.lean,Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Stalks.lean | 21 | 3 | ['alreadydone', 'grunweg', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 32827 | erdOne | perf: `@[simp high]` on `*Hom.map_add` lemmas | --- [](https://gitpod.io/from-referrer/) | t-algebra | 10/0 | Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/Ring/Hom/Defs.lean | 4 | 3 | ['erdOne', 'github-actions', 'leanprover-radar'] | nobody | 2 months ago | unknown | unknown |
| 32869 | felixpernegger | feat(RingTheory): lemmas around ```Ring.choose``` | Various small lemmas around Ring.choose. In particular this should cover all statements from .Data.Nat.Choose.Basic which have a meaningful generalization to arbitrary rings. | new-contributor t-ring-theory | 170/0 | Mathlib/RingTheory/Binomial.lean,Mathlib/RingTheory/Polynomial/Pochhammer.lean | 2 | 1 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 31987 | saodimao20 | feat: add monotonicity and relation lemmas for mgf and cgf | Add two lemmas about moment-generating and cumulant-generating functions: - `mgf_mono_in_t_of_nonneg`: For nonnegative random variables, the mgf is monotone in the parameter `t` - `cgf_zero_of_mgf_one`: The cgf equals zero iff the mgf equals one These lemmas are useful for studying properties of mgf and cgf in probability theory. Contributed by sequential-intelligence-lab(SIL), University of Virginia --- [](https://gitpod.io/from-referrer/) | t-measure-probability new-contributor awaiting-author | 21/0 | Mathlib/Probability/Moments/Basic.lean | 1 | 5 | ['DavidLedvinka', 'github-actions'] | RemyDegenne | 2 months ago | 79 days ago | 21 days |
| 32211 | ADedecker | feat: inclusion from `ContDiffMapSupportedIn` to `TestFunction` is a topological embedding | --- - [ ] depends on: #32210 - [x] depends on: #31806 [](https://gitpod.io/from-referrer/) | t-analysis blocked-by-other-PR merge-conflict | 136/2 | Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Topology/UniformSpace/UniformEmbedding.lean | 2 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 32250 | ADedecker | feat: integration against a locally integrable function as a CLM on test functions | Aka viewing a locally integrable function as a distribution --- [](https://gitpod.io/from-referrer/) | t-analysis large-import merge-conflict | 191/0 | Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean | 2 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 32602 | adamtopaz | feat: Refactor graph | Work in progress --- [](https://gitpod.io/from-referrer/) | WIP | 1312/0 | RefactorGraph/DAG.lean,RefactorGraph/Main.lean,RefactorGraph/Test.lean,lakefile.lean | 4 | 1 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 26912 | pechersky | chore(Algebra/Ring/Subring): simp tag `Subring.smul_def` | s-multiplying by a subtype is easiest to manipulate when both terms are in the ambient type. Many places that had to use the _def lemma for a rewrite, or to include it in a simp set, no longer have to. Ported from #25308 --- [](https://gitpod.io/from-referrer/) I found this being not-simp frustrating when talking about submodules over a valuation subring. | merge-conflict t-algebra | 67/66 | Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/Group/Subgroup/Actions.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/Algebra/Module/LocalizedModule/Exact.lean,Mathlib/Algebra/Module/LocalizedModule/IsLocalization.lean,Mathlib/Algebra/Module/LocalizedModule/Submodule.lean,Mathlib/Algebra/Ring/Periodic.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/LinearAlgebra/RootSystem/Irreducible.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/RingTheory/Etale/Kaehler.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/LocalProperties/Projective.lean,Mathlib/RingTheory/Localization/InvSubmonoid.lean,Mathlib/RingTheory/OreLocalization/Basic.lean | 25 | 26 | ['artie2000', 'eric-wieser', 'github-actions', 'j-loreaux', 'kckennylau', 'leanprover-bot', 'leanprover-radar', 'linesthatinterlace', 'mathlib4-merge-conflict-bot', 'pechersky'] | joelriou | 2 months ago | 99 days ago | 60 days |
| 32737 | j-loreaux | refactor: rename `MulAction` to `MonoidAction` | Given that we now have [SemigroupAction](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Action/Defs.html#SemigroupAction) we are in the unfortunate scenario that the name which seems to have less structure actually has *more* structure. This PR: 1. renames `MulAction` to `MonoidAction` to reflect this additional structure, as well as declarations referencing `MulAction` in their names. `Prop`-valued mixins in the `MulAction` namespace are also renamed (e.g., `MulAction.{IsMinimal,IsTopologicallyTransitive}` → `MonoidAction.{IsMinimal,IsTopologicallyTransitive`). 2. The additive version are also renamed (`AddAction` → `AddMonoidAction`) and the corresponding `Prop`-valued mixins. 3. does *not* rename modules with `MulAction` in the name 4. does *not* rename `DistribMulAction`, `SubMulAction`, `MulActionWithZero`, etc. If these need to happen, that can occur at a later time. 5. does *not* rename `SemigroupAction` to `MulAction`. Even if this rename is desired, because of the prevalence of `MulAction` in Mathlib, I think we should not conduct a move of this magnitude all at once. If we want to rename this to `MulAction`, we should wait for the 6 month embargo period during which time that name is deprecated, to give everyone downstream the opportunity to switch instead of silently breaking their builds. Of course, another potential name is `MulOneAction`, but I don't think that's too helpful. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 3623/1862 | Mathlib/Algebra/AddConstMap/Basic.lean,Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Algebra/Unitization.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/BigOperators/Group/Finset/Pi.lean,Mathlib/Algebra/BigOperators/Group/Finset/Preimage.lean,Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/Field/Action/ConjAct.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/GradedMulAction.lean,Mathlib/Algebra/Group/Action/Basic.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/End.lean,Mathlib/Algebra/Group/Action/Equidecomp.lean,Mathlib/Algebra/Group/Action/Faithful.lean,Mathlib/Algebra/Group/Action/Hom.lean,Mathlib/Algebra/Group/Action/Opposite.lean,Mathlib/Algebra/Group/Action/Option.lean,Mathlib/Algebra/Group/Action/Pi.lean,Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Action/Pointwise/Set/Finite.lean,Mathlib/Algebra/Group/Action/Pretransitive.lean,Mathlib/Algebra/Group/Action/Prod.lean,Mathlib/Algebra/Group/Action/Sigma.lean,Mathlib/Algebra/Group/Action/Sum.lean,Mathlib/Algebra/Group/Action/TransferInstance.lean,Mathlib/Algebra/Group/Action/TypeTags.lean,Mathlib/Algebra/Group/Action/Units.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Equiv/Finite.lean,Mathlib/Algebra/Group/Nat/Range.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Finset/Density.lean,Mathlib/Algebra/Group/Pointwise/Finset/Scalar.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Card.lean,Mathlib/Algebra/Group/Pointwise/Set/Finite.lean,Mathlib/Algebra/Group/Pointwise/Set/Lattice.lean,Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean,Mathlib/Algebra/Group/Shrink.lean,Mathlib/Algebra/Group/Subgroup/Actions.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/Algebra/Group/Submonoid/Pointwise.lean,Mathlib/Algebra/Group/TransferInstance.lean,Mathlib/Algebra/Group/TypeTags/Finite.lean,Mathlib/Algebra/GroupWithZero/Action/Basic.lean,Mathlib/Algebra/GroupWithZero/Action/ConjAct.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/GroupWithZero/Action/Faithful.lean,Mathlib/Algebra/GroupWithZero/Action/Opposite.lean,Mathlib/Algebra/GroupWithZero/Action/Pi.lean,Mathlib/Algebra/GroupWithZero/Action/Pointwise/Finset.lean,Mathlib/Algebra/GroupWithZero/Action/Pointwise/Set.lean,Mathlib/Algebra/GroupWithZero/Action/Prod.lean,Mathlib/Algebra/GroupWithZero/Action/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/Action/Units.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/GroupWithZero/Pointwise/Finset.lean,Mathlib/Algebra/GroupWithZero/Pointwise/Set/Basic.lean,Mathlib/Algebra/GroupWithZero/Pointwise/Set/Card.lean,Mathlib/Algebra/GroupWithZero/Subgroup.lean,Mathlib/Algebra/GroupWithZero/Submonoid/Pointwise.lean,Mathlib/Algebra/GroupWithZero/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean,Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Algebra/Module/PUnit.lean,Mathlib/Algebra/Module/PointwisePi.lean,Mathlib/Algebra/Module/Rat.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Algebra/Module/Submodule/Invariant.lean,Mathlib/Algebra/Module/Submodule/LinearMap.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/Module/ULift.lean,Mathlib/Algebra/Order/Group/Action.lean,Mathlib/Algebra/Order/Group/Action/End.lean | 349 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | 78 days ago | 2 days |
| 30240 | luigi-massacci | feat(Analysis/Distribution/ContDiffMapSupportedIn): Add a wrapper for fderiv on D_K^n | Add a wrapper for `fderiv` as a map from `D_K^n` to `D_K^(n-1)`. Co-Authored by: @ADedecker --- - [x] depends on: #30239 - [x] depends on: #30236 - [x] depends on: #30202 - [x] depends on: #30201 - [x] depends on: #30199 - [x] depends on: #30198 - [x] depends on: #30197 [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author | 164/0 | Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean | 1 | 16 | ['ADedecker', 'github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | j-loreaux, sgouezel, urkud | 2 months ago | 77 days ago | 4 days |
| 32717 | adomani | perf: small speed up of the flexible linter | This just rearranges an array accumulation. --- [](https://gitpod.io/from-referrer/) | t-linter merge-conflict | 7/8 | Mathlib/Tactic/Linter/FlexibleLinter.lean | 1 | 4 | ['adomani', 'github-actions', 'leanprover-radar', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 25141 | eric-wieser | feat: basis for multilinear maps | This attempts to tease an intermediate result out of #11155, which lets us show that multilinear maps are free even if their codomain is not finite. I guess this continues from https://github.com/leanprover-community/mathlib3/pull/10504 and https://github.com/leanprover-community/mathlib3/pull/14199. --- - [ ] depends on: #11155 - [ ] depends on: #25142 - [ ] depends on: #25169 - [ ] depends on: #25166 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra large-import | 507/45 | Mathlib.lean,Mathlib/LinearAlgebra/DFinsupp.lean,Mathlib/LinearAlgebra/DFinsupp/PiTensorProduct.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/DirectSum/PiTensorProduct.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basis.lean,Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean,Mathlib/LinearAlgebra/Multilinear/DirectSum.lean,Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean,Mathlib/LinearAlgebra/Multilinear/Pi.lean | 11 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 29274 | Jlh18 | feat(CategoryTheory): HasLimits instance on Grpd | Use the free-forgetful adjunction to show that `Grpd` has all limits in `CategoryTheory.Category.Grpd.Limit`, as a reflective subcategory of `Cat`. - [ ] depends on: #29250[Renamings in Grpd file] - [ ] depends on: #29278[Quotient of a groupoid is a groupoid] - [ ] depends on: #29279[Free forgetful adjunction] - [ ] depends on: #29283 --- [](https://gitpod.io/from-referrer/) | file-removed blocked-by-other-PR t-category-theory merge-conflict | 243/65 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Groupoid/FreeGroupoidOfCategory.lean,Mathlib/CategoryTheory/Groupoid/Grpd.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Core.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Free.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Limit.lean,Mathlib/CategoryTheory/Quotient.lean | 9 | 6 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | 108 days ago | 2 hours |
| 29283 | Jlh18 | feat(CategoryTheory): define forgetful-core adjunction between Cat and Grpd | * Define `CategoryTheory.Core.functor`: the functor `Cat ⥤ Grpd` that on objects takes the core of a category * Define `CategoryTheory.Core.adjunction`: the adjunction with the forgetful functor `Grpd.forgetToCat` on the left, and the core functor `Core.functor` on the right. * Hence provide an instance that `Grpd.forgetToCat` is coreflective. --- - [x] depends on: #29284 [Extra lemmas in CategoryTheory.Core] --- [](https://gitpod.io/from-referrer/) | file-removed t-category-theory awaiting-author merge-conflict | 209/64 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Groupoid/FreeGroupoidOfCategory.lean,Mathlib/CategoryTheory/Groupoid/Grpd.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Core.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Free.lean | 7 | 25 | ['Jlh18', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | 83 days ago | 3 hours |
| 33015 | thorimur | share: stress test plugins via pluginizing Mathlib.Init | This PR is only created for conveniently sharing this branch via `gh` for the purpose of experimenting with plugins. There's no plan to make Mathlib.Init a plugin any time soon. :) --- [](https://gitpod.io/from-referrer/) | merge-conflict | 999/1080 | Mathlib.lean,Mathlib/Algebra/Expr.lean,Mathlib/Algebra/HierarchyDesign.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Note.lean,Mathlib/CategoryTheory/Category/Init.lean,Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean,Mathlib/Combinatorics/Matroid/Init.lean,Mathlib/Combinatorics/SimpleGraph/Init.lean,Mathlib/Control/Combinators.lean,Mathlib/Control/ULift.lean,Mathlib/Data/Array/Defs.lean,Mathlib/Data/Array/Extract.lean,Mathlib/Data/Finset/Attr.lean,Mathlib/Data/Int/DivMod.lean,Mathlib/Data/Int/Notation.lean,Mathlib/Data/List/Monad.lean,Mathlib/Data/Nat/BinaryRec.lean,Mathlib/Data/Nat/Init.lean,Mathlib/Data/Nat/Notation.lean,Mathlib/Data/Nat/NthRoot/Defs.lean,Mathlib/Data/Set/Defs.lean,Mathlib/Data/String/Defs.lean,Mathlib/Data/Sym/Sym2/Init.lean,Mathlib/Data/UInt.lean,Mathlib/Deprecated/Aliases.lean,Mathlib/Deprecated/Sort.lean,Mathlib/Lean/ContextInfo.lean,Mathlib/Lean/CoreM.lean,Mathlib/Lean/Elab/InfoTree.lean,Mathlib/Lean/Elab/Tactic/Meta.lean,Mathlib/Lean/Elab/Term.lean,Mathlib/Lean/EnvExtension.lean,Mathlib/Lean/Environment.lean,Mathlib/Lean/Exception.lean,Mathlib/Lean/Expr/Basic.lean,Mathlib/Lean/Expr/Rat.lean,Mathlib/Lean/GoalsLocation.lean,Mathlib/Lean/Json.lean,Mathlib/Lean/LinterCopies.lean,Mathlib/Lean/LinterCopiesTest.lean,Mathlib/Lean/LocalContext.lean,Mathlib/Lean/Meta.lean,Mathlib/Lean/Meta/Basic.lean,Mathlib/Lean/Meta/DiscrTree.lean,Mathlib/Lean/Meta/KAbstractPositions.lean,Mathlib/Lean/Meta/RefinedDiscrTree/Basic.lean,Mathlib/Lean/Meta/Simp.lean,Mathlib/Lean/Meta/Tactic/Rewrite.lean,Mathlib/Lean/Name.lean,Mathlib/Lean/PrettyPrinter/Delaborator.lean,Mathlib/Lean/Thunk.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/OpClass.lean,Mathlib/Tactic.lean,Mathlib/Tactic/AdaptationNote.lean,Mathlib/Tactic/ApplyCongr.lean,Mathlib/Tactic/ApplyWith.lean,Mathlib/Tactic/ArithMult/Init.lean,Mathlib/Tactic/Attr/Register.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/Bound/Init.lean,Mathlib/Tactic/CC/Lemmas.lean,Mathlib/Tactic/Cases.lean,Mathlib/Tactic/CasesM.lean,Mathlib/Tactic/CategoryTheory/CategoryStar.lean,Mathlib/Tactic/CategoryTheory/Coherence/Datatypes.lean,Mathlib/Tactic/Change.lean,Mathlib/Tactic/Check.lean,Mathlib/Tactic/Clean.lean,Mathlib/Tactic/ClearExcept.lean,Mathlib/Tactic/ClearExclamation.lean,Mathlib/Tactic/Clear_.lean,Mathlib/Tactic/Coe.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/Constructor.lean,Mathlib/Tactic/Continuity/Init.lean,Mathlib/Tactic/Conv.lean,Mathlib/Tactic/Core.lean,Mathlib/Tactic/DepRewrite.lean,Mathlib/Tactic/Eqns.lean,Mathlib/Tactic/ErwQuestion.lean,Mathlib/Tactic/Eval.lean,Mathlib/Tactic/ExistsI.lean,Mathlib/Tactic/Explode/Datatypes.lean,Mathlib/Tactic/ExtendDoc.lean,Mathlib/Tactic/FailIfNoProgress.lean,Mathlib/Tactic/FastInstance.lean,Mathlib/Tactic/FieldSimp/Attr.lean,Mathlib/Tactic/Find.lean,Mathlib/Tactic/FindSyntax.lean,Mathlib/Tactic/Finiteness/Attr.lean,Mathlib/Tactic/FunProp/Decl.lean,Mathlib/Tactic/FunProp/Mor.lean,Mathlib/Tactic/FunProp/ToBatteries.lean,Mathlib/Tactic/GCongr/ForwardAttr.lean,Mathlib/Tactic/Generalize.lean,Mathlib/Tactic/GuardGoalNums.lean,Mathlib/Tactic/GuardHypNums.lean,Mathlib/Tactic/Have.lean,Mathlib/Tactic/HaveI.lean | 211 | 0 | [] | nobody | 2 months ago | unknown | unknown |
| 21447 | erdOne | feat(AlgebraicGeometry): the split algebraic torus | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebraic-geometry | 419/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/Torus.lean | 2 | 6 | ['erdOne', 'github-actions', 'jcommelin', 'joelriou', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 25963 | artie2000 | refactor(Algebra): uniform API for substructures | * Add class for `SetLike` instances whose map preserves meets - the intended interpretation is substructures whose closure properties are preserved under intersection * Abstract out the `CompleteLattice` instance and `closure` adjunction on such instances This change unifies a significant part of the API for algebraic substructures. --- - [ ] depends on #32984 [](https://gitpod.io/from-referrer/) Original PR: https://github.com/leanprover-community/mathlib4/pull/20836 | merge-conflict WIP t-algebra | 354/179 | Mathlib/Algebra/Group/Subsemigroup/Basic.lean,Mathlib/Algebra/Group/Subsemigroup/Defs.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Data/SetLike/Closure.lean | 4 | 3 | ['artie2000', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 2 months ago | unknown | unknown |
| 32938 | 0xTerencePrime | feat(Order/LocallyFinite): prove DenselyOrdered and LocallyFiniteOrder are incompatible | ## Summary This PR proves that a nontrivial densely ordered linear order cannot be locally finite. ## Main results * `not_locallyFiniteOrder`: A densely ordered locally finite linear order must be subsingleton. * `not_locallyFiniteOrder_of_nontrivial`: The main theorem - incompatibility of the two properties. Note: This implementation imports `Mathlib.Order.Interval.Set.Infinite` to reuse the existing `Set.Icc_infinite` theorem, ensuring standard library consistency. ## Mathematical content The key insight is that in a densely ordered type, we can always find a new element between any two distinct elements. This means any nontrivial interval contains infinitely many elements. However, `LocallyFiniteOrder` requires intervals to be finite. This contradiction implies that such a type cannot exist (unless it is trivial). ## Motivation This resolves a TODO mentioned in #7987 (Data/Finset/LocallyFinite entry). ## Verification - [x] `lake build Mathlib.Order.LocallyFinite.Basic` passes - [x] `lake exe runLinter Mathlib.Order.LocallyFinite.Basic` passes | t-order new-contributor awaiting-author | 28/0 | Mathlib/Order/Interval/Finset/Basic.lean | 1 | 10 | ['0xTerencePrime', 'CoolRmal', 'github-actions', 'jcommelin', 'plp127'] | nobody | 2 months ago | 74 days ago | 2 days |
| 33077 | YaelDillies | feat(Data/Rel): balls | Define `SetRel.ball` and use it in place of `UniformSpace.ball`. --- [](https://gitpod.io/from-referrer/) | WIP t-data | 38/3 | Mathlib/Data/Rel.lean,Mathlib/Topology/UniformSpace/Defs.lean | 2 | 1 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 31226 | erdOne | chore(RingTheory): add `@[ext]` to `Ideal.Quotient.algHom_ext` | See [`Ideal.Quotient.ringHom_ext`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Ideal.Quotient.ringHom_ext#doc) which also has @[ext 1100]. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-ring-theory easy merge-conflict | 3/2 | Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean | 2 | 7 | ['erdOne', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | 117 days ago | 2 days |
| 21495 | alreadydone | experiment: reducible HasQuotient.quotient' | --- [](https://gitpod.io/from-referrer/) | WIP bench-after-CI merge-conflict | 2/0 | Mathlib/Algebra/Quotient.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 32698 | farruhx | feat(List): add aesop / simp annotations to selected lemmas for improved automation | This PR adds `@[aesop safe]` and `@[simp]` annotations to a set of List lemmas whose proofs are routine and benefit from standardized automation. No statements or definitions are changed; only proof annotations are added. The lemmas updated in this PR are: * `or_exists_of_exists_mem_cons` * `append_subset_of_subset_of_subset` * `map_subset_iff` * `append_eq_has_append` * `append_right_injective` * `append_left_injective` * `reverse_surjective` * `reverse_bijective` * `mem_getLast?_append_of_mem_getLast?` * `mem_dropLast_of_mem_of_ne_getLast` * `idxOf_eq_length_iff` * `idxOf_append_of_mem` * `length_eraseP_add_one` The goal is to make these commonly used lemmas easier for `aesop`-based automation to resolve, while avoiding any interference with simp-normal-form lemmas or canonical rewrite rules. There are no API changes and no new theorems—only improved automation behavior. | t-data new-contributor awaiting-author | 18/1 | Mathlib/Data/List/Basic.lean | 1 | 8 | ['artie2000', 'euprunin', 'farruhx', 'github-actions'] | pechersky | 2 months ago | 74 days ago | 7 days |
| 27817 | zhuyizheng | feat: add IMO2025P1 | Add a solution to IMO2025P1, the original problem statement from https://github.com/jsm28/IMOLean --- [](https://gitpod.io/from-referrer/) | IMO awaiting-author new-contributor merge-conflict | 1310/0 | Archive.lean,Archive/Imo/Imo2025Q1.lean | 2 | 9 | ['github-actions', 'kim-em', 'mathlib4-merge-conflict-bot', 'zhuyizheng'] | dwrensha | 2 months ago | 133 days ago | 54 days |
| 33157 | wwylele | feat(Combinatorics): partitions and pentagonal numbers | --- - [ ] depends on: #33143 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR | 506/1 | Mathlib.lean,Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Combinatorics/Enumerative/Partition/Pentagonal.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Ring.lean,docs/1000.yaml | 8 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 26923 | oliver-butterley | feat(Dynamics/BirkhoffSum): add the pointwise ergodic theorem (Birkhoff's) | The Pointwise Ergodic Theorem, also known as Birkhoff's Ergodic Theorem.
Co-authored-by: Lua Viana Reis |
t-dynamics new-contributor awaiting-author | 398/0 | Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Pointwise.lean | 2 | 31 | ['D-Thomine', 'github-actions', 'leanprover-community-bot-assistant', 'lua-vr', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel', 'urkud'] | sgouezel | 2 months ago | 77 days ago | 98 days |
| 32497 | themathqueen | chore: make `FiniteDimensional.complete 𝕜` an instance when `𝕜` is `RCLike` | --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-bench | 3/26 | Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/Positive.lean | 2 | 3 | ['github-actions', 'leanprover-radar', 'themathqueen'] | nobody | 2 months ago | unknown | unknown |
| 33218 | Blackfeather007 | feat(Algebra): Define the associated graded ring to filtered ring | Define the associated graded ring to a filtered ring. --- - [ ] depends on: #33217 migrated from https://github.com/leanprover-community/mathlib4/pull/26858 | t-ring-theory new-contributor blocked-by-other-PR | 450/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean | 2 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 33219 | Blackfeather007 | feat(Algebra): Define associated graded algebra | Define the associated graded algebra of a filtered algebra, constructed from a special case of associated graded ring. --- - [ ] depends on: #33218 migrated from #26859 | t-ring-theory new-contributor blocked-by-other-PR | 563/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean | 2 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 33220 | Blackfeather007 | feat(Algebra): Define associated graded module | Define the associated graded module to a filtered module. --- - [ ] depends on: #33218 migrated from #26860 | t-ring-theory new-contributor blocked-by-other-PR | 669/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean | 2 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 33227 | Blackfeather007 | feat(Algebra): exact of associated graded exact | We proved that a chain complex is exact if its associated graded complex is exact. Co-authored-by: Huanyu Zheng @Yu-Misaka [suzuka@misaka-yu.com](mailto:suzuka@misaka-yu.com) Co-authored-by: Yi Yuan @yuanyi-350 [kysyy1@126.com](mailto:kysyy1@126.com) Co-authored-by: Weichen Jiao @AlbertJ-314 [albertjiao314@gmail.com](mailto:albertjiao314@gmail.com) --- - [ ] depends on: #33226 migrated from #26869 | t-ring-theory new-contributor blocked-by-other-PR | 728/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/Exactness.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 4 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 3 minutes |
| 33226 | Blackfeather007 | feat(Algebra): associated graded exact of exact and strict | In this file, we define the concept of exhaustive filtrations. We also prove a AssociatedGradedRingHom sequence is exact iff each GradedPieceHom is exact. And when a sequence is strict exact, the corresponding AssociatedGradedRingHom sequence is also exact. Co-authored-by: Huanyu Zheng @Yu-Misaka [suzuka@misaka-yu.com](mailto:suzuka@misaka-yu.com) Co-authored-by: Yi Yuan @yuanyi-350 [kysyy1@126.com](mailto:kysyy1@126.com) Co-authored-by: Weichen Jiao @AlbertJ-314 [albertjiao314@gmail.com](mailto:albertjiao314@gmail.com) --- - [ ] depends on: #33222 migrated from #26868 | t-ring-theory new-contributor blocked-by-other-PR | 529/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/Exactness.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 4 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 6 minutes |
| 33225 | Blackfeather007 | feat(Algebra): filtered module hom | In this PR we defined the filtered semi-linear map for filtered module and the associated graded module hom. --- - [ ] depends on: #33220 - [ ] depends on: #33223 migrated from #26867 | t-ring-theory new-contributor blocked-by-other-PR | 1205/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 33224 | Blackfeather007 | feat(Algebra): define filtered alghom | In this PR, we define the filtered algebra homomorphisms on algebras and prove some basic properties of them. --- - [ ] depends on: #33219 - [ ] depends on: #33223 migrated from #26863 | t-ring-theory new-contributor blocked-by-other-PR | 1055/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 16 minutes |
| 33223 | Blackfeather007 | feat(Algebra): define filtered ring homomorphism | In this PR, we define the filtered ring morphisms on rings and prove some basic properties of them. Co-authored-by: Huanyu Zheng @Yu-Misaka [suzuka@misaka-yu.com](mailto:suzuka@misaka-yu.com) Co-authored-by: Yi Yuan @yuanyi-350 [kysyy1@126.com](mailto:kysyy1@126.com) Co-authored-by: Weichen Jiao @AlbertJ-314 [albertjiao314@gmail.com](mailto:albertjiao314@gmail.com) --- - [ ] depends on: #33218 - [ ] depends on: #33222 migrated from #26862 | t-ring-theory new-contributor blocked-by-other-PR | 824/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 19 minutes |
| 33222 | Blackfeather007 | feat(Algebra): define filtered add group hom | In this file we define filtered hom and the corresponding associated graded hom for abelian groups. Co-authored-by: Huanyu Zheng @Yu-Misaka [suzuka@misaka-yu.com](mailto:suzuka@misaka-yu.com) Co-authored-by: Yi Yuan @yuanyi-350 [kysyy1@126.com](mailto:kysyy1@126.com) Co-authored-by: Weichen Jiao @AlbertJ-314 [albertjiao314@gmail.com](mailto:albertjiao314@gmail.com) --- - [ ] depends on: #33217 migrated from #26861 | new-contributor t-ring-theory blocked-by-other-PR | 368/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean,Mathlib/RingTheory/FilteredAlgebra/FilteredHom.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | 70 days ago | 22 minutes |
| 33134 | faenuccio | feat(Normed/Module/WeakDual): add Goldstine lemma | We add Goldstine lemma stating that the weak*-closure of the image in the double dual of the unit ball coincides with the unit ball. As a corollary we derive that the image of `inclusionInDoubleDual` is weak*-dense. --- [](https://gitpod.io/from-referrer/) | WIP t-analysis | 148/3 | Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,docs/references.bib | 3 | 2 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 33178 | gw90 | feat(Analysis/CStarAlgebra/Spectrum): Adding lemmas that the CStarAlgebra norm equals the square root of the spectral radius of star a * a | Adds lemmas that the ||a||^2_A=sqrt(spectralRadius C (star a * a)). I think it would be helpful to have these lemmas available in Mathlib. It'll help with some of the other things I'm working on. Feel free to move them to a different file or rename them as you see fit. | new-contributor t-analysis awaiting-author | 24/0 | Mathlib/Analysis/CStarAlgebra/Spectrum.lean | 1 | 15 | ['github-actions', 'gw90', 'themathqueen', 'vihdzp'] | nobody | 2 months ago | 72 days ago | 3 hours |
| 33269 | urkud | feat(MeasureTheory/Covering): generalize some lemmas to outer measures | --- [](https://gitpod.io/from-referrer/) | t-measure-probability | 29/19 | Mathlib/MeasureTheory/Covering/Differentiation.lean,Mathlib/MeasureTheory/Covering/VitaliFamily.lean | 2 | 1 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 33138 | gasparattila | chore(MeasureTheory/Measure/Stieltjes): remove `backward.privateInPublic` | In #32482, some definitions in this file were rewritten using private declarations. However, this made `StieltjesFunction.length` unusable, since its API uses private declarations even in statements. This PR fixes this by problem by specializing `length_eq` to `NoMinOrder` and adding a new lemma for the `OrderBot` case. The other lemmas involving the private declarations are made private, except for `length_subadditive_Icc_Ioo`, which is reverted to the previous statement. --- [](https://gitpod.io/from-referrer/) | t-measure-probability tech debt awaiting-author | 35/30 | Mathlib/MeasureTheory/Measure/Stieltjes.lean | 1 | 6 | ['github-actions', 'grunweg', 'sgouezel', 'vihdzp'] | sgouezel | 2 months ago | 68 days ago | 5 days |
| 33307 | grunweg | Orientable manifolds updated | --- [](https://gitpod.io/from-referrer/) | WIP t-differential-geometry | 377/4 | Mathlib.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Geometry/Manifold/Orientable.lean | 3 | 2 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 33313 | SnirBroshi | feat(Combinatorics/SimpleGraph/EdgeColoring): create a basic edge-coloring API | --- Future work (which I'm working on): - Relating degrees to edge-colorability (`G.maxDegree ≤ G.chromaticIndex`) - [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)` - [ ] depends on: #33292 [](https://gitpod.io/from-referrer/) | large-import t-combinatorics blocked-by-other-PR | 307/4 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/EdgeColoring.lean,Mathlib/Combinatorics/SimpleGraph/LineGraph.lean,Mathlib/Data/Sym/Sym2.lean | 4 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 5934 | eric-wieser | feat: port Data.Rat.MetaDefs | --- [](https://gitpod.io/from-referrer/) This needs some eyes from people familiar with Qq | merge-conflict help-wanted mathlib-port t-meta | 183/0 | Mathlib.lean,Mathlib/Data/Rat/MetaDefs.lean,test/rat.lean | 3 | 5 | ['eric-wieser', 'gebner', 'vihdzp'] | nobody | 2 months ago | unknown | unknown |
| 4960 | eric-wieser | chore: use `open scoped` | Earlier versions of mathport did not know about this. This was done by searching for all `open` commands referencing: * `Classical` * `BigOperators` * `Topology` * `Pointwise` --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-CI | 1026/981 | Mathlib/Algebra/AddTorsor.lean,Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean,Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/BigOperators/Associated.lean,Mathlib/Algebra/BigOperators/Basic.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/BigOperators/Finsupp.lean,Mathlib/Algebra/BigOperators/Intervals.lean,Mathlib/Algebra/BigOperators/NatAntidiagonal.lean,Mathlib/Algebra/BigOperators/Option.lean,Mathlib/Algebra/BigOperators/Order.lean,Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Algebra/BigOperators/Ring.lean,Mathlib/Algebra/BigOperators/RingEquiv.lean,Mathlib/Algebra/Bounds.lean,Mathlib/Algebra/Category/GroupCat/Biproducts.lean,Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean,Mathlib/Algebra/Category/GroupCat/Injective.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Category/ModuleCat/Biproducts.lean,Mathlib/Algebra/Category/Mon/FilteredColimits.lean,Mathlib/Algebra/Category/Ring/Adjunctions.lean,Mathlib/Algebra/Category/Ring/FilteredColimits.lean,Mathlib/Algebra/CharP/Basic.lean,Mathlib/Algebra/CharP/Two.lean,Mathlib/Algebra/DirectLimit.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/Field/Defs.lean,Mathlib/Algebra/GCDMonoid/Div.lean,Mathlib/Algebra/GeomSum.lean,Mathlib/Algebra/GroupWithZero/Basic.lean,Mathlib/Algebra/GroupWithZero/Commute.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Homology/Additive.lean,Mathlib/Algebra/Homology/ComplexShape.lean,Mathlib/Algebra/Homology/Homology.lean,Mathlib/Algebra/Homology/Homotopy.lean,Mathlib/Algebra/Homology/HomotopyCategory.lean,Mathlib/Algebra/Homology/ImageToKernel.lean,Mathlib/Algebra/IndicatorFunction.lean,Mathlib/Algebra/LinearRecurrence.lean,Mathlib/Algebra/Module/BigOperators.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Module/LinearMap.lean,Mathlib/Algebra/Module/PointwisePi.lean,Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/Module/Submodule/Bilinear.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/Chebyshev.lean,Mathlib/Algebra/Order/Module.lean,Mathlib/Algebra/Order/Pointwise.lean,Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Algebra/Order/SMul.lean,Mathlib/Algebra/Order/UpperLower.lean,Mathlib/Algebra/Periodic.lean,Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Algebra/Polynomial/GroupRingAction.lean,Mathlib/Algebra/Star/BigOperators.lean,Mathlib/Algebra/Star/Pointwise.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/Algebra/Support.lean,Mathlib/Algebra/TrivSqZeroExt.lean,Mathlib/Algebra/Tropical/BigOperators.lean,Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean,Mathlib/AlgebraicTopology/ExtraDegeneracy.lean,Mathlib/AlgebraicTopology/TopologicalSimplex.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean,Mathlib/Analysis/Asymptotics/Asymptotics.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean,Mathlib/Analysis/Asymptotics/Theta.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Filter.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean,Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean,Mathlib/Analysis/Calculus/ContDiffDef.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean | 788 | 1 | ['vihdzp'] | nobody | 2 months ago | unknown | unknown |
| 6042 | MohanadAhmed | feat(LinearAlgebra/Matrix/SVD): Singular Value Decomposition of R or C Matrices | This file provides proves the SVD theorem which decomposes a real/complex matrix into left eigenvectors, singular values block diagonal matrix and right eigenvectors.
Any matrix A (M × N) with rank r = A.rank and with elements in ℝ or ℂ fields can be decompsed into the product of three matrices:
$$A = USV$$
* The three matrices are defined as
- $U$: an M × M matrix containing the left eigenvectors of the matrix
- $S$: an M × N matrix with an r × r block in the upper left corner with nonzero singular values
- $V$: an N × N matrix containing the right eigenvectors of the matrix
Note that
* $S$ is a block matrix $S = [S₁₁, S₁₂; S₂₁, S₂₂]$ with
- $S₁₁$: a diagonal r × r matrix and
- $S₁₂$ : r × (N - r) zero matrix, S₂₁ : (M - r) × r zero matrix and
- $S₂₂$: (M - r) × (N - r) zero matrix
* $U$ is a block column matrix U = [U₁ U₂] with
- $U₁$ : a M × r containing left eigenvectors with nonzero singular values.
- $U₂$ : a M × (M - r) containing left eigenvectors with zero singular values.
* $V$ is a block column matrix V = [V₁ V₂] with
- $V₁$ : a N × r containing right eigenvectors with nonzero singular values.
- $V₂$ : a M × (M - r) containing right eigenvectors with zero singular values.
Since in mathlib the eigenvalues of hermitian matrices are defined in an "arbitrary" undetermined order, we begin by partition the singular values into zero and non-zero values. We partition the corresponding eigenvectors from AᴴA and AAᴴ using similar rearrangements. These are included in `SVD.svdReindex`. The basic API for Column and Row partitioned matrices is from `ColumnRowPartitioned`.
We then proceed to transfer some of the lemmas we need about eigenvector matrices (for example that they are unitary: i.e. inverse is conjugate transpose.). Note that since invertibility in mathlib is defined for square matrices while our matrices are partitioned i.e. N × (N₁ ⊕ N₂) and N ≃ (N ⊕ N₂), Lean cannot apply the Invertible definition. We workaround this were necessary.
Lemma `reduced_spectral_theorem` (`reduced_spectral_theorem'`) shows that AᴴA and AAᴴ, can be reduced to products containing only the non-zero singular eigenvectors. This is later used in proving the main SVD theroem. A few lemmas are provided about the invertibility of the non-zero singular values matrix: `svdσ_inv`, `σ_inv_μ_σ_inv_eq_one`, `IsUnit_det_svdσ`, `IsUnit_det_svdσ_mapK` and `svdσ_inv_mapK`.
To make relating left eigenvectors to right eigenvectors easier we define U₁ = AV₁σ⁻¹ while U₂ is obtained from the eigenvectors of (AAᴴ). This avoid a lengthy reindexing operation with many proofs. The vectors in U₂ have no such issue since they are multiplied by zero singular values anyway.
Co-authored-by: Mohanad Ahmed |
please-adopt WIP t-algebra merge-conflict | 588/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/SVD/Defs.lean,Mathlib/LinearAlgebra/Matrix/SVD/Reindex.lean | 3 | 116 | ['MohanadAhmed', 'Vierkantor', 'alexjbest', 'eric-wieser', 'j-loreaux', 'jcommelin', 'mathlib4-merge-conflict-bot', 'sgouezel', 'vihdzp'] | nobody | 2 months ago | unknown | unknown |
| 4127 | kmill | refactor: create HasAdj class, define Digraph, and generalize some SimpleGraph API | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-combinatorics | 1403/551 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/Graph/Classes.lean,Mathlib/Combinatorics/Graph/Dart.lean,Mathlib/Combinatorics/Graph/Hom.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Density.lean,Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean,Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 18 | 2 | ['SnirBroshi', 'vihdzp'] | nobody | 2 months ago | unknown | unknown |
| 32264 | jjtowery | feat(Bicategory): add lax slice bicategory | --- In this PR, I define the lax slice bicategory for a lax functor over an object. I also give the change of slice strict pseudofunctor. These are from Section 7.1 of Johnson & Yau and are essential for their Whitehead theorem for bicategories (lax functor biequivalence iff essentially surjective, essentially full, and fully faithful), which I'd like to prove at some point. [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor awaiting-author | 527/0 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/LaxSlice.lean | 2 | 12 | ['dagurtomas', 'github-actions', 'jjtowery', 'robin-carlier'] | dagurtomas | 2 months ago | 90 days ago | 3 days |
| 27752 | plp127 | feat(Order): `NoBotOrder α` implies `NoMinOrder α` under `IsDirected α (· ≥ ·)` | This PR continues the work from #24266. Original PR: https://github.com/leanprover-community/mathlib4/pull/24266 | awaiting-author t-order merge-conflict | 14/0 | Mathlib/Order/Directed.lean | 1 | 5 | ['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'plp127'] | nobody | 2 months ago | unknown | unknown |
| 32921 | faenuccio | refactor Submodule.map | Following [#mathlib4 > on the definition of Submodule.map](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/on.20the.20definition.20of.20Submodule.2Emap/with/563900347) this PR refactors the definition of `Submodule.map` removing the requirement that the underlying ring homomorphism be surjective. --- [](https://gitpod.io/from-referrer/) | WIP awaiting-author t-algebra merge-conflict | 32/20 | Mathlib/Algebra/Module/Submodule/Map.lean | 1 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 32889 | artie2000 | feat(Algebra): forgetful lemmas for `map` and `comap` on substructures | * Standardise the form of forgetful lemmas for `map` and `comap` (ie, `(co)map_toSubfoo`) * Add missing lemmas of this form * Mark all such lemmas as `simp` --- - [ ] depends on: #21031 [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author blocked-by-other-PR merge-conflict | 72/17 | Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/Subalgebra.lean | 6 | 30 | ['YaelDillies', 'artie2000', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vihdzp'] | nobody | 2 months ago | 76 days ago | 2 days |
| 32960 | dleijnse | feat(FieldTheory): adjoin pth roots | For a field `k` of exponential characteristic `p` and a subset `S` of `k`, we define the extension of `k` obtained by adjoining all `p`-th roots of elements of `S`. We prove that this is a purely inseparable extension, and provide some basic API. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor awaiting-author | 131/0 | Mathlib.lean,Mathlib/FieldTheory/PurelyInseparable/AdjoinPthRoots.lean | 2 | 13 | ['artie2000', 'chrisflav', 'dleijnse', 'erdOne', 'github-actions', 'leanprover-radar'] | erdOne | 2 months ago | 66 days ago | 10 days |
| 33163 | Aaron1011 | feat: prove subgroup of (M -> Z) is finitely generated | --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor awaiting-author | 5/0 | Mathlib/RingTheory/DedekindDomain/Dvr.lean | 1 | 2 | ['erdOne', 'github-actions'] | alreadydone | 2 months ago | 66 days ago | 5 days |
| 25481 | kbuzzard | chore: refactor Algebra.TensorProduct.rightAlgebra | The declaration `Algebra.TensorProduct.rightAlgebra` makes `A ⊗[R] B` into a `B`-algebra (here `R` is a `CommSemiring`, `A` is a `Semiring` and an `R`-algebra, and `B` is a `CommSemiring` and an `R`-algebra). It is not an instance because if A = B it causes a diamond. However in the many cases where A isn't B, it can occasionally be useful. However one could imagine that in the many cases where an R-module `M` also isn't `B`, it might occasionally be useful to make `M ⊗[R] B` into a `B`-module (and indeed I am finding this in FLT). With the current definition of `Algebra.TensorProduct.rightAlgebra` this is difficult to do without causing diamonds in the case when `M` happens to be an `R`-algebra (by which I mean "I failed to do this in finite time"). One fix for this is just to redefine `Algebra.TensorProduct.rightAlgebra` so that the `smul` field is ``` smul b ab := TensorProduct.comm _ _ _ (b • (TensorProduct.comm _ _ _ ab)) ``` i.e. literally "swap the product around, use mathlib's instance making `B ⊗[R] A` into a `B`-algebra, and then swap back". Then the same definition can be used to make `M ⊗[R] B` into a `B`-module and on the odd occasion where this point of view is useful, there is no diamond. This is what we do in this PR. After adding one simp lemma there is no breakage at all in mathlib. Furthermore, for those who have observed that we want to build on this algebra instance sometimes and, for example, add instances of the form "if M is finite over R then M ⊗[R] B is finite over B" -- these instances are really easy to add now with this new definition, because you simply pull back the analogous finite left module instance along the isomorphism M ⊗[R] B = B ⊗[R] M. Examples (from FLT, where the right action is put in a scope): ``` scoped instance [Module.Finite R M] : Module.Finite A (M ⊗[R] A) := Module.Finite.equiv (Module.TensorProduct.comm R A M) scoped instance [Module.Free R M] : Module.Free A (M ⊗[R] A) := Module.Free.of_equiv (Module.TensorProduct.comm R A M) ``` --- [](https://gitpod.io/from-referrer/) | t-algebra | 29/6 | Mathlib/RingTheory/TensorProduct/Basic.lean | 1 | 8 | ['adomani', 'github-actions', 'kbuzzard', 'leanprover-bot', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | adomani | 2 months ago | unknown | unknown |
| 28972 | themathqueen | feat(LinearAlgebra/Matrix): star-algebra automorphisms on matrices are unitarily inner | Characterization of star-algebra automorphisms on matrices: for any star-algebra automorphism `f` on matrices, there exists a unitary matrix `U` such that `f x = U * x * star U`. More generally, this shows that given star-homomorphisms `f` and `g` from `B` to a star-algebra `A` and that the centralizer of `range g` is trivial, then `f x = U * g x * U⁻¹` for some invertible element `U` if and only if `f x = U * g x * star U` for some unitary `U`. Then a corollary to this and [AlgEquiv.eq_linearEquivConjAlgEquiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/GeneralLinearGroup/AlgEquiv.html#AlgEquiv.eq_linearEquivConjAlgEquiv) is that star-algebra automorphisms on matrices are unitarily inner. Another quick corollary to this and [ContinuousAlgEquiv.eq_continuousLinearEquivConjContinuousAlgEquiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.html#ContinuousAlgEquiv.eq_continuousLinearEquivConjContinuousAlgEquiv) is that star-algebra automorphisms on endomorphisms in `ℂ`-Hilbert spaces are unitarily inner. (See #33066 for the more general version of this.) --- - [x] depends on: #28100 - [x] depends on: #28182 - [x] depends on: #28881 [](https://gitpod.io/from-referrer/) | t-algebra t-analysis awaiting-author | 138/0 | Mathlib.lean,Mathlib/Analysis/Matrix/StarAlgEquiv.lean | 2 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'themathqueen'] | dagurtomas | 2 months ago | 65 days ago | 1 day |
| 14444 | digama0 | fix(GeneralizeProofs): unreachable! bug | As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Unreachable.20code.20reached.20in.20Lean.204.2E8.2E0/near/449286780). --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 1/1 | Mathlib/Tactic/GeneralizeProofs.lean | 1 | 6 | ['github-actions', 'jcommelin', 'kmill', 'mathlib4-merge-conflict-bot', 'plby'] | nobody | 2 months ago | unknown | unknown |
| 25138 | chrisflav | chore(RingTheory/Ideal): make `RingHom.ker` take a `RingHom` instead of `RingHomClass` | --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author merge-conflict | 317/309 | Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Hom/Rat.lean,Mathlib/Algebra/Algebra/Opposite.lean,Mathlib/Algebra/Algebra/Subalgebra/Operations.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Module/AEval.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean,Mathlib/AlgebraicGeometry/Pullbacks.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/FieldTheory/Minpoly/Field.lean,Mathlib/FieldTheory/PurelyInseparable/Tower.lean,Mathlib/LinearAlgebra/Semisimple.lean,Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/Adjoin/Tower.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/Congruence/Hom.lean,Mathlib/RingTheory/Etale/Kaehler.lean,Mathlib/RingTheory/Extension/Cotangent/Basis.lean,Mathlib/RingTheory/Extension/Cotangent/LocalizationAway.lean,Mathlib/RingTheory/Extension/Generators.lean,Mathlib/RingTheory/Extension/Presentation/Basic.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/RingTheory/FinitePresentation.lean,Mathlib/RingTheory/FiniteStability.lean,Mathlib/RingTheory/Finiteness/NilpotentKer.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/IsAdjoinRoot.lean,Mathlib/RingTheory/Jacobson/Ring.lean,Mathlib/RingTheory/Kaehler/Basic.lean,Mathlib/RingTheory/Kaehler/JacobiZariski.lean,Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean,Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean,Mathlib/RingTheory/Localization/Algebra.lean,Mathlib/RingTheory/MvPowerSeries/Evaluation.lean,Mathlib/RingTheory/Nilpotent/Lemmas.lean,Mathlib/RingTheory/NoetherNormalization.lean,Mathlib/RingTheory/Nullstellensatz.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/Polynomial/UniqueFactorization.lean,Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean,Mathlib/RingTheory/Smooth/AdicCompletion.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Smooth/Flat.lean,Mathlib/RingTheory/Smooth/Kaehler.lean,Mathlib/RingTheory/Smooth/NoetherianDescent.lean,Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean,Mathlib/RingTheory/Unramified/Finite.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/ContinuousMap/Ideals.lean,Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean | 68 | 8 | ['chrisflav', 'erdOne', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 31018 | joelriou | feat(CategoryTheory): the κ-accessible category of κ-directed posets | WIP --- - [x] depends on: #30727 - [x] depends on: #31767 - [x] depends on: #29519 - [x] depends on: #29543 - [x] depends on: #29565 - [x] depends on: #29854 - [x] depends on: #30459 - [x] depends on: #30605 - [x] depends on: #31426 - [x] depends on: #31421 - [x] depends on: #30633 - [x] depends on: #30634 - [x] depends on: #30693 - [x] depends on: #30696 - [x] depends on: #30781 [](https://gitpod.io/from-referrer/) | WIP t-category-theory | 446/4 | Mathlib.lean,Mathlib/CategoryTheory/Presentable/Basic.lean,Mathlib/CategoryTheory/Presentable/CardinalDirectedPoset.lean,Mathlib/CategoryTheory/Presentable/SharplyLT.lean,Mathlib/Order/Category/PartOrdEmb.lean | 5 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 33386 | joelriou | feat(AlgebraicTopology/SimplicialSet): decidable instances | --- [](https://gitpod.io/from-referrer/) | t-algebraic-topology WIP RFC | 76/0 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/Decidable.lean | 2 | 1 | ['github-actions'] | nobody | 2 months ago | unknown | unknown |
| 24665 | Komyyy | feat(Mathlib/Topology/Metrizable/Uniformity): every uniform space is generated by a family of pseudometrics | --- [](https://gitpod.io/from-referrer/) | WIP t-topology merge-conflict | 54/0 | Mathlib/Topology/Metrizable/Uniformity.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 33381 | urkud | feat: add a version of the Schwarz lemma | Add a version of the Schwarz lemma that is midway between the original lemma and Pick's version. Use it to show that a function that is separately holomorphic on a polydisc and is bounded on this polydisc must be continuous on it. --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #33368 - [x] depends on: #33362 | t-analysis blocked-by-other-PR merge-conflict | 475/91 | Mathlib.lean,Mathlib/Analysis/Complex/Schwarz.lean,Mathlib/Analysis/Complex/UnitDisc/Basic.lean,Mathlib/Analysis/Complex/UnitDisc/Schwarz.lean,Mathlib/Analysis/Complex/UnitDisc/Shift.lean | 5 | 22 | ['girving', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 2 months ago | 64 days ago | 38 seconds |
| 18805 | astrainfinita | refactor: deprecate `SemilinearMapClass` | --- I'm not sure if we want to do this, but let's see if we can get a speed up from it first. - [ ] depends on: #18755 - [ ] depends on: #18756 - [ ] depends on: #18806 [](https://gitpod.io/from-referrer/) | WIP awaiting-bench t-algebra blocked-by-other-PR merge-conflict | 546/318 | Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Algebra/Rat.lean,Mathlib/Algebra/BigOperators/Balance.lean,Mathlib/Algebra/BigOperators/Expect.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Group/Equiv/Basic.lean,Mathlib/Algebra/Group/Units/Equiv.lean,Mathlib/Algebra/GroupWithZero/Hom.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Module/LinearMap/Rat.lean,Mathlib/Algebra/Module/LocalizedModule/Int.lean,Mathlib/Algebra/Module/Submodule/EqLocus.lean,Mathlib/Algebra/Module/Submodule/Equiv.lean,Mathlib/Algebra/Module/Submodule/Ker.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Module/Submodule/Range.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Prime/Lemmas.lean,Mathlib/Algebra/Ring/Divisibility/Basic.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Operator/LinearIsometry.lean,Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean,Mathlib/Data/Complex/BigOperators.lean,Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean,Mathlib/FieldTheory/SplittingField/Construction.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/LinearAlgebra/Ray.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/Flat/Basic.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/Ideal/Norm.lean,Mathlib/RingTheory/Multiplicity.lean,Mathlib/RingTheory/Polynomial/Opposites.lean,Mathlib/RingTheory/RootsOfUnity/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean,Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/Algebra/MulAction.lean,Mathlib/Topology/Homeomorph.lean,Mathlib/Topology/MetricSpace/Isometry.lean,scripts/no_lints_prime_decls.txt | 55 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 33448 | astrainfinita | refactor: deprecate `ContinuousLinearMapClass` | This PR continues the work from #18748. Original PR: https://github.com/leanprover-community/mathlib4/pull/18748 | t-topology t-algebra awaiting-author | 55/41 | Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Operator/LinearIsometry.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean | 11 | 10 | ['Ruben-VandeVelde', 'astrainfinita', 'github-actions', 'leanprover-radar'] | nobody | 2 months ago | 61 days ago | 4 hours |
| 33462 | eric-wieser | feat: teach `fun_prop` about `ContinousMultilinearMap.compContinuousLinearMap` | For now I've omitted the curried version --- [](https://gitpod.io/from-referrer/) | t-analysis | 46/0 | Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean | 1 | 3 | ['github-actions', 'sgouezel'] | nobody | 2 months ago | unknown | unknown |
| 32725 | joelriou | feat(CategoryTheory): presheaves of types which preserve a limit | Let `F : J ⥤ Cᵒᵖ` be a functor. We show that a presheaf `P : Cᵒᵖ ⥤ Type w` preserves the limit of `F` iff `P` is a local object with respect to a suitable family of morphisms in `Cᵒᵖ ⥤ Type w` (this family contains `1` or `0` morphism depending on whether the limit of `F` exists or not). --- [](https://gitpod.io/from-referrer/) | t-category-theory awaiting-author | 187/0 | Mathlib.lean,Mathlib/CategoryTheory/MorphismProperty/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/IsSmall.lean,Mathlib/CategoryTheory/ObjectProperty/FunctorCategory/Presheaf.lean,Mathlib/CategoryTheory/ObjectProperty/Local.lean | 5 | 6 | ['github-actions', 'joelriou', 'robin-carlier'] | nobody | 2 months ago | 60 days ago | 3 days |
| 32840 | joelriou | chore(CategoryTheory): remove the old Ext API | As it is now possible to compute `Ext`-groups (defined using the derived category) using an injective resolution #32105 or a projective resolution #32816, the old `Ext` API (based on left derived functors) is removed. WIP (more API for the new `Ext` is necessary...) --- - [ ] depends on: #32816 - [ ] depends on: #32105 - [ ] depends on: #32814 [](https://gitpod.io/from-referrer/) | file-removed t-category-theory large-import merge-conflict WIP | 546/116 | Mathlib.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Linear.lean,Mathlib/Algebra/Homology/DerivedCategory/KInjective.lean,Mathlib/Algebra/Homology/DerivedCategory/KProjective.lean,Mathlib/Algebra/Homology/Embedding/IsSupported.lean,Mathlib/Algebra/Homology/LocalCohomology.lean,Mathlib/CategoryTheory/Abelian/Ext.lean,Mathlib/CategoryTheory/Abelian/Injective/Ext.lean,Mathlib/CategoryTheory/Abelian/Injective/Extend.lean,Mathlib/CategoryTheory/Abelian/Projective/Ext.lean,Mathlib/CategoryTheory/Abelian/Projective/Extend.lean,Mathlib/RepresentationTheory/Homological/Resolution.lean | 12 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 33133 | 0xTerencePrime | feat(Algebra/Group/Center): add Decidable (IsMulCentral a) instance | This PR adds a `Decidable` instance for `IsMulCentral a`. ### Summary The structure `IsMulCentral` was missing a `Decidable` instance. This PR provides the instance by leveraging `isMulCentral_iff`, enabling decidability for both multiplicative and additive (via `to_additive`) structures. ### Verification - `lake build Mathlib.Algebra.Group.Center` passed. - `lake exe runLinter Mathlib.Algebra.Group.Center` passed. | t-algebra new-contributor awaiting-author | 7/0 | Mathlib/Algebra/Group/Center.lean | 1 | 3 | ['github-actions', 'robin-carlier'] | ocfnash | 2 months ago | 60 days ago | 12 days |
| 33191 | sinhp | feat(CategoryTheory): Locally cartesian closed structure on presheaf categories | The category of presheaves on a small category `C` is locally cartesian closed. --- - [ ] depends on: #30375 [](https://gitpod.io/from-referrer/) | WIP t-category-theory blocked-by-other-PR merge-conflict | 703/0 | Mathlib.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Basic.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Sections.lean | 5 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 28153 | kckennylau | feat(Simproc): Simproc for explicit diagonal matrices | ```lean example : (diagonal ![37, -1] : Matrix (Fin 2) (Fin 2) ℤ) = !![37, 0; 0, -1] := by simp ``` --- Shares code with #28148. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 114/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/Matrix.lean,scripts/noshake.json | 4 | 6 | ['Vierkantor', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | 147 days ago | 58 days |
| 25500 | eric-wieser | feat: delaborators for metadata | Being able to see these is very important when debugging tactic failures. Probably these could be upstreamed, but I don't think that's a reason not to merge them here first. --- [](https://gitpod.io/from-referrer/) | large-import merge-conflict awaiting-author delegated t-meta | 75/3 | Mathlib/Util/Delaborators.lean,Mathlib/Util/PPOptions.lean,MathlibTest/delaborators.lean | 3 | 19 | ['JovanGerb', 'Rob23oba', 'eric-wieser', 'github-actions', 'kmill', 'mathlib-bors', 'mathlib4-merge-conflict-bot', 'plp127'] | nobody | 2 months ago | 187 days ago | 42 days |
| 28191 | kckennylau | feat(Logic): tag Injective, Surjective, and Bijective with fun_prop | --- Zulip: * [#Is there code for X? > surjective is not funprop!](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/surjective.20is.20not.20funprop!) * [#mathlib4 > `fun_prop` for Injective/Surjective/Bijective?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60fun_prop.60.20for.20Injective.2FSurjective.2FBijective.3F) [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 16/0 | Mathlib/Tactic/FunProp.lean | 1 | 6 | ['Vierkantor', 'github-actions', 'grunweg', 'kckennylau', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | 147 days ago | 57 days |
| 30432 | kckennylau | feat(AlgebraicGeometry): define the non-vanishing locus of a set in Proj | Given a subset `s : Set A`, the non-vanishing locus of `s` is the set of points whose corresponding prime ideal does not fully contain `s`. In other words, where not all elements of `s` vanish. I could not find a name for this in the literature. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebraic-geometry | 66/0 | Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean | 1 | 4 | ['github-actions', 'jcommelin'] | nobody | 2 months ago | 99 days ago | 44 days |
| 27262 | Timeroot | feat(Tactic/Bound): bound? for proof scripts | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 22/7 | Mathlib/Tactic/Bound.lean | 1 | 13 | ['JovanGerb', 'Timeroot', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | 152 days ago | 9 days |
| 32389 | LLaurance | feat(Analysis): Trigonometric identities | `sin` and `cos` of real and complex integer multiples of π/12 --- Resolves https://github.com/leanprover-community/mathlib4/pull/28630#discussion_r2307957255 [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author | 120/0 | Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean | 1 | 11 | ['LLaurance', 'artie2000', 'github-actions', 'j-loreaux'] | nobody | 2 months ago | 75 days ago | 15 days |
| 33502 | MrQubo | fix(Tactic/ProxyType): Pass params explicitly in proxy_equiv% implementation | Fix [#mathlib4 > `deriving Fintype` with Prop](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60deriving.20Fintype.60.20with.20Prop/with/566118621) --- [](https://gitpod.io/from-referrer/) | new-contributor t-meta WIP | 12/2 | Mathlib/Tactic/ProxyType.lean,MathlibTest/DeriveFintype.lean | 2 | 7 | ['MrQubo', 'github-actions', 'kmill'] | kmill | 2 months ago | 59 days ago | 15 hours |
| 22657 | Xmask19 | feat: a graph is maximally acyclic iff it is a tree | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics new-contributor | 86/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 8 | ['Rida-Hamadani', 'SnirBroshi', 'b-mehta', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | b-mehta | 2 months ago | unknown | unknown |
| 26368 | Whysoserioushah | feat(RingTheory/TwoSidedIdeal/SpanAsSum): span of set as finsum | Co-authored-by: Jujian Zhang --- Reopened after everything moved to fork (#23320). [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 81/0 | Mathlib.lean,Mathlib/RingTheory/TwoSidedIdeal/SpanAsSum.lean | 2 | 7 | ['github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | YaelDillies | 1 month ago | 214 days ago | 35 days |
| 28013 | astrainfinita | feat: Lindemann-Weierstrass Theorem | This PR continues the work from #6718. -------- - [x] depends on: #18693 - [x] depends on: #29121 | t-algebra t-analysis awaiting-author merge-conflict | 1106/55 | Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/MapDomain.lean,Mathlib/Algebra/Polynomial/Factors.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Indicator.lean,Mathlib/NumberTheory/Transcendental/Lindemann/AlgebraicPart.lean,Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean,Mathlib/NumberTheory/Transcendental/Lindemann/Basic.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Eval.lean,docs/100.yaml,docs/1000.yaml | 12 | 15 | ['astrainfinita', 'github-actions', 'grunweg', 'j-loreaux', 'jcommelin', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 107 days ago | 3 days |
| 21344 | kbuzzard | chore: attempt to avoid diamond in OreLocalization | --- [](https://gitpod.io/from-referrer/) | please-adopt t-algebra | 16/5 | Mathlib/RingTheory/OreLocalization/Basic.lean | 1 | 6 | ['erdOne', 'github-actions', 'kbuzzard'] | nobody | 1 month ago | unknown | unknown |
| 33112 | alreadydone | feat(GroupAction): `(M →[M] M) ≃* Mᵐᵒᵖ` | This comes up in #33108 in the form that permutations of a group commuting with the left multiplications are the right multiplications. The Semiring versions are already in mathlib. --- [](https://gitpod.io/from-referrer/) | t-algebra t-group-theory awaiting-author | 41/3 | Mathlib/GroupTheory/GroupAction/Hom.lean | 1 | 2 | ['github-actions', 'robin-carlier'] | mattrobball | 1 month ago | 60 days ago | 13 days |
| 31187 | loefflerd | feat(NumberTheory/LSeries): Define the L-series of a modular form | Define the L-function of a modular form (showing it is meromorphic on C and agrees with the naive Dirichlet series for `re s` large). --- - [x] depends on: #30089 | WIP t-number-theory | 242/25 | Mathlib.lean,Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean,Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean,Mathlib/NumberTheory/ModularForms/LFunction.lean | 4 | 7 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30375 | sinhp | feat(CategoryTheory): Basics of Locally Cartesian Closed Categories | Supersedes https://github.com/leanprover-community/mathlib4/pull/22321 This PR defines locally cartesian closed categories in terms of existence of the pushforward functors (right adjoint to the pullback functor) for all morphisms. We develop basic API and prove the following: 1. Existence of the pushforward functors is equivalent to cartesian closed slices. 2. Any locally cartesian closed category with a terminal object is cartesian closed. 3. The slices of a locally cartesian closed category are locally cartesian closed. --- - [ ] depends on: #31033 - [ ] depends on: #30373 - [ ] depends on: #31332 [](https://gitpod.io/from-referrer/) | t-category-theory merge-conflict | 703/0 | Mathlib.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Basic.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Sections.lean | 5 | 9 | ['Jlh18', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sinhp'] | nobody | 1 month ago | unknown | unknown |
| 32991 | artie2000 | chore(Algebra/Algebra): remove `Algebra.cast` coercion | See discussion at https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Algebra.2Ecast/with/564501144 --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 32/125 | Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Field.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/BigOperators/Expect.lean,Mathlib/Analysis/Normed/Algebra/Ultra.lean,Mathlib/FieldTheory/Differential/Liouville.lean,Mathlib/LinearAlgebra/Ray.lean,Mathlib/RingTheory/Localization/FractionRing.lean | 9 | 11 | ['Vierkantor', 'artie2000', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | Vierkantor | 1 month ago | unknown | unknown |
| 27972 | smmercuri | refactor: make `Valuation.Completion` a `def` and refactor more of `AdicValuation.lean` | This PR continues the work from #24590. Original PR: https://github.com/leanprover-community/mathlib4/pull/24590 | WIP t-number-theory t-algebra merge-conflict | 188/87 | Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/NumberTheory/Padics/WithVal.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean | 6 | 8 | ['github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot', 'smmercuri'] | nobody | 1 month ago | 167 days ago | 3 days |
| 17176 | arulandu | feat: integrals and integrability with .re | Lemmas for swapping order of .re and integration/integrability. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-measure-probability please-adopt | 49/0 | Mathlib/MeasureTheory/Function/L1Space.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral.lean,Mathlib/MeasureTheory/Integral/SetIntegral.lean | 4 | 32 | ['EtienneC30', 'arulandu', 'github-actions', 'loefflerd'] | nobody | 1 month ago | unknown | unknown |
| 33586 | CoolRmal | feat: Lower Limit Topology | --- [](https://gitpod.io/from-referrer/) | t-topology | 328/0 | Mathlib.lean,Mathlib/Topology/Order/LowerUpperLimitTopology.lean | 2 | 10 | ['CoolRmal', 'github-actions', 'plp127'] | nobody | 1 month ago | unknown | unknown |
| 33010 | xgenereux | feat: localizations of primes in Dedekind domains are valuation subrings | The goal of this PR is the theorem `valuationSubringAtPrime_eq_valuationSubring` which states that the localization at a nonzero prime in a Dedekind domain is precisely the valuation subring of the valuation associated with that same prime. Given a Dedekind domain `R` in its field of fractions `K`, we define `IsDedekindDomain.valuationSubringAtPrime`, which is the localization of `R` at a nonzero prime, viewed as valuation subring of `K`. We show that `valuationSubringAtPrime K v ≤ (valuation K v).valuationSubring` and use maximality to show that they must be equal. Other small note: - added a variant of `intValuation_exists_uniformizer` in terms of `valuation` (instead of intValuation). Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- - [ ] depends on: #33634 [](https://gitpod.io/from-referrer/) | t-ring-theory large-import awaiting-author WIP blocked-by-other-PR | 96/4 | Mathlib/RingTheory/DedekindDomain/AdicValuation.lean | 1 | 9 | ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'xgenereux'] | nobody | 1 month ago | 74 days ago | 2 days |
| 24129 | urkud | feat: symmetry of Gateaux derivatives | --- [](https://gitpod.io/from-referrer/) | t-analysis | 189/1 | Mathlib/Analysis/Calculus/LineDeriv/Basic.lean,Mathlib/Analysis/Calculus/LineDeriv/Symmetric.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33640 | JovanGerb | feat: tool for finding duplicate declarations | This PR defines a tool for finding duplicate declarations automatically. This can be used to help fix this technical debt. --- [](https://gitpod.io/from-referrer/) | t-meta | 176/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/DuplicateDecls.lean | 3 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 33454 | astrainfinita | feat: lemmas about `IsometryClass` | --- [](https://gitpod.io/from-referrer/) | t-topology t-analysis awaiting-author | 60/37 | Mathlib/Analysis/Normed/Affine/Isometry.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Operator/LinearIsometry.lean,Mathlib/Topology/MetricSpace/DilationEquiv.lean,Mathlib/Topology/MetricSpace/Isometry.lean | 5 | 8 | ['github-actions', 'j-loreaux'] | urkud | 1 month ago | 56 days ago | 4 days |
| 13740 | YaelDillies | feat: more robust ae notation | Make sure that, when `μ : FiniteMeasure Ω`, `f =ᵐ[μ] g` elaborates to `f =ᵐ[↑μ] g` instead of complaining about `OuterMeasureClass (FiniteMeasure Ω) (Set Ω) ℝ≥0∞` not existing. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/ae.20of.20a.20finite.20measure) --- [](https://gitpod.io/from-referrer/) | t-meta t-measure-probability awaiting-author | 67/8 | Mathlib/MeasureTheory/Integral/Bochner/L1.lean,Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/OuterMeasure/AE.lean,Mathlib/MeasureTheory/OuterMeasure/BorelCantelli.lean,Mathlib/Probability/Notation.lean | 6 | 41 | ['YaelDillies', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'thorimur', 'urkud'] | RemyDegenne and thorimur | 1 month ago | unknown | unknown |
| 32165 | yuanyi-350 | feat(Real/Trigonometric): Add `sum_cos_arith_progression` and prepare for Dirichlet kernel | --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author merge-conflict | 68/0 | Mathlib.lean,Mathlib/Analysis/Fourier/DirichletKernel.lean | 2 | 8 | ['BoltonBailey', 'github-actions', 'mathlib4-merge-conflict-bot', 'urkud', 'yuanyi-350'] | fpvandoorn | 1 month ago | 93 days ago | 3 days |
| 33368 | urkud | feat: define `Complex.UnitDisc.shift` | Also review the existing API UPD: I'm going to define a `PSL(2, Real)` action instead. --- [](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 | 1 month ago | 56 days ago | 5 days |
| 33450 | astrainfinita | refactor: deprecate `LinearIsometryClass` | --- - [ ] depends on: #33448 - [ ] depends on: #33454 This PR continues the work from #18755. Original PR: https://github.com/leanprover-community/mathlib4/pull/18755 | t-algebra t-analysis blocked-by-other-PR t-topology merge-conflict | 128/125 | Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean,Mathlib/Analysis/Normed/Affine/Isometry.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Operator/LinearIsometry.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/MetricSpace/DilationEquiv.lean,Mathlib/Topology/MetricSpace/Isometry.lean | 15 | 5 | ['astrainfinita', 'github-actions', 'leanprover-radar', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33702 | JovanGerb | doc(Algebra/Quotient): update `HasQuotient.Quotient` doc-string | `HasQuotient.quotient'` has been deprecated (in #33037), so it should not be mentioned in the doc-string of `HasQuotent.Quotient`. --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 1/6 | Mathlib/Algebra/Quotient.lean | 1 | 4 | ['JovanGerb', 'github-actions', 'grunweg', 'mathlib-bors'] | nobody | 1 month ago | 55 days ago | 15 minutes |
| 33434 | astrainfinita | chore: redefine `Finsupp.indicator` using `Finsupp.onFinset` | --- [](https://gitpod.io/from-referrer/) | t-data | 6/17 | Mathlib/Data/Finsupp/Indicator.lean | 1 | 1 | ['github-actions'] | nobody | 1 month ago | 58 days ago | 4 days |
| 33554 | themathqueen | chore(Analysis/Normed/Module/Normalize): allow for `RCLike` instead of just the reals | Only the last lemma `normalize_smul` needs `ℝ`, which we rename to `normalize_real_smul`. This also makes `𝕜` explicit in half of the results. --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author merge-conflict | 67/60 | Mathlib/Analysis/CStarAlgebra/Unitary/Span.lean,Mathlib/Analysis/Normed/Module/Normalize.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean,Mathlib/Geometry/Euclidean/SignedDist.lean | 5 | 4 | ['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'themathqueen'] | nobody | 1 month ago | 56 days ago | 1 day |
| 33561 | kbuzzard | chore: cont -> continuous_toFun | This field is sometimes called `cont` and sometimes `continuous_toFun`. I noticed that the `continuity` tactic sometimes takes a lot longer to prove `cont` even if `continuous_toFun` is available so I thought I'd change them all to see if this speed up mathlib. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 171/149 | Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Polynomial.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Extend.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/DerivNotation.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Distribution/TemperedDistribution.lean,Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Analysis/Fourier/FourierTransform.lean,Mathlib/Analysis/Fourier/LpSpace.lean,Mathlib/Analysis/InnerProductSpace/LinearPMap.lean,Mathlib/Analysis/LocallyConvex/Barrelled.lean,Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean,Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Affine/Isometry.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Module/Alternating/Basic.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,Mathlib/Analysis/Normed/Operator/Extend.lean,Mathlib/Analysis/RCLike/Extend.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Integral/Bochner/L1.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean,Mathlib/Probability/Distributions/Fernique.lean,Mathlib/Probability/Moments/CovarianceBilinDual.lean,Mathlib/Topology/Algebra/AffineSubspace.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/ContinuousAffineEquiv.lean,Mathlib/Topology/Algebra/ContinuousAffineMap.lean,Mathlib/Topology/Algebra/Module/Alternating/Basic.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean,Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean,Mathlib/Topology/Algebra/Module/Star.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/ContinuousMap/Algebra.lean,Mathlib/Topology/ContinuousMap/Ideals.lean,Mathlib/Topology/Instances/TrivSqZeroExt.lean,Mathlib/Topology/VectorBundle/Basic.lean | 66 | 5 | ['eric-wieser', 'github-actions', 'kbuzzard', 'leanprover-radar', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 55 days ago | 2 days |
| 27507 | grunweg | wip(commandStart): check the indentation of declaration keywords also | Check that e.g. a `lemma` keyword always starts on column 1 (unless preceded by an attribute). --- TODO: - make this work for other declarations also - the position reported for the lemma column is not helpful (it might be the absolute column in the file, but that's missing line information) [](https://gitpod.io/from-referrer/) | WIP t-linter merge-conflict | 84/1 | Mathlib/Tactic/Linter/CommandStart.lean,MathlibTest/CommandStart.lean | 2 | 3 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 26088 | grunweg | chore(Linter/DirectoryDependency): move forbidden directories into a JSON file | This PR continues the work from #25406. Original PR: https://github.com/leanprover-community/mathlib4/pull/25406 | please-adopt t-linter merge-conflict | 387/19 | Mathlib/Tactic/Linter/DirectoryDependency.lean,scripts/README.md,scripts/forbiddenDirs.json | 3 | 5 | ['Vierkantor', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33330 | michael-novak-math | feat: add arc-length reparametrization of parametrized curves | add new definitions of arc-length reparametrization and its corresponding parameter transformation and a theorem establishing the desired properties. | t-analysis new-contributor merge-conflict | 311/0 | Mathlib.lean,Mathlib/Analysis/Calculus/ArcLengthReparametrization.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,docs/references.bib,lake-manifest.json | 5 | 53 | ['SnirBroshi', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'michael-novak-math'] | j-loreaux | 1 month ago | 55 days ago | 6 days |
| 24010 | grunweg | feat(Counterexamples): a non-negative function, not a.e. zero, with vanishing lowe… | …r Lebesgue integral. Came up in #23707, let's document this while we're at it. --- - [ ] depends on: #20722 [](https://gitpod.io/from-referrer/) | merge-conflict please-adopt WIP blocked-by-other-PR t-measure-probability | 110/0 | Counterexamples.lean,Counterexamples/LIntegralZero.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33756 | dleijnse | feat(FieldTheory): root of polynomial with p power coefficients | This PR proves the results in https://stacks.math.columbia.edu/tag/031V, which gives a criterion for a root of a polynomial over a field `k` of characteristic `p` to be a `p`-th power. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 88/0 | Mathlib.lean,Mathlib/FieldTheory/PthPowerCoeffPoly.lean | 2 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 28700 | Timeroot | feat(ModelTheory): Set.Definable is transitive | --- This PR continues the work from #19695. Original PR: https://github.com/leanprover-community/mathlib4/pull/19695 - [ ] depends on: #26332 [](https://gitpod.io/from-referrer/) | merge-conflict large-import t-logic | 529/8 | Mathlib/Data/Rel.lean,Mathlib/ModelTheory/Definability.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean,scripts/noshake.json | 5 | 8 | ['Timeroot', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'staroperator'] | nobody | 1 month ago | 192 days ago | 3 days |
| 30608 | grunweg | feat: another lemma about derivatives of parametric integrals | On the path towards proving that integrating smooth functions is smooth. From the sphere-eversion project; I am just upstreaming this. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 125/0 | Mathlib/Analysis/Calculus/ParametricIntegral.lean | 1 | 8 | ['Ruben-VandeVelde', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] | j-loreaux | 1 month ago | unknown | unknown |
| 30610 | grunweg | feat: yet another lemma about differentiability of parametric integrals | From sphere-eversion. --- TODO: explicitly make Floris a co-author again - [ ] depends on: #30608 - [ ] depends on: #30612 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-analysis | 193/0 | Mathlib/Analysis/Calculus/ParametricIntegral.lean | 1 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33299 | kingiler | feat: Add decidable membership for Interval | Implemented membership and corresponding decidable instance for `Interval`. Related [#mathlib4 > Proposal: Add decidable membership for Interval](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Proposal.3A.20Add.20decidable.20membership.20for.20Interval/with/565438009). --- [](https://gitpod.io/from-referrer/) | awaiting-author new-contributor t-order | 16/1 | Mathlib/Order/Interval/Basic.lean | 1 | 5 | ['Vierkantor', 'eric-wieser', 'github-actions', 'kingiler'] | Vierkantor | 1 month ago | 54 days ago | 13 days |
| 32190 | vihdzp | chore(Algebra/Order/Ring/Archimedean): generalize theorems to `OrderHomClass` + `RingHomClass` | --- [](https://gitpod.io/from-referrer/) | t-algebra | 15/12 | Mathlib/Algebra/Order/Hom/Ring.lean,Mathlib/Algebra/Order/Ring/Archimedean.lean | 2 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | alreadydone | 1 month ago | 81 days ago | 14 days |
| 30142 | shalliso | feat(Topology/Baire): define IsNonMeagre | non-meagre sets (also known as "of the second category") are worthy of their own definition and API. This was useful to me for formalizing a result of "automatic continuity", that is, a Baire-measurable homomorphism between Polish groups must be continuous. Simply working with the negation of IsMeagre quickly became cumbersome, and non-meagre sets have an important role in the study of Polish (e.g. locally compact) groups. From https://github.com/shalliso/automatic_continuity [ ] depends on: #30141 --- [](https://gitpod.io/from-referrer/) | t-topology new-contributor merge-conflict | 83/1 | Mathlib/Topology/Baire/NonMeagre.lean,Mathlib/Topology/GDelta/Basic.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 152 days ago | 4 seconds |
| 30953 | kim-em | experiment: add `canonical` to Mathlib | Depends on (these must be merged first before CI will succeed here) - [x] #30952 - [x] #30844 | merge-conflict | 63/3 | Mathlib/Tactic/Common.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,MathlibTest/canonical.lean,lake-manifest.json,lakefile.lean | 5 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32210 | ADedecker | feat: iteratedFDeriv as a linear map on test functions | Add `TestFunction.iteratedFDeriv[WithOrder]LM`, analogous to [ContDiffMapSupportedIn.iteratedFDerivWithOrderLM](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.html#ContDiffMapSupportedIn.iteratedFDerivWithOrderLM) and [ContDiffMapSupportedIn.iteratedFDerivLM](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.html#ContDiffMapSupportedIn.iteratedFDerivLM) --- Co-authored-by: @luigi-massacci [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis awaiting-author | 106/2 | Mathlib/Analysis/Distribution/TestFunction.lean | 1 | 6 | ['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] | grunweg, j-loreaux, sgouezel, urkud | 1 month ago | 77 days ago | 9 days |
| 32401 | ADedecker | feat: monotonicity of D^n(U) in n and in U as CLMs | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis delegated | 170/3 | Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean | 2 | 19 | ['ADedecker', 'faenuccio', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 62 days ago | 16 days |
| 32410 | callesonne | feat(Bicategory/FunctorCategory/Pseudo): Add evaluation pseudofunctor | Adding pseudofunctors `eval` and `evaluation`. WIP PR to access CI. --- - [x] depends on: #30926 - [x] depends on: #32468 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory blocked-by-other-PR | 49/10 | Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean,Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Pseudo.lean,Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean,Mathlib/CategoryTheory/Products/Basic.lean | 5 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32470 | ADedecker | feat: the space of test functions is barrelled | --- [](https://gitpod.io/from-referrer/) | t-analysis merge-conflict | 22/0 | Mathlib/Analysis/Distribution/TestFunction.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33102 | adomani | perf: add a syntactic check for flexible linter | This is very preliminary. --- [](https://gitpod.io/from-referrer/) | t-linter merge-conflict | 205/2 | Mathlib/Tactic/Linter/FlexibleLinter.lean,MathlibTest/FlexibleLinter.lean | 2 | 10 | ['adomani', 'github-actions', 'leanprover-radar', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30562 | dwrensha | fix(Data/Fintype/Perm): make the main logic of Equiv.instFintype irreducible | Adds a new `irreducible_def` for the main branch of `Equiv.instFintype` to avoid errors about deep recursion. This is an update of #15045 and #30560 according to the discussion in those PRs and in [this zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/kernel.20deep.20recursion.20detected/near/454301820). --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data | 44/10 | Mathlib/Combinatorics/Derangements/Finite.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/Data/Matrix/Cartan.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,MathlibTest/MatrixDetOne.lean | 5 | 18 | ['dwrensha', 'github-actions', 'leanprover-bot', 'plp127', 'robin-carlier'] | robin-carlier | 1 month ago | 127 days ago | 12 days |
| 33669 | eric-wieser | chore(Data/Nat/Digits): refactor to use List.rightpad | --- [](https://gitpod.io/from-referrer/) | large-import merge-conflict | 32/12 | Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Data/List/Lemmas.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Nat/Digits/Lemmas.lean | 5 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot', 'xroblot'] | nobody | 1 month ago | unknown | unknown |
| 25905 | mans0954 | feat(RingTheory/Polynomial/SmallDegreeVieta): polynomial versions of results in Algebra.QuadraticDiscriminant | This PR continues the work from #25605. Original PR: https://github.com/leanprover-community/mathlib4/pull/25605 | merge-conflict t-ring-theory please-adopt | 77/8 | Mathlib/Algebra/Polynomial/Coeff.lean,Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean | 2 | 47 | ['chrisflav', 'github-actions', 'kckennylau', 'mans0954', 'mathlib4-merge-conflict-bot', 'ocfnash'] | chrisflav | 1 month ago | 178 days ago | 81 days |
| 25907 | mans0954 | feat: low order roots of unity | This PR continues the work from #25470. Original PR: https://github.com/leanprover-community/mathlib4/pull/25470 | t-algebra please-adopt | 182/0 | Mathlib/Algebra/CharP/Invertible.lean,Mathlib/RingTheory/RootsOfUnity/Complex.lean | 2 | 3 | ['github-actions', 'mans0954', 'urkud'] | jcommelin | 1 month ago | 104 days ago | 115 days |
| 26339 | mans0954 | feat(Analysis/Normed/Module/WeakDual): Banach Dieudonné Lemma | This PR continues the work from #16316. Original PR: https://github.com/leanprover-community/mathlib4/pull/16316 | merge-conflict WIP t-analysis large-import please-adopt | 377/3 | Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Topology/UniformSpace/Cauchy.lean | 4 | 5 | ['github-actions', 'mans0954', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 26340 | mans0954 | feat(Algebra/Module/NestAlgebra): Nest algebras | This PR continues the work from #18705. Original PR: https://github.com/leanprover-community/mathlib4/pull/18705 | merge-conflict t-algebra please-adopt | 184/0 | Mathlib.lean,Mathlib/Algebra/Module/NestAlgebra.lean,Mathlib/Order/Nest.lean,Mathlib/Order/Preorder/Chain.lean,docs/references.bib | 5 | 3 | ['github-actions', 'mans0954', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 26342 | mans0954 | WiP: Expansion of the tensor product of quadratic maps over a linear combination | This PR continues the work from #19806. Original PR: https://github.com/leanprover-community/mathlib4/pull/19806 | WIP t-algebra please-adopt | 483/0 | Mathlib/Data/Sym/Sym2/Prod.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/QuadraticForm/Basis.lean,Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean | 4 | 2 | ['github-actions', 'mans0954'] | nobody | 1 month ago | unknown | unknown |
| 26341 | mans0954 | feat(LinearAlgebra/QuadraticForm/Basis): Free Tensor product of Quadratic Maps | This PR continues the work from #19432. Original PR: https://github.com/leanprover-community/mathlib4/pull/19432 | merge-conflict WIP t-algebra large-import please-adopt | 888/0 | Mathlib.lean,Mathlib/Data/Sym/Sym2/Prod.lean,Mathlib/LinearAlgebra/QuadraticForm/Basis.lean | 3 | 3 | ['github-actions', 'mans0954', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 26343 | mans0954 | feat(Analysis/Normed/Module/Complemented): The idempotent associated with a complemented subspace | Given a complemented subspace `p` of a Banach space `E`, with complement `q`, there exists an idempotent `P` in the ring `E →L[𝕜] E` such that `P` has range `p` and kernel `q`. Similarly `1-P` has range `q` and kernel `p`. See Rudin, Functional Analysis, Theorem 5.16. --- This PR continues the work from #20330. Original PR: https://github.com/leanprover-community/mathlib4/pull/20330 [](https://gitpod.io/from-referrer/) | WIP awaiting-CI large-import merge-conflict t-analysis please-adopt | 185/3 | Mathlib/Algebra/Module/End.lean,Mathlib/Algebra/Module/Hom.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Analysis/Normed/Module/Complemented.lean,Mathlib/RingTheory/Idempotents.lean | 5 | 3 | ['github-actions', 'mans0954', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33808 | seewoo5 | feat(Manifold/MFDeriv): add fun_prop to `MDifferentiable` | --- Add FunProp to `MDifferentiable`. For example, the following works (when `F'` is normed `𝕜`-algebra) ```lean example (hp : MDifferentiable I 𝓘(𝕜, F') p) (hq : MDifferentiable I 𝓘(𝕜, F') q) : MDifferentiable I 𝓘(𝕜, F') ((p * q + p - q) * q * p) := by fun_prop ``` Motivated from [sphere packing project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean). [](https://gitpod.io/from-referrer/) | awaiting-author t-differential-geometry | 15/0 | Mathlib/Geometry/Manifold/MFDeriv/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/Defs.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean | 3 | 8 | ['github-actions', 'grunweg', 'seewoo5'] | nobody | 1 month ago | 52 days ago | 11 hours |
| 26344 | mans0954 | feat(Analysis/NormedSpace/MStructure): The component projections on WithLp 1 (α × β) are L-projections | This PR continues the work from #20380. Original PR: https://github.com/leanprover-community/mathlib4/pull/20380 | merge-conflict WIP t-analysis file-removed please-adopt | 20/1 | Mathlib.lean,Mathlib/Analysis/Normed/Lp/MStructure.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean | 3 | 3 | ['github-actions', 'mans0954', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 26346 | mans0954 | feat(LinearAlgebra/QuadraticForm/TensorProduct): Extend `baseChange_ext` to work over a free module | This PR continues the work from #21814. Original PR: https://github.com/leanprover-community/mathlib4/pull/21814 | merge-conflict WIP t-algebra please-adopt | 105/5 | Mathlib/LinearAlgebra/Basis/Bilinear.lean,Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean | 2 | 3 | ['github-actions', 'mans0954', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 26347 | mans0954 | feat(Data/Finset/RangeDistance): abs_sub_lt_of_mem_finset_range | This PR continues the work from #23161. Original PR: https://github.com/leanprover-community/mathlib4/pull/23161 | merge-conflict t-data please-adopt | 30/0 | Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean | 3 | 3 | ['github-actions', 'mans0954', 'mathlib4-merge-conflict-bot'] | alreadydone | 1 month ago | 104 days ago | 142 days |
| 26349 | mans0954 | feat(Analysis/SpecialFunctions/Trigonometric/Basic): sin and cos of multiples of π / 3 | This PR continues the work from #25009. Original PR: https://github.com/leanprover-community/mathlib4/pull/25009 | help-wanted t-analysis please-adopt | 159/0 | Mathlib/Algebra/Order/Monoid/NatCast.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Data/Nat/Cast/Defs.lean,MathlibTest/trigonometry.lean | 4 | 3 | ['github-actions', 'mans0954', 'themathqueen'] | nobody | 1 month ago | unknown | unknown |
| 26348 | mans0954 | feat(Analysis/LocallyConvex/Prime): the prime map | This PR continues the work from #24385. Original PR: https://github.com/leanprover-community/mathlib4/pull/24385 | merge-conflict WIP t-analysis please-adopt | 125/0 | Mathlib.lean,Mathlib/Analysis/LocallyConvex/Prime.lean | 2 | 3 | ['github-actions', 'mans0954', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 26983 | mans0954 | feat(Order/LatticeElements): distributive, standard and neutral elements of a lattice | Defines distributive, standard and neutral elements of a lattice and gives equivalent conditions. --- - [x] depends on: #26836 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order please-adopt | 238/0 | Mathlib.lean,Mathlib/Order/Hom/Lattice.lean,Mathlib/Order/LatticeElements.lean | 3 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 149 days ago | 5 hours |
| 29980 | mans0954 | refactor(RingTheory/Polynomial/Resultant/Quadratic): Re-implement QuadraticDiscriminant for R[X] | Re-implement `Algebra/QuadraticDiscriminant` for polynomials. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/discriminants.20of.20low.20degree.20polynomials/with/538010519) --- - [ ] depends on: #29981 [](https://gitpod.io/from-referrer/) | merge-conflict please-adopt | 208/0 | Mathlib.lean,Mathlib/RingTheory/Polynomial/Resultant/Quadratic.lean | 2 | 4 | ['JovanGerb', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | JovanGerb | 1 month ago | 104 days ago | 41 days |
| 29387 | mans0954 | feat(Analysis/LocallyConvex/WeakSpace): toWeakSpace_closedAbsConvexHull_eq | The closed absolutely convex hull taken in the weak topology coincides with the closed absolutely convex hull taken in the original topology. --- - [ ] depends on: #29378 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-analysis please-adopt | 133/68 | Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/AbsConvexOpen.lean,Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean,Mathlib/Analysis/LocallyConvex/Basic.lean,Mathlib/Analysis/Normed/Module/Dual.lean | 6 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 178 days ago | 5 seconds |
| 30393 | mans0954 | WIP: Bipolar theorem absconvex refactor | Experiment to see what happens when #26345 and #29342 are merged. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP large-import please-adopt | 383/138 | Mathlib.lean,Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/AbsConvexOpen.lean,Mathlib/Analysis/LocallyConvex/Basic.lean,Mathlib/Analysis/LocallyConvex/Bipolar.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/LocallyConvex/WeakDual.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Topology/Algebra/Module/LinearSpan.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Module/WeakBilin.lean | 12 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 29378 | mans0954 | feat(Analysis/LocallyConvex/AbsConvex): Balanced and AbsConvex sets under linear maps | Provide `Balanced` and `AbsConvex` versions of `Convex.linear_image`, `Convex.linear_preimage` and the `is_linear` equivalents. --- - [ ] depends on: #29342 [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis please-adopt | 133/68 | Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/AbsConvexOpen.lean,Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean,Mathlib/Analysis/LocallyConvex/Basic.lean,Mathlib/Analysis/Normed/Module/Dual.lean | 6 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 140 days ago | 3 hours |
| 29856 | mans0954 | feat(Analysis/Normed/Ring/Basic): Add NonUnitalNonAssocSeminormedRing and NonUnitalNonAssocNormedRing | Adds the classes `NonUnitalNonAssocSeminormedRing` and `NonUnitalNonAssocNormedRing` and relaxes the `NonUnitalSeminormedRing` section to `NonUnitalNonAssocSeminormedRing`. Examples of non-unital non-associative normed rings include non-untial JB-algebras and non-unital JB*-algebras. --- [](https://gitpod.io/from-referrer/) | t-analysis please-adopt | 110/11 | Mathlib/Analysis/Normed/Ring/Basic.lean,MathlibTest/TCSynth.lean | 2 | 15 | ['github-actions', 'j-loreaux', 'leanprover-bot'] | ADedecker | 1 month ago | 105 days ago | 57 days |
| 26337 | mans0954 | feat(Analysis/NormedSpace/MStructure): M-ideals | This PR continues the work from #14369. Original PR: https://github.com/leanprover-community/mathlib4/pull/14369 | merge-conflict WIP t-analysis large-import please-adopt | 857/40 | Mathlib/Algebra/Module/End.lean,Mathlib/Algebra/Module/Hom.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Analysis/Normed/Module/Complemented.lean,Mathlib/Analysis/NormedSpace/MStructure.lean | 5 | 4 | ['github-actions', 'mans0954', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 13158 | erdOne | refactor(RingTheory/OreLocalization/Module): remove `LocalizedModule.mk`. | --- - [x] depends on: #13151 - [ ] depends on: #13156 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR | 49/48 | Mathlib/RingTheory/OreLocalization/Basic.lean,Mathlib/RingTheory/OreLocalization/Module.lean | 2 | 2 | ['leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| 12934 | grunweg | chore: replace more uses of > or ≥ by < or ≤ | These were flagged by the linter in https://github.com/leanprover-community/mathlib4/pull/12879: it is easy to simple avoid > or ≥ in hypotheses or haves. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author help-wanted | 41/42 | Archive/Imo/Imo1962Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2019Q4.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib/Tactic/Linarith/Datatypes.lean,test/cancel_denoms.lean,test/congr.lean,test/interval_cases.lean,test/observe.lean | 15 | 12 | ['YaelDillies', 'adomani', 'github-actions', 'grunweg', 'jcommelin', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| 28070 | grunweg | style: improve indentation of multi-linear enumerations in doc-strings | Per zulip discussion: [#mathlib4 > Style :bicycle: : indenting second lines in doc-strings @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/near/533105734). --- [](https://gitpod.io/from-referrer/) | merge-conflict | 111/108 | Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/BrauerGroup/Defs.lean,Mathlib/Algebra/Module/LinearMap/Polynomial.lean,Mathlib/CategoryTheory/Abelian/NonPreadditive.lean,Mathlib/CategoryTheory/EqToHom.lean,Mathlib/CategoryTheory/Filtered/Basic.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Pi.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/CategoryTheory/Sites/Grothendieck.lean,Mathlib/CategoryTheory/Sites/Pretopology.lean,Mathlib/Condensed/Discrete/Characterization.lean,Mathlib/FieldTheory/ChevalleyWarning.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,docs/Conv/Guide.lean | 16 | 8 | ['github-actions', 'grunweg', 'kbuzzard', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| 29077 | grunweg | feat(Manifold/Instances/Icc): golf smoothness proof using immersions | Prove that the inclusion of an interval into the real numbers is a smooth immersion, and use this to golf the proof that this inclusion is smooth. TODO: right now, the computation doesn't check out; I need to tweak the charts I have. But that is surely doable. A future PR will prove it is a smooth embedding. --- - [ ] depends on: #28865 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-differential-geometry | 1122/56 | Mathlib.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/ContMDiff/Defs.lean,Mathlib/Geometry/Manifold/Instances/Icc.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Topology/PartialHomeomorph.lean,docs/references.bib,temp_.sh | 13 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32880 | 0xTerencePrime | feat(Analysis/Asymptotics): define subpolynomial growth | ## Main definitions * `Asymptotics.IsSubpolynomial l f g`: A function `f` has subpolynomial growth with respect to `g` along filter `l` if `f = O(1 + ‖g‖^k)` for some natural `k`. ## Main results * `IsSubpolynomial.const`: Constant functions have subpolynomial growth * `IsSubpolynomial.id`: Identity has subpolynomial growth * `IsSubpolynomial.add`: Closure under addition * `IsSubpolynomial.neg`: Closure under negation * `IsSubpolynomial.sub`: Closure under subtraction * `IsSubpolynomial.mul`: Closure under multiplication * `IsSubpolynomial.pow`: Closure under powers * `isSubpolynomial_iff_one_add`: Equivalence with `(1 + ‖g‖)^k` formulation * `IsSubpolynomial.uniform`: Uniform bounds for finite families ## Implementation notes The definition uses `1 + ‖g‖^k` rather than `(1 + ‖g‖)^k` as the primary form, with the equivalence established in `isSubpolynomial_iff_one_add`. Four private auxiliary lemmas handle the key inequalities needed for closure proofs. Closes #32658 | awaiting-author t-analysis new-contributor | 185/0 | Mathlib.lean,Mathlib/Analysis/Asymptotics/Subpolynomial.lean | 2 | 28 | ['0xTerencePrime', 'ADedecker', 'github-actions', 'j-loreaux'] | ADedecker | 1 month ago | 51 days ago | 22 days |
| 33435 | astrainfinita | feat: algebra automorphisms of monoid algebras | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 53/3 | Mathlib/Algebra/MonoidAlgebra/Basic.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | kbuzzard | 1 month ago | 49 days ago | 13 days |
| 33814 | seewoo5 | feat(Manifold/MFDeriv): add `MDifferentiable.pow` with FunProp | --- - [ ] depends on: #33808 Tag `MDifferentiable.pow` with `fun_prop`. [](https://gitpod.io/from-referrer/) | t-differential-geometry blocked-by-other-PR merge-conflict | 22/0 | Mathlib/Geometry/Manifold/MFDeriv/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/Defs.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 52 days ago | 2 hours |
| 33948 | anivegesana | feat(Analysis/Normed/Algebra): matrix exponential of nilpotent matrix | Where the matrix exponential and nilpotent elements are defined, both the matrix exponential and the nilpotent element exponential. I had to add a different theorem for normed space exponential and the matrix exponential since the right instances wouldn't be synthesized. Help with golfing would be appreciated. --- [](https://gitpod.io/from-referrer/) | new-contributor t-analysis | 34/0 | Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean | 2 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 33270 | vihdzp | chore(Order/Disjoint): use `to_dual` | --- - [x] depends on: #33268 I'm unsure about the dualized names for some of the new theorems, suggestions welcome. [](https://gitpod.io/from-referrer/) | t-order awaiting-author | 30/87 | Mathlib/Order/Disjoint.lean | 1 | 4 | ['JovanGerb', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 68 days ago | 4 seconds |
| 26291 | RemyDegenne | feat(Probability): Cameron-Martin theorem | - Definition of the Cameron-Martin space of a Gaussian measure - The Cameron-Martin theorem: shifting a Gaussian measure by an element of the Cameron-Martin space gives an equivalent measure, and shifting by an element which is not in the Cameron-Martin space gives a mutually singular measure. --- - [x] depends on: #24975 - [x] depends on: #24969 - [x] depends on: #24930 - [x] depends on: #24925 - [x] depends on: #24900 - [x] depends on: #25532 - [x] depends on: #27022 - [x] depends on: #27027 - [x] depends on: #27029 - [x] depends on: #27123 - [x] depends on: #27610 - [x] depends on: #28342 - [x] depends on: #28343 - [x] depends on: #30167 - [x] depends on: #30346 - [x] depends on: #30348 - [ ] depends on: #30582 - [x] depends on: #31551 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24430.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24430* | WIP blocked-by-other-PR t-measure-probability merge-conflict | 1340/5 | Mathlib.lean,Mathlib/Probability/Distributions/Gaussian/CameronMartin.lean,Mathlib/Probability/Distributions/Gaussian/CameronMartinThm.lean,Mathlib/Probability/Distributions/Gaussian/CompletionResultsToBeMoved.lean,Mathlib/Probability/Distributions/Gaussian/Real.lean,Mathlib/Probability/Moments/CovarianceBilinDual.lean,Mathlib/Probability/Moments/Variance.lean,Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean,Mathlib/Topology/UniformSpace/AbstractCompletion.lean,docs/1000.yaml | 11 | 13 | ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30030 | JonBannon | feat(MeasureTheory): add `MemLp.Const` class and instances to unify `p = ∞` and `μ.IsFiniteMeasure` cases | Although it is possible to ensure that, for example, the `One` instances for `p=∞` and `μ.IsFiniteMeasure` are defeq, introducing an `MemLp.Const` typeclass removes the need to unfold extensively to check this definitional equality, improving performance. cf. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Lp.20constant.20function.20issue/with/537563137 This PR introduces the requisite class and associated instances. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-measure-probability merge-conflict | 224/136 | Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean,Mathlib/MeasureTheory/Function/ContinuousMapDense.lean,Mathlib/MeasureTheory/Function/L1Space/Integrable.lean,Mathlib/MeasureTheory/Function/LocallyIntegrable.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/ContinuousCompMeasurePreserving.lean,Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean,Mathlib/MeasureTheory/Integral/SetToL1.lean,Mathlib/MeasureTheory/Measure/SeparableMeasure.lean | 13 | 25 | ['JonBannon', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] | urkud | 1 month ago | 137 days ago | 12 days |
| 33807 | adamtopaz | feat: TypeCat refactor | --- [](https://gitpod.io/from-referrer/) | WIP t-category-theory merge-conflict | 114/0 | ConstGraph/Main.lean,Mathlib/CategoryTheory/Types/Basic.lean,lakefile.lean | 3 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 29610 | llllvvuu | feat(LinearAlgebra): define LinearMap.Eigenbasis | Some theorems are left TODO for follow-up work.
The definition is from @eric-wieser ([#Is there code for X? > diagonalizable linear maps @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/diagonalizable.20linear.20maps/near/539163222)).
Co-authored-by: Aristotle Harmonic |
merge-conflict t-algebra awaiting-author | 455/5 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/LinearAlgebra/Eigenbasis.lean,Mathlib/LinearAlgebra/FreeModule/PID.lean,Mathlib/Order/CompleteLattice/Basic.lean | 5 | 31 | ['github-actions', 'joelriou', 'kckennylau', 'llllvvuu', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | joelriou | 1 month ago | 104 days ago | 20 days |
| 31610 | rudynicolop | feat(Computability/NFA): Kleene star closure for Regular Languages via NFA | This PR constructs a Kleene star closure for non-epsilon NFAs, and proves that regular languages are closed under Kleene star. The NFA construction is `NFA.kstar`. The main theorems are: - `NFA.accepts_kstar`: demonstrates that `M.kstar` accepts the Kleene star closure of the language of `M`. - `IsRegular.kstar`: demonstrates that regular languages are closed under Kleene star. There is an onging zulip discussion about regular languages in Mathlib: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/with/553759136 This discussion is also tracked at #24205. Furthermore, the construction and proofs in this PR are heavily inspired by @TpmKranz from his #15651. #15651 supersedes this PR, so if it is accepted then this PR is not needed. --- - [x] depends on: #31038 [](https://gitpod.io/from-referrer/) | t-computability new-contributor awaiting-author awaiting-CI | 405/7 | Mathlib/Computability/NFA.lean | 1 | 16 | ['YaelDillies', 'ctchou', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | YaelDillies | 1 month ago | 48 days ago | 43 days |
| 27493 | 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)` (the proof of this is ugly). --- - [x] depends on: #27567 - [x] depends on: #27569 - [ ] depends on: #32245 [](https://gitpod.io/from-referrer/) | t-ring-theory awaiting-author blocked-by-other-PR | 163/0 | Mathlib.lean,Mathlib/RingTheory/Coalgebra/Frobenius.lean | 2 | 19 | ['YaelDillies', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'themathqueen'] | alreadydone | 1 month ago | 94 days ago | 28 days |
| 33992 | tb65536 | feat(NumberTheory/NumberField/ExistsRamified): Galois group is generated by inertia subgroups | This PR proves that `Gal(K/ℚ)` is generated by its inertia subgroups (because otherwise the fixed field would be an unramified extension of `ℚ`). --- - [ ] depends on: #30666 [](https://gitpod.io/from-referrer/) | t-number-theory t-algebra blocked-by-other-PR | 101/0 | Mathlib/NumberTheory/NumberField/ExistsRamified.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 month ago | unknown | unknown |
| 33542 | yuanyi-350 | feat(integral): Error Estimation for the Rectangle Rule in Numerical Integration | --- [](https://gitpod.io/from-referrer/) | awaiting-author merge-conflict t-analysis | 322/20 | Mathlib.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/Calculus/Midpoint.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/TrapezoidalRule.lean | 5 | 4 | ['github-actions', 'tb65536'] | ADedecker | 1 month ago | 49 days ago | 4 days |
| 30582 | RemyDegenne | feat: extension of a function to the closure of a submodule | - define the closure of a set in a complete space as an `AbstractCompletion` - add instances about submodules - add a coercion from a submodule to its topological closure - add induction lemmas on topological closures of submodules - define the extension of a function on a submodule to the closure of a submodule --- [](https://gitpod.io/from-referrer/) | t-topology WIP merge-conflict | 138/1 | Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/UniformSpace/AbstractCompletion.lean | 2 | 8 | ['ADedecker', 'RemyDegenne', 'github-actions', 'mathlib4-merge-conflict-bot', 'mcdoll'] | PatrickMassot and mcdoll | 1 month ago | 90 days ago | 35 days |
| 32436 | thorimur | feat: `unusedFactInType` linter | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter | 55/3 | Mathlib/Init.lean,Mathlib/Tactic/Linter/UnusedInstancesInType.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33535 | erdOne | feat(Algebra/Category): `Under.pushout` preserves finite limits for flat homomorphisms | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 157/5 | Mathlib.lean,Mathlib/Algebra/Category/AlgCat/Basic.lean,Mathlib/Algebra/Category/AlgCat/Limits.lean,Mathlib/Algebra/Category/CommAlgCat/BaseChange.lean,Mathlib/Algebra/Category/CommAlgCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Limits.lean,Mathlib/Algebra/Category/Ring/Flat.lean | 8 | 4 | ['chrisflav', 'erdOne', 'github-actions', 'robin-carlier'] | eric-wieser | 1 month ago | 47 days ago | 11 days |
| 28631 | faenuccio | feat(Data\Nat\ModEq.lean): add grind attribute to ModEq | --- [](https://gitpod.io/from-referrer/) | WIP t-data merge-conflict | 7/0 | Mathlib/Data/Nat/ModEq.lean | 1 | 5 | ['faenuccio', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30391 | rudynicolop | feat(Data/List): list splitting definitions and lemmas | This PR continues the work from #24395. Original PR: https://github.com/leanprover-community/mathlib4/pull/24395 | t-data new-contributor awaiting-author | 108/2 | Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/List/TakeDrop.lean | 2 | 50 | ['BoltonBailey', 'IlPreteRosso', 'TwoFX', 'Vierkantor', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'rudynicolop'] | TwoFX | 1 month ago | 46 days ago | 91 days |
| 27704 | vihdzp | feat: link `Minimal` and `IsLeast` together | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-order merge-conflict | 24/0 | Mathlib/Order/Bounds/Basic.lean | 1 | 4 | ['b-mehta', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33126 | CoolRmal | feat: function composition preserves boundedness | This PR adds the following theorem: if the range of a function `g` is bounded above, then `g ∘ f` is bounded above for all functions `f`. --- [](https://gitpod.io/from-referrer/) | t-order merge-conflict | 12/0 | Mathlib/Order/Bounds/Basic.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | bryangingechen | 1 month ago | 46 days ago | 27 days |
| 20719 | gio256 | feat(AlgebraicTopology): delaborators for truncated simplicial notations | We add delaborators for the following notations, introduced in #20688: - `⦋m⦌ₙ`, which denotes the `m`-dimensional simplex in the `n`-truncated simplex category. - `X _⦋m⦌ₙ`, which denotes the `m`-th term of an `n`-truncated simplicial object `X`. - `X ^⦋m⦌ₙ`, which denotes the `m`-th term of an `n`-truncated cosimplicial object `X`. If `pp.proofs` is set to `true`, we also pretty-print the proof `p : m ≤ n` for all three notations as `⦋m, p⦌ₙ`, `X _⦋m, p⦌ₙ`, and `X ^⦋m, p⦌ₙ`, respectively. Credit to @kmill for one piece of code and much metaprogramming inspiration. --- - [x] depends on: #20688 - [x] depends on: #23018 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-topology infinity-cosmos t-meta | 525/33 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SimplexCategory.lean,Mathlib/Util/Superscript.lean,MathlibTest/SimplexCategory.lean,MathlibTest/SimplicialObject.lean,MathlibTest/superscript.lean,scripts/noshake.json | 11 | 23 | ['eric-wieser', 'gio256', 'github-actions', 'joneugster', 'kim-em', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | joneugster | 1 month ago | unknown | unknown |
| 31348 | PatrickMassot | chore: fix a docstring typo | --- [](https://gitpod.io/from-referrer/) | documentation awaiting-author t-analysis | 1/1 | Mathlib/Analysis/Calculus/Darboux.lean | 1 | 3 | ['ADedecker', 'dopamine333', 'github-actions'] | nobody | 1 month ago | 116 days ago | 5 hours |
| 10991 | thorimur | feat: `tfae` block tactic | This PR introduces `tfae` block tactic syntax: ```lean tfae 1 → 2 := /- proof of `P₁ → P₂` -/ 2 → 3 := /- proof of `P₂ → P₃` -/ 3 → 1 := /- proof of `P₃ → P₁` -/ ``` Like the recent change to `tfae_have`, this syntax also supports all sorts of matching that `have` itself supports: ```lean tfae 2 → 3 | h₂ => /- proof of `P₃` -/ 3 → 1 -- given `P₁ := ∀(a : A), (b : B), (c : C), X`: | h₃, a, b, c => /- proof of `X` -/ ⟨h_mp, h_mpr⟩ : 1 ↔ 2 := /- proof of `P₁ ↔ P₂`; puts `h_mp : P₁ → P₂`, `h_mpr : P₂ → P₁` in the lctx -/ ``` This initial implementation is currently very simple, and relies on `tfae_have` and `tfae_finish`. Although we intend to migrate away from that syntax, this PR does not remove support for it or deprecate `tfae_have`/`tfae_finish` in any way; migration (but not deprecation) is done in #11003. --- - [x] depends on: #10653 - [x] depends on: #10994 [](https://gitpod.io/from-referrer/) | merge-conflict WIP modifies-tactic-syntax t-meta | 392/124 | Mathlib/Tactic/TFAE.lean,scripts/noshake.json,test/tfae.lean | 3 | 5 | ['github-actions', 'joneugster', 'mathlib4-dependent-issues-bot', 'thorimur'] | joneugster | 1 month ago | unknown | unknown |
| 34005 | MSpill | feat: inverse function theorem for manifolds (concrete version) | Proves the inverse function theorem for manifolds: given manifolds $M, N$ and a $C^n$ map $f : M \to N$ whose differential is a linear isomorphism at $p \in M$, then $f$ is a local diffeomorphism at $p$, provided that both $p$ and its image are interior points. The proof proceeds in 4 main steps: 1. Define composition of partial diffeomorphisms 2. Show that the extended chart at an interior point can be restricted to an open set on which it is a partial diffeomorphism, viewing the model vector space as a manifold modelled on itself trivially 3. Use the inverse function theorem (applied to $f$ written in coordinates) to obtain a partial diffeomorphism between model vector spaces 4. Compose with chart diffeomorphisms to obtain a partial diffeomorphism between the manifolds. ------ [](https://gitpod.io/from-referrer/) | awaiting-author t-differential-geometry new-contributor | 232/3 | Mathlib/Geometry/Manifold/LocalDiffeomorph.lean | 1 | 11 | ['MSpill', 'github-actions', 'grunweg'] | grunweg | 1 month ago | unknown | unknown |
| 29282 | Jlh18 | feat(CategoryTheory): HasColimits instance on Grpd | Show that the category of groupoids has all small colimits, as a coreflective subcategory of `Cat`, which has all small colimits. The right adjoint of the forgetful functor is the core functor `CategoryTheory.Core.functor`. - [ ] depends on: #29283 [Core of a category as a functor] --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-category-theory | 140/4 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/CategoryTheory/Category/Grpd.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Colimit.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Core.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 29587 | uniwuni | feat(GroupTheory/Finiteness): define finitely generated semigroups | We define finitely generated semigroups and basics similarly to monoids and groups and prove that semigroups and monoids remain finitely generated when a congruence is quotiented out. This will be important when further developing semigroup theory. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-group-theory | 259/14 | Mathlib/Algebra/Group/Submonoid/Defs.lean,Mathlib/GroupTheory/Finiteness.lean | 2 | 4 | ['github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'uniwuni'] | dupuisf | 1 month ago | 146 days ago | 25 days |
| 29774 | 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/) | merge-conflict file-removed blocked-by-other-PR t-algebraic-geometry | 770/4 | Mathlib.lean,Mathlib/AlgebraicGeometry/OrderOfVanishing.lean,Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/Order/KrullDimension.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/OrderOfVanishing/Basic.lean,Mathlib/RingTheory/OrderOfVanishing/Properties.lean,Mathlib/Topology/KrullDimension.lean | 8 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 28796 | 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) [](https://gitpod.io/from-referrer/) | t-differential-geometry merge-conflict awaiting-author | 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 | 55 | ['chrisflav', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | PatrickMassot | 1 month ago | unknown | unknown |
| 28905 | grunweg | feat: immersions are locally embeddings | Hopefully, this can be used for the topological portion of #28865. (That part is not certain yet, the rest works.) --- Needs some clean-up in both the immersions file, and need to move the helper results about embeddings to the correct location. - [x] depends on: #28793 - [ ] depends on: #28796 - [x] depends on: #28853 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR merge-conflict t-differential-geometry | 331/15 | Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/Immersion.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,Mathlib/Geometry/Manifold/SmoothEmbedding.lean | 7 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30504 | grunweg | feat: add custom elaborators for immersions | And golf the fail using it, a bit. Other usage sites expose bugs or unexpected error messages... TODO: add basic tests for basic usage TODO: fix those errors (then try to golf further! --- - [x] depends on: #30307 - [x] depends on: #30356 - [ ] depends on: #28796 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-meta t-differential-geometry merge-conflict | 286/87 | 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 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32039 | HugLycan | feat(Tactic/Positivity): handle non-zeroness in non-orders | --- WIP... [](https://gitpod.io/from-referrer/) | WIP new-contributor t-meta merge-conflict | 618/163 | Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Power.lean,Mathlib/Algebra/Order/Module/Algebra.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Tactic/Positivity/test_Basic.lean | 10 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34132 | Paul-Lez | feat(Analysis/PDE/Quasilinear/Defs): Add definitions about quasilinear first order PDEs | This PR continues the work from #25429. Original PR: https://github.com/leanprover-community/mathlib4/pull/25429 | t-analysis | 147/0 | Mathlib.lean,Mathlib/Analysis/PDE/Quasilinear/Defs.lean | 2 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 32745 | LTolDe | feat(Topology/Algebra): add MulActionConst.lean | add Topology/Algebra/MulActionConst.lean introduce class `ContinuousSMulConst` for a scalar multiplication that is continuous in the first argument, in analogy to `ContinuousConstSMul` define `MulAction.ball x U` as the set `U • {x}` given `[SMul G X] (x : X) (U : Set G)` The lemmas shown here will be useful to prove the **Effros Theorem**, see [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Effros.20Theorem/with/558712441). --- [](https://gitpod.io/from-referrer/) | awaiting-author new-contributor t-topology | 117/0 | Mathlib.lean,Mathlib/Topology/Algebra/MulActionConst.lean | 2 | 8 | ['LTolDe', 'github-actions', 'urkud'] | dagurtomas | 1 month ago | 50 days ago | 16 days |
| 34131 | Ruben-VandeVelde | fix: update create_deprecated_modules.lean | --- This is a wip; I'm hoping someone can pick it up and make sure CI builds it going forward. @adomani @kim-em any takers? [](https://gitpod.io/from-referrer/) | please-adopt WIP CI | 26/22 | scripts/create_deprecated_modules.lean | 1 | 2 | ['adomani', 'github-actions'] | nobody | 1 month ago | unknown | unknown |
| 34134 | Paul-Lez | feat(Mathlib/Analysis/PDE/Quasilinear/Characteristics): the method of characteristics for first order quasilinear PDEs | This PR continues the work from #25710. Original PR: https://github.com/leanprover-community/mathlib4/pull/25710 | WIP t-analysis | 620/0 | Mathlib.lean,Mathlib/Analysis/PDE/Quasilinear/Characteristics.lean,Mathlib/Analysis/PDE/Quasilinear/Defs.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean | 4 | 3 | ['Paul-Lez', 'github-actions', 'mcdoll'] | nobody | 1 month ago | unknown | unknown |
| 33478 | anishrajeev | feat(ModelTheory): define a subset of the topology over complete types | Define a subset of the Stone Space over a language expanded with countably many constants. Define the proposition to indicate if a language is countable. The subset's density and openness is a future goal to prove (have a branch where it is almost finished), in pursuit of formalizing the proof of the Omitting Types Theorem via properties of Baire spaces. - [ ] depends on: #32215 - [ ] depends on: #32546 | t-logic blocked-by-other-PR merge-conflict new-contributor | 160/1 | Mathlib.lean,Mathlib/ModelTheory/Topology/Types.lean,Mathlib/ModelTheory/Types.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 4 | 8 | ['NoneMore', 'anishrajeev', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] | nobody | 1 month ago | 50 days ago | 10 days |
| 32546 | anishrajeev | feat(ModelTheory): Prove compactness of the type space | Define the space of types and prove various topological properties of it (zero dimensional, totally separated, compact, baire). The goal is to formalize the proof of the Omitting Types Theorem - [ ] depends on: #32215 | merge-conflict t-logic new-contributor | 127/1 | Mathlib.lean,Mathlib/ModelTheory/Topology/Types.lean,Mathlib/ModelTheory/Types.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 4 | 6 | ['NoneMore', 'anishrajeev', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | fpvandoorn | 1 month ago | unknown | unknown |
| 30853 | JovanGerb | feat(LinearAlgebra/AffineSpace/Simplex): `CoeFun` instance for `Simplex` | This PR introduces the notation `s i` to refer to the `i`th vertex of simplex `s`, which replaces the current `s.points i`. It does this by adding a `CoeFun` instance. I first tried using `FunLike`, but this came with some different problems related to discrimination tree indexing in `simp`. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-euclidean-geometry merge-conflict | 381/371 | Archive/Imo/Imo2019Q2.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/Geometry/Euclidean/Angle/Sphere.lean,Mathlib/Geometry/Euclidean/Circumcenter.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/Geometry/Euclidean/MongePoint.lean,Mathlib/Geometry/Euclidean/Projection.lean,Mathlib/Geometry/Euclidean/SignedDist.lean,Mathlib/Geometry/Euclidean/Simplex.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean,scripts/nolints.json | 15 | 14 | ['JovanGerb', 'eric-wieser', 'github-actions', 'jsm28', 'mathlib4-merge-conflict-bot'] | jsm28 | 1 month ago | 88 days ago | 41 days |
| 34195 | eric-wieser | feat: continuous bundled actions | These are `Continuous` versions of existing definitions. --- [](https://gitpod.io/from-referrer/) | t-topology t-algebra large-import | 59/0 | Mathlib/Topology/Algebra/ContinuousMonoidHom.lean | 1 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 33495 | vihdzp | chore(RingTheory/HahnSeries/Basic): redefine `order` using `unbotD` | --- - [x] depends on: #33494 [](https://gitpod.io/from-referrer/) | awaiting-CI t-ring-theory | 8/6 | Mathlib/RingTheory/HahnSeries/Basic.lean | 1 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 31180 | CoolRmal | feat(Analysis): a closed convex set is the intersection of countably many half-spaces in a separable Banach space | This lemma is needed in the proof of conditional Jensen's inequality: #27953 --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor merge-conflict awaiting-author | 70/13 | Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Topology/Compactness/Lindelof.lean | 2 | 44 | ['ADedecker', 'CoolRmal', 'EtienneC30', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 95 days ago | 2 days |
| 33504 | ldct | feat: Add lemmas for DihedralGroup.fintypeHelper | Using `fin_cases` to reason about `DihedralGroup` elements exposes the internal `fintypeHelper` instances, which has no exported API ``` example (g : DihedralGroup 3) : (g^6 = 1) := by fin_cases g <;> dsimp -- 6 goals case «0» ⊢ DihedralGroup.fintypeHelper✝ (Sum.inl 0) ^ 6 = 1 ... ``` this PR adds simp lemma that convert them to constructors, which do have API ``` 6 goals case «0» ⊢ 1 ^ 6 = 1 case «1» ⊢ DihedralGroup.r 1 ^ 6 = 1 case «2» ⊢ DihedralGroup.r 2 ^ 6 = 1 ``` --- [](https://gitpod.io/from-referrer/) | awaiting-author t-group-theory | 8/0 | Mathlib/GroupTheory/SpecificGroups/Dihedral.lean | 1 | 3 | ['Komyyy', 'github-actions', 'tb65536'] | nobody | 1 month ago | 40 days ago | 19 days |
| 34238 | Ruben-VandeVelde | feat: some lemmas about AlgHom 1 and * | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 22/0 | Mathlib/Algebra/Algebra/Hom.lean | 1 | 5 | ['Ruben-VandeVelde', 'Vierkantor', 'eric-wieser', 'github-actions'] | nobody | 1 month ago | 40 days ago | 11 hours |
| 31092 | FlAmmmmING | feat(Algebra/Group/ForwardDiff.lean): Add theorem `sum_shift_eq_fwdDiff_iter`. | --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor delegated | 17/1 | Mathlib/Algebra/Group/ForwardDiff.lean | 1 | 20 | ['BeibeiX0', 'FlAmmmmING', 'Ruben-VandeVelde', 'dagurtomas', 'github-actions', 'jcommelin', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | dagurtomas | 1 month ago | 40 days ago | 54 days |
| 32828 | Hagb | feat(Algebra/Order/Group/Defs): add `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid'` | It is similar to `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid`, while with different hypotheses. The conclusion `IsOrderedCancelMonoid α` on `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid` still holds when the hypothesis `CommGroup α` is weakened to `CancelCommMonoid α` while `PartialOrder α` is strengthened to `LinearOrder α`. --- [`IsOrderedAddMonoid.toIsOrderedCancelAddMonoid`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsOrderedAddMonoid.toIsOrderedCancelAddMonoid#doc) and `IsOrderedAddMonoid.toIsOrderedCancelAddMonoid'`: https://github.com/leanprover-community/mathlib4/blob/97f78b1a4311fed1844b94f1c069219a48a098e1/Mathlib/Algebra/Order/Group/Defs.lean#L52-L62 [](https://gitpod.io/from-referrer/) | awaiting-zulip t-algebra | 4/0 | Mathlib/Algebra/Order/Group/Defs.lean | 1 | 8 | ['Garmelon', 'Vierkantor', 'artie2000', 'github-actions', 'leanprover-radar'] | eric-wieser | 1 month ago | 40 days ago | 40 days |
| 34141 | gululu996-ui | feat(Combinatorics/SimpleGraph/Acyclic): finite trees have at least two degree-one vertices | Add a lemma showing that a finite tree with at least two vertices has at least two vertices of degree 1. - Introduce a helper lemma `SimpleGraph.Connected.one_le_degree` for connected graphs on a nontrivial finite type. - Prove the leaf-count lower bound via the degree-sum identity and a counting argument. --- | awaiting-author new-contributor t-combinatorics | 72/2 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 9 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] | nobody | 1 month ago | 42 days ago | 1 day |
| 29014 | ShreckYe | feat(Data/List/Scan): some theorems that relate `scanl` with `foldl` | I am not sure which is the best form of `getElem_scanl_eq_foldl_take` here, so I added several alternative forms. Feel free to remove any of them if necessary. | merge-conflict t-data | 35/0 | Mathlib/Data/List/Scan.lean | 1 | 15 | ['ShreckYe', 'github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen', 'vlad902'] | pechersky | 1 month ago | 114 days ago | 74 days |
| 33689 | BoltonBailey | feat(Probability): PMF point mass function | This PR defines a pointMass function, which returns the value of a PMF at a point as a `NNReal`. --- Perhaps `unitInterval` would be better? Note: A number of Zulip discussions lists below have discussed what the return type of `PMF` should be and if the definition should be refactored. This PR avoids this by simply creating a new function, but depends on a PR from these discussions to not cause a collision. Zulip: - [#new members > Why is the codomain of PMF in mathlib ENNReal and not NNReal @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Why.20is.20the.20codomain.20of.20PMF.20in.20mathlib.20ENNReal.20and.20not.20NNReal/near/526572449) - [#new members > Performing arithmetic with ENNReals @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Performing.20arithmetic.20with.20ENNReals/near/525936290) - [#Is there code for X? > Statistical distance for `PMF`s? @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Statistical.20distance.20for.20.60PMF.60s.3F/near/525234190) - [#mathlib4 > PMF Refactor: FunLike vs Definition Change](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change/with/567771586) - [ ] depends on: #34138 [](https://gitpod.io/from-referrer/) | t-measure-probability WIP blocked-by-other-PR | 93/0 | Mathlib/Probability/ProbabilityMassFunction/PointMass.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 month ago | unknown | unknown |
| 33680 | BoltonBailey | feat(Probability/ProbabilityMassFunction): add Total Variation distance | Adds the statistical distance/total variation distance. See Zulip discussion: - [#Is there code for X? > total variation distance between two PMFs](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/total.20variation.20distance.20between.20two.20PMFs/with/566810511) This PR was authored with the support of Claude Opus 4.5 --- - [ ] depends on: #33689 [provide an API for NNReal-returning function] [](https://gitpod.io/from-referrer/) | t-measure-probability blocked-by-other-PR | 47/0 | Mathlib/Probability/ProbabilityMassFunction/Distance.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 month ago | unknown | unknown |
| 21476 | grunweg | feat(lint-style): enable running on downstream projects | Enable lint-style to run on downstream projects, by making the following modifications: - allow passing an explicit list of libraries to lint: if nothing is passed, it lints `Mathlib`, `Archive` and `Counterexamples` (as before); otherwise, it lints precisely the passed modules - only check init imports, undocumented scripts and the errors from `lint-style.py` when linting Mathlib - make the style exceptions file configurable and optional: using the `nolints-file` flag, the exceptions file can be configured. If the flag is omitted, we try to find a file at `scripts/nolints-style.txt` --- and otherwise proceed with no style exceptions. This means mathlib can continue unchanged, and downstream projects can either add an explicit exceptions file, or proceed without any exceptions. After this PR, one should be able to run lint-style on a downstream project by `lake exe lint-style ProjectName`. Prompted by [this zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/lint-style.20for.20downstream.20libraries). --- - [x] depends on: #24570 - [x] depends on: #24953 (I did not test the last part.) [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 58/19 | Mathlib/Tactic/Linter/TextBased.lean,scripts/lint-style.lean | 2 | 20 | ['Vierkantor', 'adomani', 'github-actions', 'grunweg', 'joneugster', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | joneugster | 1 month ago | unknown | unknown |
| 34129 | idontgetoutmuch | feat: define Ehresmann connections | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-differential-geometry new-contributor | 90/0 | Mathlib.lean,Mathlib/Geometry/Manifold/EhresmannConnection.lean | 2 | 5 | ['github-actions', 'grunweg', 'idontgetoutmuch', 'metakunt'] | nobody | 1 month ago | unknown | unknown |
| 34086 | adomani | perf: test the effect of localizing the whitespace linter | This PR checks whether the modification contained in #26299 have a positive effect on this one. The other PR has a few minor regressions, but hopefully this PR has very substantial speed ups. --- [](https://gitpod.io/from-referrer/) | large-import merge-conflict | 2076/462 | Archive/Imo/Imo2010Q5.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Counterexamples/CliffordAlgebraNotInjective.lean,Counterexamples/HeawoodUnitDistance.lean,Counterexamples/MonicNonRegular.lean,Mathlib/Algebra/AffineMonoid/Basic.lean,Mathlib/Algebra/Category/Grp/EpiMono.lean,Mathlib/Algebra/Module/TransferInstance.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStructTruncated.lean,Mathlib/AlgebraicTopology/SimplicialSet/Path.lean,Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/Real/Pi/Bounds.lean,Mathlib/CategoryTheory/Comma/Over/OverClass.lean,Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean,Mathlib/CategoryTheory/Monoidal/Action/Basic.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean,Mathlib/Combinatorics/SetFamily/LYM.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/Language.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Data/DFinsupp/Notation.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Fin/Fin2.lean,Mathlib/Data/Finset/Slice.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Matrix/Cartan.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Num/Bitwise.lean,Mathlib/Data/PNat/Xgcd.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/Vector/MapLemmas.lean,Mathlib/FieldTheory/CardinalEmb.lean,Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Laurent.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/GroupTheory/FreeGroup/Reduce.lean,Mathlib/LinearAlgebra/TensorPower/Symmetric.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/PullOut.lean,Mathlib/MeasureTheory/Integral/TorusIntegral.lean,Mathlib/ModelTheory/Syntax.lean,Mathlib/NumberTheory/Niven.lean,Mathlib/Probability/CondVar.lean,Mathlib/Probability/Independence/Conditional.lean,Mathlib/RingTheory/Nilpotent/Exp.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/Whitespace.lean,Mathlib/Tactic/Ring/NamePolyVars.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean,Mathlib/Topology/Category/TopCat/Limits/Basic.lean,Mathlib/Topology/Instances/Rat.lean,Mathlib/Util/Superscript.lean,MathlibTest/WhitespaceLinter.lean | 67 | 5 | ['adomani', 'github-actions', 'leanprover-radar', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33749 | plp127 | feat: `NNRat` is countable | We provide an `Encodable NNRat` instance. As a consequence we also get the instance `Countable NNRat`. See also [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/NNRat.20not.20countable.3F/near/566916284) --- [](https://gitpod.io/from-referrer/) | t-data large-import awaiting-author | 13/0 | Mathlib/Data/Rat/Encodable.lean | 1 | 4 | ['eric-wieser', 'github-actions', 'grunweg', 'joneugster', 'leanprover-radar'] | joneugster | 1 month ago | 39 days ago | 15 days |
| 34371 | grunweg | feat: module instance on ContMDiffMap | From fpvandoorn and my LeanCourse25. --- [](https://gitpod.io/from-referrer/) | WIP t-differential-geometry | 117/0 | Mathlib/Geometry/Manifold/Algebra/LieGroup.lean | 1 | 2 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 34396 | dupuisf | feat: notation for `Ring.inverse` | This PR adds the global notation `x⁻¹ʳ` for `Ring.inverse x`, and a few extra API lemmas about it. --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-zulip | 58/19 | Mathlib/Algebra/GroupWithZero/Units/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 34219 | or4nge19 | feat(MeasureTheory/BorelSpace): measurability of annuli on (pseudo)(e)metric space | it assumes `OpensMeasurableSpace` original [file](https://github.com/fpvandoorn/carleson/blob/master/Carleson/ToMathlib/Annulus.lean) From the Carleson project. Co-authored-by: James Sundstrom [james.sundstrom@gmail.com](mailto:james.sundstrom@gmail.com) --- - [x] depends on: #34200 - [ ] depends on: #34202 [](https://gitpod.io/from-referrer/) | carleson blocked-by-other-PR t-measure-probability | 534/0 | Mathlib.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Annulus.lean,Mathlib/Topology/MetricSpace/Annulus.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33052 | JovanGerb | feat: replace `rw??` tactic with `#infoview_search` command | This PR introduces the `#infoview_search` command. It gives an improved way of interacting with the library search from `rw??`, and hence this PR also deprecates `rw??` (`rw??` still works, but it displays a warning message suggesting to use `#infoview_search` instead). The difference is that `#infoview_search` is a command, so you type it once, and then you can use rewrite search in any tactic state in any place. This is more convenient than having to write out `rw??` every time. I have many improvements planned for `#infoview_search`, but this PR simply gives it the same capabilities that `rw??` currently has. One of those improvements is to also do `apply` search, and `apply at` search. That is why the name doesn't contain `rw` anymore. To prepare for more code developments around `#infoview_search`, I've moved the relevant files into a new folder `Mathlib.Tactic.InfoviewSearch`. Note that one annoyance with writing `#infoview_search` is that there is a linter warning. Should I remove the `#` from the command, or are we happy with this? ``` `#`-commands, such as '#infoview_search', are not allowed in 'Mathlib' Note: This linter can be disabled with `set_option linter.hashCommand false` ``` --- [](https://gitpod.io/from-referrer/) | large-import delegated t-meta file-removed merge-conflict | 100/59 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/InfoviewSearch/InteractiveUnfold.lean,Mathlib/Tactic/InfoviewSearch/LibraryRewrite.lean,MathlibTest/LibraryRewrite.lean | 6 | 6 | ['JovanGerb', 'fpvandoorn', 'github-actions', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | adamtopaz | 1 month ago | 53 days ago | 21 days |
| 33209 | JovanGerb | feat(infoview_search): move to new frontend | This PR changes the UI of `#infoview_search`, so that the replacement expression is hoverable, and there is a separate insert button. I posted screenshots in [#mathlib4 > `rw??` discussion @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60rw.3F.3F.60.20discussion/near/565081431) --- - [ ] depends on: #33052 [](https://gitpod.io/from-referrer/) | large-import file-removed t-meta blocked-by-other-PR merge-conflict | 191/108 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/InfoviewSearch/InteractiveUnfold.lean,Mathlib/Tactic/InfoviewSearch/LibraryRewrite.lean,Mathlib/Tactic/InfoviewSearch/Util.lean,MathlibTest/LibraryRewrite.lean | 7 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33132 | BoltonBailey | feat(Computability): Single-tape TM complexity | Currently, time complexity in mathlib is defined in terms of (a kind of) multi-tape Turing machine [Turing.FinTM2](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Computability/TMComputable.html#Turing.FinTM2). This (currently Draft) PR develops time complexity in terms of Single-Tape Turing Machines. There are a few reasons to do this: * Having definitions of time complexity for both single-tape and multi-tape TMs is a prerequisite to prove theorems relating these definitions of complexity (in particular, the theorem that the definition of polynomial time computability is equivalent between these notions). * The Multi-tape "TM2" definition seems to be based on "Wang B-Machines" ([wiki](https://en.wikipedia.org/wiki/Wang_B-machine)) which involves both a program of function labels, as well as a set of states. * I think it's a bit more common to see a simpler presentation of single-tape ([and multitape](https://en.wikipedia.org/wiki/Multitape_Turing_machine)) Turing machines which only provides a set of states. * It seems to me that the B-Machine-like definition makes it a bit complicated to make progress. For example, if I want to compose Turing Machines, then I have to be able to construct a new program and state set, which involves mapping the [Turing.TM2.Stmt](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Computability/TuringMachine.html#Turing.TM2.Stmt) type to the sum type of the tapes. I have to do something similar for single-tape TMs, but the Stmt type is less complicated, so this is less involved. * If we want to continue on and define space complexity, it seems convenient to have only a single tape, so that we don't have to do lots of reasoning over summations. --- [](https://gitpod.io/from-referrer/) | t-computability WIP | 1480/0 | Mathlib/Computability/BinEncoding.lean,Mathlib/Computability/EncodingTo.lean,Mathlib/Computability/SingleTapeBinTMComputable.lean,Mathlib/Computability/SingleTapeTMComputable.lean | 4 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 34155 | zcyemi | feat(Geometry/Euclidean/Triangle): add altitudeFoot lies strictly between endpoints for an obtuse angle | --- add `sbtw_orthogonalProjection_of_angle_ge_pi_div_two` | t-euclidean-geometry awaiting-author | 93/0 | Mathlib/Geometry/Euclidean/Triangle.lean | 1 | 4 | ['github-actions', 'jsm28'] | nobody | 1 month ago | 37 days ago | 5 days |
| 31134 | thorimur | chore: use `whenLinterActivated` in linters | Replaces boilerplate in linters with `whenLinterActivated` or `whenLinterOption` where possible. --- - [ ] depends on: #31133 [](https://gitpod.io/from-referrer/) | delegated | 79/102 | Mathlib/Tactic/Linter/CommandRanges.lean,Mathlib/Tactic/Linter/DocPrime.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/Linter/GlobalAttributeIn.lean,Mathlib/Tactic/Linter/HashCommandLinter.lean,Mathlib/Tactic/Linter/Header.lean,Mathlib/Tactic/Linter/Lint.lean,Mathlib/Tactic/Linter/MinImports.lean,Mathlib/Tactic/Linter/Multigoal.lean,Mathlib/Tactic/Linter/OldObtain.lean,Mathlib/Tactic/Linter/PPRoundtrip.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,Mathlib/Tactic/Linter/UpstreamableDecl.lean,Mathlib/Tactic/Linter/Whitespace.lean,Mathlib/Util/CountHeartbeats.lean,scripts/lint-style.lean | 17 | 8 | ['github-actions', 'grunweg', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | grunweg | 1 month ago | unknown | unknown |
| 34186 | faenuccio | feat(GroupTheory/SpecificGroups/Cyclic): a quotient of a cyclic group is cyclic | Add the Normal instance for a subgroup of a cyclic group; and derive that every quotient of a cyclic group is cyclic, as an instance. | t-group-theory awaiting-author | 8/0 | Mathlib/GroupTheory/SpecificGroups/Cyclic.lean | 1 | 8 | ['erdOne', 'faenuccio', 'github-actions', 'leanprover-radar', 'tb65536'] | tb65536 | 1 month ago | 37 days ago | 4 days |
| 31836 | hanwenzhu | chore(MeasureTheory/IntervalIntegral): generalize fundamental theorem of calculus to `HasDerivWithinAt` instead of `HasDerivAt` | This PR generalizes `HasDerivAt` to `HasDerivWithinAt`, and `DifferentiableAt` to `DifferentiableOn`, for the fundamental theorem of calculus for interval integrals. I found this during trying to state a skeleton of a proof of a higher-dimensional Taylor's theorem. There, the correct assumption is something like `ContDiffOn n f [[a, b]]`, rather than `∀ x ∈ [[a, b]], ContDiffAt 𝕜 n f [[a, b]] x`, which traces back to this issue. --- [](https://gitpod.io/from-referrer/) | t-analysis t-measure-probability awaiting-author merge-conflict | 143/51 | Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/IntegrationByParts.lean,Mathlib/NumberTheory/AbelSummation.lean,Mathlib/NumberTheory/LSeries/SumCoeff.lean | 7 | 10 | ['github-actions', 'hanwenzhu', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 1 month ago | 96 days ago | 6 days |
| 12879 | grunweg | feat: port ge_or_gt linter from mathlib3 | Code works and is essentially green: next step is to split up into separate PRs. Feedback welcome on whether: - all the test changes are good, or I should simply allow it in more cases - if calc blocks need to be explicitly exempt --- - [ ] depends on: #12933 - [ ] depends on: #12934 - [ ] depends on: #12931 [](https://gitpod.io/from-referrer/) | merge-conflict t-linter tech debt blocked-by-other-PR | 736/319 | Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1962Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo2001Q2.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2011Q5.lean,Archive/Imo/Imo2019Q4.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Archive/Wiedijk100Theorems/BirthdayProblem.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Star/CHSH.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Int/Lemmas.lean,Mathlib/Data/Nat/Dist.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Parity.lean,Mathlib/Data/Nat/Upto.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/UInt.lean,Mathlib/GroupTheory/Coxeter/Length.lean,Mathlib/MeasureTheory/Constructions/Polish.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Covering/Vitali.lean,Mathlib/MeasureTheory/Covering/VitaliFamily.lean,Mathlib/MeasureTheory/Integral/Layercake.lean,Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/NumberTheory/Padics/PadicNorm.lean,Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Rayleigh.lean,Mathlib/Order/Filter/AtTopBot.lean,Mathlib/Probability/Process/Stopping.lean,Mathlib/RingTheory/Adjoin/Basic.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CancelDenoms/Core.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/IntervalCases.lean,Mathlib/Tactic/Linarith/Datatypes.lean,Mathlib/Tactic/Linarith/Lemmas.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linter/GeOrGt.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/NormNum/GCD.lean,Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Topology/Category/Profinite/Nobeling.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean,Mathlib/Topology/MetricSpace/CauSeqFilter.lean,Mathlib/Topology/MetricSpace/Cauchy.lean,Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sequences.lean,scripts/lint-style.py,test/Explode.lean,test/GCongr/inequalities.lean,test/GeOrGt.lean,test/LibrarySearch/IsCompact.lean,test/LibrarySearch/basic.lean,test/Recall.lean,test/Rify.lean,test/Use.lean,test/cancel_denoms.lean,test/congr.lean,test/delabLinearIndependent.lean,test/delaborators.lean,test/interval_cases.lean,test/linarith.lean | 109 | 4 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| 34443 | vihdzp | feat: `a / b ≤ a * b ↔ 1 ≤ b` | Upstreamed from the CGT repo. --- [](https://gitpod.io/from-referrer/) | t-algebra t-order easy | 13/1 | Mathlib/Algebra/Order/Group/Defs.lean | 1 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 34262 | grunweg | feat: add mfderiv_const_smul | This generalises an existing mathlib lemma (as the differentiability hypothesis is in fact not necessary). From the path towards geodesics and the Levi-Civita connection. Co-authored-by: Patrick Massot [patrickmassot@free.fr](mailto:patrickmassot@free.fr) --- [](https://gitpod.io/from-referrer/) | awaiting-author t-differential-geometry | 15/0 | Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean | 1 | 8 | ['github-actions', 'grunweg', 'ocfnash'] | ocfnash | 1 month ago | unknown | unknown |
| 34472 | ADedecker | feat: characterize TVS asymptotics in terms of seminorms | --- [](https://gitpod.io/from-referrer/) | t-analysis | 472/24 | Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/Convex/EGauge.lean,Mathlib/Analysis/LocallyConvex/Asymptotics.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Seminorm.lean | 5 | 2 | ['eric-wieser', 'github-actions'] | nobody | 1 month ago | unknown | unknown |
| 29953 | slashbade | feat: add reap for experiment | --- [](https://gitpod.io/from-referrer/) | new-contributor | 40/3 | Cache/IO.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,lake-manifest.json,lakefile.lean | 5 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33110 | dagurtomas | feat(CategoryTheory): adjoint functor theorems for presentable categories | --- [](https://gitpod.io/from-referrer/) | WIP t-category-theory | 214/5 | Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean,Mathlib/CategoryTheory/Presentable/AdjointFunctorTheorems.lean | 2 | 2 | ['github-actions', 'joelriou'] | nobody | 1 month ago | unknown | unknown |
| 34361 | grunweg | chore: rename comp' to fun_comp a few more times; use to_fun to autog… | …enerate -------- - [ ] depends on: #34257 (then this PR can be done the proper way) --- [](https://gitpod.io/from-referrer/) | t-analysis blocked-by-other-PR | 24/40 | Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Meromorphic/Basic.lean | 5 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 month ago | 35 days ago | 3 days |
| 8608 | eric-wieser | feat: multiplicativize `AddTorsor` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra please-adopt | 268/199 | Mathlib/Algebra/AddTorsor.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Data/Set/Pointwise/SMul.lean,Mathlib/Tactic/ToAdditive.lean | 4 | 2 | ['alreadydone'] | nobody | 1 month ago | unknown | unknown |
| 34506 | kbuzzard | perf(RingTheory/Extension/Generators): universe switch | --- [](https://gitpod.io/from-referrer/) | WIP t-ring-theory | 1/1 | Mathlib/RingTheory/Extension/Generators.lean | 1 | 3 | ['github-actions', 'kbuzzard', 'leanprover-radar'] | nobody | 1 month ago | unknown | unknown |
| 33963 | gasparattila | feat(Topology/UniformSpace/Closeds): completeness of `(Nonempty)Compacts` | This PR generalizes the completeness result of `NonemptyCompacts` from metric spaces to uniform spaces. --- - [x] depends on: #34036 [](https://gitpod.io/from-referrer/) | t-topology | 71/8 | Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | PatrickMassot | 1 month ago | 34 days ago | 45 days |
| 34268 | gasparattila | feat(Topology/Sets): continuity of operations on `(Nonempty)Compacts` | --- [](https://gitpod.io/from-referrer/) | t-topology | 144/17 | Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 3 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | PatrickMassot | 1 month ago | 34 days ago | 40 days |
| 34270 | gasparattila | feat(Topology/UniformSpace/Closeds): `(Nonempty)Compacts.toCloseds` is a closed embedding | --- [](https://gitpod.io/from-referrer/) | t-topology | 36/35 | Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | PatrickMassot | 1 month ago | 34 days ago | 40 days |
| 34276 | gasparattila | feat(Topology/Sets): discreteness of `(Nonempty)Compacts` | --- - [ ] depends on: #34268 [](https://gitpod.io/from-referrer/) | t-topology blocked-by-other-PR | 164/17 | Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 40 days ago | 14 minutes |
| 34273 | gasparattila | feat(Topology/Sets): finite sets are dense in `(Nonempty)Compacts` | --- - [ ] depends on: #34266 [](https://gitpod.io/from-referrer/) | t-topology blocked-by-other-PR | 182/0 | Mathlib/Topology/Bases.lean,Mathlib/Topology/Sets/VietorisTopology.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 40 days ago | 3 minutes |
| 34278 | gasparattila | feat(Topology/Sets): connectedness of `NonemptyCompacts` | --- - [ ] depends on: #34268 - [ ] depends on: #34273 [](https://gitpod.io/from-referrer/) | t-topology blocked-by-other-PR | 434/17 | Mathlib/Topology/Bases.lean,Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 40 days ago | 4 minutes |
| 34280 | gasparattila | feat(Topology/Sets): local connectedness of `(Nonempty)Compacts` | --- - [ ] depends on: #34278 [](https://gitpod.io/from-referrer/) | t-topology blocked-by-other-PR | 493/17 | Mathlib/Topology/Bases.lean,Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34275 | gasparattila | feat(Topology/Sets): topological properties of `(Nonempty)Compacts.map` | --- - [ ] depends on: #34268 [](https://gitpod.io/from-referrer/) | t-topology blocked-by-other-PR | 225/17 | Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 40 days ago | 18 minutes |
| 28017 | eric-wieser | feat: generalize some opnorm lemmas to seminormed spaces | --- - [ ] depends on: #28014 - [ ] depends on: #28101 - [ ] depends on: #29120 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 60/24 | Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean,Mathlib/Analysis/NormedSpace/Real.lean | 2 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 31377 | CoolRmal | feat: a series of smooth functions that converges (locally) uniformly is smooth | The main theorem is the proof that an infinite sum of $C^n$ functions on a one-dimensional domain which converges locally uniformly is $C^n$ and related results. This should be compared with [contDiff_tsum](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/SmoothSeries.html#contDiff_tsum) where the same result is proved for functions on an arbitrary domain but with a slightly stronger convergence assumption. The main motivation for this PR is the [#mathlib4 > Tychonov's Counterexample for the Heat Equation](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Tychonov's.20Counterexample.20for.20the.20Heat.20Equation/with/547367912). --- [](https://gitpod.io/from-referrer/) | t-topology new-contributor awaiting-author merge-conflict | 110/18 | Mathlib/Analysis/Calculus/SmoothSeries.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean,Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean | 5 | 20 | ['CoolRmal', 'github-actions', 'mathlib4-merge-conflict-bot', 'ocfnash', 'sgouezel'] | ocfnash | 1 month ago | 95 days ago | 8 days |
| 34123 | staroperator | feat(Data/Set/Finite): finite distributivity for complete distributive lattices | --- [](https://gitpod.io/from-referrer/) | t-order | 52/0 | Mathlib/Data/Set/Finite/Lattice.lean | 1 | 11 | ['github-actions', 'plp127', 'staroperator'] | bryangingechen | 1 month ago | 43 days ago | 43 days |
| 26158 | upobir | feat(NumberTheory/Divisors): add int divisors | This PR continues the work from #25209. Original PR: https://github.com/leanprover-community/mathlib4/pull/25209 | awaiting-author t-number-theory | 101/2 | Mathlib/NumberTheory/Divisors.lean | 1 | 37 | ['MichaelStollBayreuth', 'github-actions', 'mathlib4-merge-conflict-bot', 'upobir'] | mariainesdff | 1 month ago | 211 days ago | 45 days |
| 32865 | robertmaxton42 | (WIP) Separation axioms | --- [](https://gitpod.io/from-referrer/) | large-import merge-conflict | 4439/13 | Mathlib.lean,Mathlib/CategoryTheory/LiftingProperties/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Disjoint.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Order/BooleanAlgebra/Set.lean,Mathlib/Topology/AlexandrovDiscrete.lean,Mathlib/Topology/Category/Lifting/Defs.lean,Mathlib/Topology/Category/Lifting/Separation.lean,Mathlib/Topology/Category/TopCat/Basic.lean,Mathlib/Topology/Category/TopCat/Limits/Basic.lean,Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean,Mathlib/Topology/Category/UProp.lean,Mathlib/Topology/Coherent.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/ContinuousMap/Basic.lean,Mathlib/Topology/ContinuousMap/Constructions.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Maps/Basic.lean,Mathlib/Topology/Order.lean,Mathlib/Topology/Order/UpperLowerSetTopology.lean,Mathlib/Topology/SeparatedMap.lean,Mathlib/Topology/Separation/GDelta.lean,Mathlib/Topology/Separation/Regular.lean,Mathlib/Topology/UnitInterval.lean,Mathlib/Topology/UrysohnsLemma.lean,docs/references.bib | 30 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33031 | chiyunhsu | feat(Combinatorics/Enumerative/Partition): add combinatorial proof of Euler's partition theorem | The new file EulerComb.lean contains the combinatorial proof of Euler's partition theorem. The analytic proof of the theorem and its generalization of Glaisher's Theorem has already been formalized in [Glaisher.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Combinatorics/Enumerative/Partition/Glaisher.lean). The generalization of the combinatorial proof from this file to Glaisher's Theorem is within reach. --- Zulip discussion: [#mathlib4 > Glaisher’s Bijection on integer partitions](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Glaisher.E2.80.99s.20Bijection.20on.20integer.20partitions/with/570808111) [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor awaiting-zulip | 531/0 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Partition/EulerComb.lean | 2 | 5 | ['chiyunhsu', 'github-actions', 'tb65536', 'vihdzp'] | b-mehta | 1 month ago | 33 days ago | 42 days |
| 27835 | edegeltje | feat(Tactic): ring modulo a given characteristic | This PR extends the `ring` tactic with a new config argument `char` which will try to reduce all constant terms modulo the given characteristic. This allows `ring` to prove e.g. `(x + y)^3 = x^3 + y^3` in characteristic 3. This is a simpler and faster way to do so than what we had before: `repeat { ring; reduce_mod_char }` becomes `ring (config := { char := 3 })`. The first step is to split off the required `CharP` definitions, since `Mathlib.Algebra.CharP.Basic` already requires the `ring` tactic. To perform the reduction modulo the given characteristic, I implemented `reduceCast` which reduces a raw integer, and wrapped it in `reduceResult` that takes a `NormNum.Result` for easy use. We need to pass through quite a few parameters into `reduceResult` so maybe it's worth defining a structure, or reusing `Cache` for this. Then it's basically a case of replacing every place where `ring` constructs a numeral with a call to `reduceResult`. Limitations: * `ring` doesn't attempt to detect the characteristic by itself, you need to pass it in explicitly. Trying to infer a `CharP` instance at each point sounds quite expensive. * Since the support for `%` in `NormNum` only exists for integers, I implemented the reduction only when a `Ring` instance is available. It is still sound in the semiring case, just not complete. * We could optimize exponentiation in the specific case where the characteristic `p` is a prime that divides the exponent `n`: `(x + y)^n = x^n + y^n`. I'll leave that to future work. --- This used to be #10765 by Anne Baanen before the great forkening. [](https://gitpod.io/from-referrer/) | merge-conflict large-import migrated-from-branch t-meta awaiting-author WIP | 312/133 | Mathlib/LinearAlgebra/Eigenspace/Basic.lean,Mathlib/RingTheory/MvPolynomial/Basic.lean,Mathlib/Tactic/LinearCombination.lean,Mathlib/Tactic/Module.lean,Mathlib/Tactic/Polyrith.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Tactic/Ring/RingNF.lean,MathlibTest/ring_compare.lean,MathlibTest/ring_mod_char.lean | 10 | 14 | ['edegeltje', 'github-actions', 'joneugster', 'mathlib4-merge-conflict-bot'] | joneugster | 1 month ago | 202 days ago | 11 days |
| 33954 | or4nge19 | feat(CategoryTheory/Abelian): add Filtration API | Filtered objects in an abelian category (Deligne, *Théorie de Hodge II*, §1.1).
inspired by a [message](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Proposal.3A.20Complexifications.20with.20a.20view.20towards.20Hodge.20theory/near/565511365) by Joel Riou
Co-authored-by: Jonathan Washburn |
t-category-theory awaiting-author | 356/0 | Mathlib.lean,Mathlib/CategoryTheory/Filtration/Basic.lean,docs/references.bib | 3 | 12 | ['dagurtomas', 'github-actions', 'joelriou', 'or4nge19'] | nobody | 1 month ago | 33 days ago | 3 days |
| 34092 | staroperator | feat(SetTheory/ZFC): properties of `ZFSet.omega` | --- [](https://gitpod.io/from-referrer/) | t-set-theory | 77/10 | Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/PSet.lean | 3 | 25 | ['Komyyy', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator', 'vihdzp'] | alreadydone | 1 month ago | 33 days ago | 44 days |
| 34575 | urkud | feat(Integral/Pi): add more convenience API | --- It's some old code I want to revive&merge. I'll change it from draft when it's ready for review. [](https://gitpod.io/from-referrer/) | t-measure-probability | 406/1 | Mathlib/MeasureTheory/Integral/Pi.lean | 1 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 34279 | grunweg | chore: use `to_fun` more | We use the new functionality of `to_fun` from #34257 to remove a few more duplicate lemmas. --- - [ ] depends on: #34257 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR merge-conflict | 89/217 | Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Pow.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Pow.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean,Mathlib/Probability/Distributions/Gaussian/Fernique.lean,Mathlib/Tactic/ToFun.lean | 9 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33817 | FlAmmmmING | fix(Combinatorics/Enumerative/Schroder.lean): Fix the definition and theorem of smallSchroder. | In the previous definition, the small Schröder numbers were defined as ```LaTeX s_0 = 1, s_1 = 1, s_2 = 1, s_3 = 3... ``` , which does not match the sequence listed in OEIS A006318. Moreover, this definition makes it difficult to correctly write the generating function for the small Schröder numbers. This PR fixes this issue. --- [](https://gitpod.io/from-referrer/) | new-contributor t-combinatorics large-import | 61/39 | Mathlib/Combinatorics/Enumerative/Schroder.lean | 1 | 19 | ['FlAmmmmING', 'github-actions', 'vihdzp'] | awainverse | 1 month ago | 41 days ago | 52 days |
| 34227 | stepan2698-cpu | feat: If sum of densities is at least one, the sumset covers the naturals | Proves an outstanding TODO item from Mathlib.Combinatorics.Schnirelmann : shows that if the sum of two densities is at least one, the sumset covers the positive naturals. --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 51/1 | Mathlib/Combinatorics/Schnirelmann.lean | 1 | 3 | ['github-actions', 'grunweg', 'kbuzzard'] | awainverse | 1 month ago | 41 days ago | 41 days |
| 34130 | FlAmmmmING | feat(Combinatorics/SimpleGraph/Acyclic): Add new theorem `isTree_iff_uniqueShortest_path` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-combinatorics new-contributor | 28/1 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 9 | ['IvanRenison', 'github-actions', 'metakunt', 'vlad902'] | nobody | 1 month ago | 41 days ago | 2 days |
| 34487 | martinwintermath | feat(LinearAlgebra/SesquilinearForm/Basic): add instances for SeparatingLeft, SeparatingRight and Nondegenerate | Add typeclass instances for `Fact B.SeparatingLeft`, `Fact B.SeparatingRight`, `Fact B.Nondegenerate`: * inferring `Fact B.flip.SeparatingLeft` from `Fact B.SeparatingRight` and vice versa * inferring `Fact B.SeparatingLeft` and `Fact B.SeparatingRight` from `Fact B.Nondegenerate` * inferring `Fact B.SeparatingLeft` and `Fact B.Nondegenerate` for `.id` and `Dual.eval` * inferring `Fact B.Nondegenerate` from `B.IsPerfPair` --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor large-import merge-conflict | 67/12 | Mathlib/LinearAlgebra/PerfectPairing/Basic.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean | 2 | 3 | ['github-actions', 'martinwintermath', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34501 | eric-wieser | chore(Data/Fintype/Induction): add a workaround for a bug in `induction` | This works around leanprover/lean4#4246, as Zulip threads frequently run up against this. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 15/1 | Mathlib/Data/Fintype/Option.lean | 1 | 2 | ['github-actions', 'joneugster'] | joneugster | 1 month ago | 32 days ago | 2 days |
| 32872 | JovanGerb | feat(Data/Real/Basic): don't expose the definition of `Real` | This PR refactors the definition of `Real` using the module system, so that `Real` cannot be seen as a structure anymore. --- [](https://gitpod.io/from-referrer/) | t-data merge-conflict | 141/250 | Archive/Imo/Imo2013Q5.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Counterexamples/SeminormLatticeNotDistrib.lean,Counterexamples/TopologistsSineCurve.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean,Mathlib/Data/Real/Basic.lean,MathlibTest/Complex.lean,MathlibTest/Continuity.lean,MathlibTest/Quaternion.lean,MathlibTest/Real.lean | 10 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33295 | AntoineChambert-Loir | feat(Algebra/Central/End): center of the group of automorphisms of a free module | Let `R` be a ring and let `V` be a free `R`-module. We describe the center of the group of linear automorphisms of `V`. The group of linear automorphisms can be summoned either as `V ≃ₗ[R] V`, or as `LinearMap.GeneralLinearGroup R V`, which is a shortcut for `(V →ₗ[R] V)ˣ`. We provide both descriptions. There are three possibilities: * If `V` is trivial, then `V ≃ₗ[R] V` is trivial, and so is its center. * If `V` has rank one, then any basis with a `Unique` type of index furnishes a ring equivalence from `V →ₗ[R] V` with `Rᵐᵒᵖ`, given by right-multiplication on coordinates in the given basis. (This equivalence depends on the choice of a basis.) Then `V ≃ₗ[R] V` is mul-equivalent with `(Rᵐᵒᵖ)ˣ`, hence its center is isomorphic with `Subgroup.center (Rᵐᵒᵖ)ˣ`, or, by commutativity, with `Subgroup.center Rˣ`. * Otherwise, the center of `V ≃ₗ[R] V` consists of homotheties with central ratio, furnishing a group isomorphism from `Subgroup.center (V ≃ₗ[R] V)` with `(Subgroup.center R)ˣ`. When `R` is commutative and `V` is nontrivial, the last two cases give the same answer and the center of `V ≃ₗ[R] V` is isomorphic with `Rˣ`. --- [](https://gitpod.io/from-referrer/) | t-algebra WIP merge-conflict | 594/0 | Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/GeneralLinearGroup/Center.lean | 3 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33505 | urkud | feat(Analysis/Complex): prove Riemann mapping theorem | I'll list dependencies later. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 1579/120 | Mathlib.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/Deriv/Inverse.lean,Mathlib/Analysis/Calculus/FDeriv/Equiv.lean,Mathlib/Analysis/Calculus/FDeriv/OfCompLeft.lean,Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean,Mathlib/Analysis/Complex/RiemannMapping.lean,Mathlib/Analysis/Complex/UnitDisc/Basic.lean,Mathlib/Analysis/Complex/UnitDisc/Shift.lean,Mathlib/Analysis/Normed/Field/Lemmas.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Topology/Algebra/Group/CompactOpen.lean,Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean,Mathlib/Topology/MetricSpace/Algebra.lean,Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean | 16 | 8 | ['SnirBroshi', 'github-actions', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| 34096 | urkud | chore(EMetric/*): rename theorems | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 789/737 | Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Analytic/CPolynomial.lean,Mathlib/Analysis/Analytic/CPolynomialDef.lean,Mathlib/Analysis/Analytic/ChangeOrigin.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Analytic/ConvergenceRadius.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Analytic/Within.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Calculus/IteratedDeriv/ConvergenceOnBall.lean,Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/Analysis/Complex/TaylorSeries.lean,Mathlib/Analysis/Convex/EGauge.lean,Mathlib/Analysis/InnerProductSpace/Projection/Minimal.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Group/Bounded.lean,Mathlib/Analysis/Normed/Group/InfiniteSum.lean,Mathlib/Analysis/Normed/Group/SeparationQuotient.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Module/Connected.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Operator/Completeness.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Analysis/SpecialFunctions/Exponential.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean,Mathlib/Geometry/Manifold/Riemannian/Basic.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean,Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/MeasureTheory/Covering/Differentiation.lean,Mathlib/MeasureTheory/Function/ContinuousMapDense.lean,Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean,Mathlib/MeasureTheory/Function/Egorov.lean,Mathlib/MeasureTheory/Function/LpSpace/Complete.lean,Mathlib/MeasureTheory/Function/SimpleFuncDense.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/OpenPos.lean,Mathlib/NumberTheory/ModularForms/QExpansion.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Topology/Algebra/MetricSpace/Lipschitz.lean,Mathlib/Topology/Baire/CompleteMetrizable.lean,Mathlib/Topology/ContinuousMap/Bounded/Basic.lean,Mathlib/Topology/EMetricSpace/Basic.lean,Mathlib/Topology/EMetricSpace/Defs.lean,Mathlib/Topology/EMetricSpace/Diam.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean,Mathlib/Topology/EMetricSpace/Paracompact.lean,Mathlib/Topology/Instances/ENNReal/Lemmas.lean,Mathlib/Topology/MetricSpace/Basic.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/CantorScheme.lean,Mathlib/Topology/MetricSpace/Cauchy.lean,Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/MetricSpace/Contracting.lean,Mathlib/Topology/MetricSpace/Cover.lean,Mathlib/Topology/MetricSpace/Dilation.lean,Mathlib/Topology/MetricSpace/Gluing.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean,Mathlib/Topology/MetricSpace/Holder.lean,Mathlib/Topology/MetricSpace/IsometricSMul.lean,Mathlib/Topology/MetricSpace/Isometry.lean,Mathlib/Topology/MetricSpace/PartitionOfUnity.lean,Mathlib/Topology/MetricSpace/Perfect.lean,Mathlib/Topology/MetricSpace/Polish.lean,Mathlib/Topology/MetricSpace/Pseudo/Basic.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,Mathlib/Topology/MetricSpace/Snowflaking.lean,Mathlib/Topology/Metrizable/CompletelyMetrizable.lean,Mathlib/Topology/UniformSpace/Cauchy.lean,Mathlib/Topology/UniformSpace/Real.lean | 80 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 26087 | grunweg | feat: a `SliceModel` typeclass for models with corners for embedded submanifolds | We define a new typeclass to denote a model with corners which "embeds" into another one: there are an embedding of the underlying topological spaces and a continuous linear inclusion between the normed spaces, which are compatible with the maps given by the models with corners. This condition is used for defining smooth (immersed and embedded) submanifolds: for `M` to be a submanifold of `N`, to boot their models with corners should be slice models. This will be defined in a future PR. To prove this definition is workable, we construct many basic instances of slice models - each model with corners is one over itself - slice models are transitive - each model with corners I embeds into two products `I.prod J` and `J.prod I` - Euclidean n-half-space embeds into Euclidean n-space - a Euclidean n-quadrant embeds into Euclidean half-space (hence into Euclidean n-space) - if n\leq m, Euclidean n-space embeds into Euclidean m-space [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Infinite-dimensional.20manifolds/near/413117885) ----------- - [x] depends on: #26083 - [x] depends on: #26082 - [x] depends on: #26086 - [x] depends on: #25705 This PR continues the work from #25505. | t-differential-geometry | 234/0 | Mathlib.lean,Mathlib/Geometry/Manifold/SliceModel.lean | 2 | 4 | ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 252 days ago | 2 hours |
| 26174 | grunweg | feat: split continuous linear maps | We define split linear maps and prove their basic properties. Manually migrated from #23186. --- There are two sorries left. One is `ClosedComplemented.prod`; the other relates to the composition of split maps. Help with both is welcome. [This zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Composition.20of.20immersions.20is.20an.20immersion.3A.20infinite-dimensio/with/507300190) contains a proof of the non-trivial sorry. [](https://gitpod.io/from-referrer/) | WIP help-wanted t-analysis | 253/0 | Mathlib.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Splits.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34028 | floor-licker | feat(SimpleGraph): add max-flow/min-cut weak duality | This PR introduces a basic s–t flow setup for undirected SimpleGraphs and proves the standard weak-duality inequality: for any feasible flow f and any s–t cut S, value f ≤ cutCapacity S. This is a small, self-contained lemma I extracted while working on larger graph-theoretic formalizations, in particular, results that will ultimately rely on a full max-flow/min-cut theorem. The full MFMC equality/existence statement is not included here. This is the weak-duality direction (∀ f S, value f ≤ cutCapacity S). | t-combinatorics new-contributor | 169/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/MaxFlowMinCut.lean | 2 | 13 | ['SnirBroshi', 'floor-licker', 'github-actions'] | kmill | 1 month ago | 36 days ago | 45 days |
| 16074 | Rida-Hamadani | feat: combinatorial maps and planar graphs | We define combinatorial maps, then we define planar graph using combinatorial maps. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics | 243/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Planar.lean,Mathlib/Data/CombinatorialMap.lean | 3 | 29 | ['MrBrain295', 'Parcly-Taxel', 'Rida-Hamadani', 'github-actions', 'lambda-fairy', 'leanprover-community-bot-assistant'] | kmill | 1 month ago | unknown | unknown |
| 25841 | mitchell-horner | feat(Combinatorics/SimpleGraph): prove the Kővári–Sós–Turán theorem | Prove the Kővári–Sós–Turán theorem (an upper bound on the Zarankiewicz function) --- - [x] depends on: #19865 - [x] depends on: #20738 - [x] depends on: #27602 - [ ] depends on: #34633 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #20240.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/20240* | t-combinatorics blocked-by-other-PR | 484/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/KovariSosTuran.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Zarankiewicz.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,docs/1000.yaml | 6 | 11 | ['SnirBroshi', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mitchell-horner'] | kmill | 1 month ago | 32 days ago | 37 days |
| 31582 | ADedecker | chore: more flavours of derivatives within the empty set | --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-CI merge-conflict | 33/11 | Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Analytic/ConvergenceRadius.lean,Mathlib/Analysis/Analytic/Within.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Const.lean | 6 | 5 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | grunweg | 1 month ago | unknown | unknown |
| 34257 | grunweg | feat(Tactic/ToFun): allow configuring the name of the generated declaration | This allows removing a few more duplicate lemmas. A few of these lemmas were misnamed (i.e., not using the `fun_` naming convention): we correct this. --- I'm also happy to split the follow-up golfs into a separate PR, if preferred. [](https://gitpod.io/from-referrer/) | t-meta awaiting-author merge-conflict | 31/53 | Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Pow.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Pow.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean,Mathlib/Probability/Distributions/Gaussian/Fernique.lean,Mathlib/Tactic/ToFun.lean | 8 | 12 | ['JovanGerb', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | JovanGerb | 1 month ago | 39 days ago | 13 hours |
| 34106 | ADedecker | feat: map a seminorm along a surjective linear map | --- - [ ] depends on: #34105 - [ ] depends on: #34104 [](https://gitpod.io/from-referrer/) | 501/43 | Mathlib/Algebra/Order/Group/Pointwise/Bounds.lean,Mathlib/Analysis/Normed/Group/Quotient.lean,Mathlib/Analysis/Normed/Group/QuotientSeminorm.lean,Mathlib/Analysis/Normed/Group/Seminorm.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/GaloisConnection/Basic.lean | 6 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 month ago | unknown | unknown | |
| 32609 | PrParadoxy | feat(LinearAlgebra/PiTensorProduct): Relation between nested tensor products and tensor products indexed by dependent sums | Product tensors in `⨂ j : (Σ i, β i), s j.fst j.snd` can be mapped to product tensors in `⨂ i, ⨂ b : β i, s i b`. If the outer index type is finite, the two types are equivalent. This allows the definition of endomorphisms on PiTensorProducts by specifying them on disjoint subsets of the index set. Such constructions are common e.g. in quantum circuits, quantum cellular automata, and renormalization procedures. --- WIP. This PR contains two "requests for comments". Essentially: * Is a single complex-to-define linear equivalence preferable over several less complex ones, which might however be of limited interest by themselves? * Which trade-offs are appropriate to make things computable? - [ ] depends on: #32608 - [x] depends on: #32600 - [x] depends on: #32598 [](https://gitpod.io/from-referrer/) | new-contributor blocked-by-other-PR merge-conflict t-algebra | 683/0 | Mathlib.lean,Mathlib/Data/Sigma/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Nested.lean,Mathlib/LinearAlgebra/PiTensorProduct/Set.lean | 5 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 85 days ago | 10 minutes |
| 29000 | JovanGerb | feat(Tactic/Push): add basic tags and tests | This PR adds basic `@[push]` tags, and expands the `push` test file. --- - [ ] depends on: #21965 - [ ] depends on: #30038 - [ ] depends on: #30039 - [ ] depends on: #30042 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-meta | 290/196 | Archive/Imo/Imo1988Q6.lean,Archive/ZagierTwoSquares.lean,Counterexamples/Phillips.lean,Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/ListOfFn.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Notation/Pi/Defs.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean,Mathlib/CategoryTheory/Galois/Basic.lean,Mathlib/Combinatorics/Colex.lean,Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean,Mathlib/Combinatorics/Hall/Finite.lean,Mathlib/Combinatorics/Matroid/Dual.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Data/Analysis/Filter.lean,Mathlib/Data/Finset/BooleanAlgebra.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Empty.lean,Mathlib/Data/Finset/Filter.lean,Mathlib/Data/Finset/Insert.lean,Mathlib/Data/Finset/Lattice/Basic.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Finset/SDiff.lean,Mathlib/Data/Finset/Sups.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Nat/Cast/Basic.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/PrimeFin.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Data/Set/Prod.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/RootSystem/Base.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean,Mathlib/MeasureTheory/Constructions/Cylinders.lean,Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/MeasureTheory/Covering/Vitali.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean,Mathlib/MeasureTheory/SetAlgebra.lean,Mathlib/NumberTheory/AbelSummation.lean,Mathlib/NumberTheory/Divisors.lean,Mathlib/NumberTheory/ModularForms/DedekindEta.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/Interval/Finset/Defs.lean,Mathlib/Order/Interval/Set/Defs.lean,Mathlib/Order/LiminfLimsup.lean,Mathlib/Order/PartialSups.lean,Mathlib/Order/SetNotation.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Probability/Moments/ComplexMGF.lean,Mathlib/Probability/ProductMeasure.lean,Mathlib/RingTheory/HahnSeries/Summable.lean,Mathlib/RingTheory/Nilpotent/Defs.lean,Mathlib/Topology/Algebra/ProperAction/ProperlyDiscontinuous.lean,Mathlib/Topology/Bornology/BoundedOperation.lean,Mathlib/Topology/Bornology/Constructions.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Compactness/Lindelof.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/ContinuousMap/BoundedCompactlySupported.lean,Mathlib/Topology/EMetricSpace/BoundedVariation.lean,Mathlib/Topology/GDelta/MetrizableSpace.lean,Mathlib/Topology/JacobsonSpace.lean,Mathlib/Topology/Order/Compact.lean,Mathlib/Topology/Order/HullKernel.lean,Mathlib/Topology/Perfect.lean,Mathlib/Topology/Sets/CompactOpenCovered.lean,MathlibTest/push.lean | 87 | 7 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | 157 days ago | 2 hours |
| 27053 | tb65536 | feat: Galois group of `x^n - x - 1` | --- [](https://gitpod.io/from-referrer/) | WIP t-algebra large-import | 270/155 | Archive/Wiedijk100Theorems/AbelRuffini.lean,Mathlib/RingTheory/Polynomial/Morse.lean,Mathlib/RingTheory/Polynomial/Selmer.lean | 3 | 7 | ['AntoineChambert-Loir', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 29792 | robertmaxton42 | feat(RelCWComplex): a (relative, concrete) CW complex is the colimit of its skeleta | Adds: * `RelCWComplex.Subcomplex.isCoherentWith_cover`: a (relative) CW complex is coherent with any collection of subcomplexes that cover. * `RelCWComplex.descBySkeletonLT` and `descBySkeleton`: construct a continuous map from a complex by providing a family of compatible maps from each skeleton and the base. `CWComplex.descBySkeleton` skips the base. - [ ] depends on: #29788 - [ ] depends on: #29790 --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR large-import t-topology | 672/31 | Mathlib/Data/Set/Subset.lean,Mathlib/Data/Set/UnionLift.lean,Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Finite.lean,Mathlib/Topology/CWComplex/Classical/Subcomplex.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,Mathlib/Topology/Coherent.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Constructions/SumProd.lean,Mathlib/Topology/ContinuousMap/Basic.lean | 10 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'scholzhannah'] | nobody | 1 month ago | unknown | unknown |
| 24100 | eric-wieser | feat: restore some explicit binders from Lean 3 | Part of #24099 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author tech debt t-topology t-algebra | 39/42 | Mathlib/Data/FinEnum.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean,Mathlib/Topology/MetricSpace/IsometricSMul.lean,Mathlib/Topology/Metrizable/CompletelyMetrizable.lean,Mathlib/Topology/Metrizable/Uniformity.lean,Mathlib/Topology/Order.lean,Mathlib/Topology/Order/LowerUpperTopology.lean,Mathlib/Topology/UniformSpace/UniformEmbedding.lean | 10 | 3 | ['github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 1 month ago | unknown | unknown |
| 33520 | NoneMore | feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input | There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure. The other direction depends on #33458. --- [](https://gitpod.io/from-referrer/) | t-logic new-contributor | 55/0 | Mathlib/ModelTheory/ElementarySubstructures.lean | 1 | 3 | ['Citronhat', 'NoneMore', 'github-actions'] | awainverse | 1 month ago | 34 days ago | 59 days |
| 34633 | mitchell-horner | feat(Combinatorics/SimpleGraph): define the Zarankiewicz function | Defines the Zarankiewicz function $z(m, n; s, t)$ in terms of bipartite graphs. --- - [ ] depends on: #34632 This comes from splitting up #25841 into smaller PRs. [](https://gitpod.io/from-referrer/) | t-combinatorics blocked-by-other-PR | 247/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Zarankiewicz.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean | 4 | 4 | ['b-mehta', 'github-actions', 'mathlib4-dependent-issues-bot', 'mitchell-horner'] | nobody | 1 month ago | 32 days ago | 36 minutes |
| 34656 | vihdzp | refactor: review `exists_irreducible_of_degree_pos` theorems | This PR does the following: - Rename `exists_irreducible_of_degree_pos` to `exists_irreducible_dvd_of_degree_pos`. The previous name reads as if this were proving that an irreducible polynomial of any positive degree exists. - Deprecate variants which differ only in the spelling of `0 < f.degree`. We already have quite a lot of API for converting between `natDegree` and `degree`, and we should just use that instead. --- [](https://gitpod.io/from-referrer/) | t-ring-theory t-algebra awaiting-zulip | 9/4 | Mathlib/RingTheory/Polynomial/UniqueFactorization.lean | 1 | 4 | ['github-actions', 'tb65536', 'vihdzp'] | nobody | 1 month ago | 30 days ago | 13 hours |
| 34675 | YaelDillies | feat: comultiplication as a bialgebra hom | From Toric --- - [ ] depends on: #32245 [](https://gitpod.io/from-referrer/) | t-ring-theory blocked-by-other-PR toric | 880/3 | Mathlib.lean,Mathlib/RingTheory/Bialgebra/TensorProduct.lean,Mathlib/RingTheory/Coalgebra/CoassocSimps.lean,Mathlib/RingTheory/Coalgebra/TensorProduct.lean,Mathlib/Tactic/Attr/Register.lean,MathlibTest/RingTheory/CoassocSimps.lean | 6 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 month ago | unknown | unknown |
| 30327 | luigi-massacci | feat(Analysis/Distribution/TestFunction): add characterizations of continuity for linear maps on test functions | --- - [ ] depends on: #31806 - [x] depends on: #30309 - [x] depends on: #31470 - [ ] depends on: #30255 - [ ] depends on: #30253 - [ ] depends on: #30240 - [ ] depends on: #30239 - [x] depends on: #30236 - [x] depends on: #30202 - [x] depends on: #30201 - [x] depends on: #30199 - [x] depends on: #30198 - [x] depends on: #30197 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-analysis | 774/5 | Mathlib.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Set/Function.lean | 5 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30329 | luigi-massacci | feat(Analysis/Distribution/TestFunction): integrating against a measure as a continuous linear map on test functions | --- - [ ] depends on: #30004 - [ ] depends on: #32228 - [ ] depends on: #30327 - [x] depends on: #31806 - [x] depends on: #31533 - [x] depends on: #31470 - [ ] depends on: #30255 - [ ] depends on: #30253 - [ ] depends on: #30240 - [ ] depends on: #30239 - [x] depends on: #30236 - [x] depends on: #30202 - [x] depends on: #30201 - [x] depends on: #30199 - [x] depends on: #30198 - [x] depends on: #30197 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-analysis | 999/6 | Mathlib.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Set/Function.lean,Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean,Mathlib/MeasureTheory/Integral/TestAgainst.lean | 7 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 29411 | llllvvuu | feat(LinearAlgebra/Matrix/Rank): rank factorization | The rank factorization derived from `Module.finBasis`.
Co-authored-by: Aristotle Harmonic |
merge-conflict awaiting-author t-algebra | 20/0 | Mathlib/LinearAlgebra/Matrix/Rank.lean,Mathlib/LinearAlgebra/Matrix/ToLin.lean | 2 | 3 | ['github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot'] | jcommelin | 1 month ago | 130 days ago | 46 days |
| 30260 | imbrem | feat(CategoryTheory/Monoidal): added CocartesianMonoidalCategory | As discussed in #21603 and #28718; this implements chosen finite coproducts on top of `AddMonoidalCategory` as defined in #30150 --- - [ ] depends on: #30150 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR large-import new-contributor t-category-theory | 839/125 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Cocartesian/Basic.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/Tactic/ToAdditive/GuessName.lean | 5 | 4 | ['github-actions', 'imbrem', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30258 | imbrem | feat(CategoryTheory/Monoidal): to_additive for proofs using `monoidal` | Building on #30150, this allows us to use `@[to_additive]` on proofs containing `monoidal`, by tagging the lemmas `monoidal` outputs with `@[to_additive]` as appropriate. Testing on my branch [`additive-monoidal-coherence`](https://github.com/imbrem/mathlib4/tree/additive-monoidal-coherence) shows that this works. It is still future work to have either the `monoidal` tactic or a new `add_monoidal` tactic work for `AddMonoidalCategory` instances directly. --- - [ ] depends on: #30150 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR large-import new-contributor t-category-theory | 524/140 | Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/MonoidalComp.lean,Mathlib/Tactic/ToAdditive/GuessName.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30927 | callesonne | feat(Bicategory/Yoneda): add the yoneda pseudofunctor | --- - [ ] depends on: #30926 - [x] depends on: #30895 - [x] depends on: #25901 [](https://gitpod.io/from-referrer/) | t-category-theory | 81/3 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Basic.lean,Mathlib/CategoryTheory/Bicategory/Yoneda.lean,Mathlib/CategoryTheory/Category/Cat.lean,Mathlib/Data/Opposite.lean | 5 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32608 | 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 [](https://gitpod.io/from-referrer/) | new-contributor awaiting-zulip t-algebra | 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 | 1 month ago | 71 days ago | 10 days |
| 29790 | robertmaxton42 | feat(IsCoherentWith) : families of maps from a coherent collection of subspaces lift uniquely to maps from the total space | * Adds `IsCoherentWith.liftCover`, which lifts a compatible family of continuous maps from each member of a coherent set of subspaces to a single continuous map on the whole space. * Adds `IsCoherentWith.liftCover'`, which does the same but for a set of coherent subspaces given as the range of a function into `Set X` rather than as an explicit `Set (Set X).` - [ ] depends on: #29788 --- [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-topology | 350/3 | Mathlib/Data/Set/Subset.lean,Mathlib/Data/Set/UnionLift.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,Mathlib/Topology/Coherent.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Constructions/SumProd.lean,Mathlib/Topology/ContinuousMap/Basic.lean | 7 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32983 | JovanGerb | feat: use `LE.le` for subset relation in `Set`, `Finset`, `PSet`, `ZFSet` | This PR allows the use of `⊆` notation while the underlying constant is `≤`. Similarly for `⊂`/`<`, `⊇`/`≥` and `⊃`/`>`. Hmm, seemingly still a lot of build failures --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 248/159 | Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Support.lean,Mathlib/Combinatorics/Matroid/Basic.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Filter.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Lattice/Basic.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Data/Multiset/ZeroCons.lean,Mathlib/Data/Rat/Star.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Defs.lean,Mathlib/Data/Set/FiniteExhaustion.lean,Mathlib/Data/Set/Sups.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Data/SetNotation.lean,Mathlib/MeasureTheory/SetSemiring.lean,Mathlib/Order/Birkhoff.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/Order/Booleanisation.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CountableDenseLinearOrder.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/SupIndep.lean,Mathlib/RingTheory/WittVector/StructurePolynomial.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/SetTheory/ZFC/PSet.lean,Mathlib/Topology/Compactness/SigmaCompact.lean,Mathlib/Topology/UniformSpace/Basic.lean | 33 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30253 | luigi-massacci | feat(Analysis/Distribution/ContDiffMapSupportedIn): Add a wrapper for iteratedFDeriv on the type of bundled smooth compactly supported maps | Add a wrapper for `iteratedFDeriv` and `fderiv` and on `D_K`, specializing the definitions for `D_K^n` for the case `n = \top` . Co-authored by: @ADedecker --- - [ ] depends on: #30240 - [ ] depends on: #30239 - [x] depends on: #30236 - [x] depends on: #30202 - [x] depends on: #30201 - [x] depends on: #30199 - [x] depends on: #30198 - [x] depends on: #30197 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR merge-conflict t-analysis | 463/18 | Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean | 1 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30255 | luigi-massacci | feat(Analysis/Distribution/ContDiffMapSupportedIn): specialize singleton seminorm family for D_K^n when n finite | Co-authored by: @ADedecker --- - [ ] depends on: #30253 - [ ] depends on: #30240 - [ ] depends on: #30239 - [ ] depends on: #30236 - [ ] depends on: #30202 - [ ] depends on: #30201 - [ ] depends on: #30199 - [ ] depends on: #30198 - [ ] depends on: #30197 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-analysis | 476/3 | Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Set/Function.lean | 3 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 32829 | Hagb | feat(Data/Finsupp/MonomialOrder): weaken `IsOrderedCancelAddMonoid` to `IsOrderedAddMonoid` | `IsOrderedCancelAddMonoid syn` (`.iocam`) can be obtained from `IsOrderedAddMonoid syn` and other fields. --- - [ ] depends on: #32828 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-order | 11/2 | Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Data/Finsupp/MonomialOrder.lean | 2 | 8 | ['Hagb', 'Vierkantor', 'github-actions', 'mathlib4-dependent-issues-bot', 'vihdzp'] | nobody | 1 month ago | unknown | unknown |
| 32742 | 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). --- [](https://gitpod.io/from-referrer/) | new-contributor awaiting-zulip t-measure-probability | 4/0 | Mathlib/MeasureTheory/Constructions/Polish/Basic.lean | 1 | 9 | ['ADedecker', 'LTolDe', 'dupuisf', 'github-actions', 'jcommelin'] | PatrickMassot | 1 month ago | 56 days ago | 11 days |
| 33470 | erdOne | feat: generalize `Polynomial.freeMonic` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 80/52 | Mathlib.lean,Mathlib/Algebra/Polynomial/FreeMonic.lean,Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean | 3 | 2 | ['Ruben-VandeVelde', 'github-actions'] | thorimur | 1 month ago | 40 days ago | 20 days |
| 33109 | felixpernegger | feat(Data/Nat/Choose): Binomial inversion | This PR adds binomial inversion (also called binomial transform), which is a useful method for proving binomial identities. It is tricky to find direct references to binomial inversion, but for example [this](https://en.wikipedia.org/wiki/Binomial_transform#Binomial_convolution) Wikipedia article mentions it ("The formula"). The first theorem ```alternating_sum_choose_mul_of_alternating_sum_choose_mul``` could be refined (we only need the hypothesis ```h``` up to some point), but this seems to needlessly complicate it. | awaiting-author new-contributor t-data | 107/0 | Mathlib.lean,Mathlib/Data/Nat/Choose/Inversion.lean | 2 | 6 | ['dagurtomas', 'felixpernegger', 'github-actions', 'thomaskwaring', 'wwylele'] | dagurtomas | 1 month ago | 40 days ago | 33 days |
| 24000 | YaelDillies | feat: correspondence between affine group schemes and Hopf algebras | Construct `Spec` as a functor from `R`-Hopf algebras to group schemes over `Spec R`, show it is full and faithful and has affine group schemes as essential image.
From Toric, FLT
Co-authored-by: Andrew Yang |
t-algebraic-geometry toric FLT blocked-by-other-PR | 127/0 | Mathlib/AlgebraicGeometry/GroupScheme/HopfAffine.lean | 1 | 4 | ['YaelDillies', 'github-actions', 'kbuzzard', 'mathlib4-dependent-issues-bot'] | nobody | 1 month ago | unknown | unknown |
| 30920 | callesonne | feat(Category/Grpd): define the bicategory of groupoids | This is a migration of #25561 to a fork. --- - [x] depends on: #30132 [](https://gitpod.io/from-referrer/) | t-category-theory large-import merge-conflict | 133/46 | Mathlib/CategoryTheory/Bicategory/InducedBicategory.lean,Mathlib/CategoryTheory/Category/Grpd.lean,Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean | 3 | 6 | ['Jlh18', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 30121 | idontgetoutmuch | feat(Mathlib/Geometry/Manifold): principal fiber bundle core | A structure capturing what it means to be a principal fibre bundle. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-differential-geometry new-contributor | 227/0 | Mathlib.lean,Mathlib/Geometry/Manifold/PrincipalFiberBundle/PrincipalGBundle.lean | 2 | 8 | ['github-actions', 'grunweg', 'idontgetoutmuch', 'mathlib4-merge-conflict-bot'] | hrmacbeth | 1 month ago | 127 days ago | 24 days |
| 27918 | kim-em | chore: refactor WithBot/WithTop as structures | For now we are still relying on `WithBot` and `WithTop` being defeq, but there is no impossible obstacle to converting them *both* to the same structure. This PR begins this effort; the modified files are all compiling, but there are more files that still have problems. Help on this (either ask to push to my branch, PR to my branch, or just adopt the whole thing!) very much appreciated. | file-removed merge-conflict WIP | 971/361 | Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Monoid/ToMulBot.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Data/Countable/Basic.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENat/Defs.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Finset/WithBot.lean,Mathlib/Data/Fintype/WithTopBot.lean,Mathlib/Data/List/MinMax.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Ordmap/Invariants.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean,Mathlib/GroupTheory/ArchimedeanDensely.lean,Mathlib/Logic/Embedding/WithBot.lean,Mathlib/Logic/Equiv/WithBot.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean,Mathlib/MeasureTheory/Group/Measure.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/Order/Category/BddLat.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Hom/WithTopBot.lean,Mathlib/Order/Interval/Basic.lean,Mathlib/Order/Interval/Finset/Defs.lean,Mathlib/Order/Interval/Set/WithBotTop.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/Set.lean,Mathlib/Order/SuccPred/Basic.lean,Mathlib/Order/TypeTags.lean,Mathlib/Order/WithBot/Basic.lean,Mathlib/Order/WithBot/BooleanAlgebra.lean,Mathlib/Order/WithBot/NAry.lean,Mathlib/RingTheory/OrderOfVanishing.lean,Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean,Mathlib/SetTheory/Cardinal/ENat.lean,Mathlib/Topology/Algebra/Ring/Real.lean,Mathlib/Topology/Category/LightProfinite/Sequence.lean,Mathlib/Topology/Compactification/OnePoint/Basic.lean,Mathlib/Topology/Instances/ENat.lean,MathlibTest/lift.lean | 56 | 18 | ['eric-wieser', 'github-actions', 'kim-em', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 29605 | alreadydone | experiment(Algebra): unbundle npow/zpow from Monoid/InvDivMonoid | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-CI WIP | 1527/1020 | Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/BigOperators/Group/Finset/Lemmas.lean,Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean,Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Algebra/BigOperators/Ring/List.lean,Mathlib/Algebra/BigOperators/Ring/Multiset.lean,Mathlib/Algebra/Category/MonCat/ForgetCorepresentable.lean,Mathlib/Algebra/Divisibility/Basic.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/Power.lean,Mathlib/Algebra/Field/Rat.lean,Mathlib/Algebra/Group/Action/Basic.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/Group/Commute/Basic.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/Commute/Units.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Even.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Group/Finsupp.lean,Mathlib/Algebra/Group/Hom/Basic.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Hom/End.lean,Mathlib/Algebra/Group/Hom/Instances.lean,Mathlib/Algebra/Group/Idempotent.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/Group/Invertible/Basic.lean,Mathlib/Algebra/Group/Irreducible/Lemmas.lean,Mathlib/Algebra/Group/Nat/Defs.lean,Mathlib/Algebra/Group/Nat/Hom.lean,Mathlib/Algebra/Group/NatPowAssoc.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/PUnit.lean,Mathlib/Algebra/Group/Pi/Basic.lean,Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/Semiconj/Basic.lean,Mathlib/Algebra/Group/Semiconj/Defs.lean,Mathlib/Algebra/Group/Semiconj/Units.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Subgroup/Lattice.lean,Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean,Mathlib/Algebra/Group/Submonoid/BigOperators.lean,Mathlib/Algebra/Group/Submonoid/Defs.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/Support.lean,Mathlib/Algebra/Group/Torsion.lean,Mathlib/Algebra/Group/TransferInstance.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Group/ULift.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Basic.lean,Mathlib/Algebra/GroupWithZero/Commute.lean,Mathlib/Algebra/GroupWithZero/Conj.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/Divisibility.lean,Mathlib/Algebra/GroupWithZero/Hom.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/GroupWithZero/Semiconj.lean,Mathlib/Algebra/GroupWithZero/ULift.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean,Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/NoZeroSMulDivisors/Defs.lean,Mathlib/Algebra/Order/AddGroupWithTop.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Multiset.lean,Mathlib/Algebra/Order/Group/Abs.lean,Mathlib/Algebra/Order/Group/Action.lean,Mathlib/Algebra/Order/Group/Basic.lean,Mathlib/Algebra/Order/Group/DenselyOrdered.lean,Mathlib/Algebra/Order/Group/Finset.lean,Mathlib/Algebra/Order/Group/Lattice.lean,Mathlib/Algebra/Order/Group/Multiset.lean,Mathlib/Algebra/Order/Group/PosPart.lean,Mathlib/Algebra/Order/Group/Synonym.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean | 162 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 25474 | adomani | test for .lean/.md check | A test PR for #25473. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter file-removed WIP | 10/1 | .github/workflows/lint_and_suggest_pr.yml,Mathlib.lean,Mathlib/NumberTheory/NumberField/CMField.Lean | 3 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 1 month ago | unknown | unknown |
| 33991 | grunweg | test: pretty-printing of class abbrev | Lake build fails with an error in batteries: what am I doing wrong? --- [](https://gitpod.io/from-referrer/) | merge-conflict file-removed large-import WIP | 118/303 | .github/workflows/daily.yml,Mathlib.lean,Mathlib/Algebra/Group/Action/TransferInstance.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Notation/Lemmas.lean,Mathlib/Algebra/Notation/Pi/Defs.lean,Mathlib/Algebra/Notation/Prod.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/Unbundled/Basic.lean,Mathlib/CategoryTheory/Limits/Yoneda.lean,Mathlib/Data/Finite/Defs.lean,Mathlib/Data/Int/Cast/Pi.lean,Mathlib/Data/Int/Init.lean,Mathlib/Data/List/Flatten.lean,Mathlib/Data/List/GetD.lean,Mathlib/Data/List/Indexes.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Init.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean,Mathlib/Lean/Meta/Simp.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/GaloisConnection/Defs.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean,Mathlib/SetTheory/Cardinal/Defs.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/FunProp/Decl.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Push/Attr.lean,Mathlib/Tactic/Widget/LibraryRewrite.lean,Mathlib/Topology/Defs/Basic.lean,Mathlib/Util/AssertExists.lean,MathlibTest/AssertExists.lean,MathlibTest/CalcQuestionMark.lean,MathlibTest/DeprecatedSyntaxLinter.lean,MathlibTest/DirectoryDependencyLinter/Test.lean,MathlibTest/EmptyLine.lean,MathlibTest/ExtractGoal.lean,MathlibTest/HaveLetLinter.lean,MathlibTest/LibrarySearch/IsCompact.lean,MathlibTest/LintStyle.lean,MathlibTest/TacticAnalysis.lean,MathlibTest/UnusedInstancesInType.lean,MathlibTest/Util/PrintSorries.lean,MathlibTest/WhitespaceLinter.lean,MathlibTest/aesop_cat.lean,MathlibTest/eqns.lean,MathlibTest/fast_instance.lean,MathlibTest/globalAttributeIn.lean,MathlibTest/hintAll.lean,MathlibTest/jacobiSym.lean,MathlibTest/slim_check.lean,MathlibTest/toAdditive.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 61 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34484 | grunweg | test: debugging mfderiv_smul erws | Not meant for landing. --- - [ ] depends on: #34262 [](https://gitpod.io/from-referrer/) | t-differential-geometry blocked-by-other-PR WIP | 43/0 | Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 month ago | 35 days ago | 6 seconds |
| 31110 | bryangingechen | ci: don't delete merged branches | This will only affect PRs that are not from forks (e.g. this one). The motivation is that #30913 was closed automatically due to its target branch deleted after #30912 was merged. See also [#PR reviews > #30913 feat(Computability/Language):add subtraction notation @ 💬](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2330913.20feat.28Computability.2FLanguage.29.3Aadd.20subtraction.20notation/near/548052556). Looking at the history, it looks like this option hasn't been changed since we added bors to mathlib3: https://github.com/leanprover-community/mathlib3/pull/2322 --- [](https://gitpod.io/from-referrer/) | awaiting-author CI merge-conflict | 1/1 | bors.toml | 1 | 5 | ['bryangingechen', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 1 month ago | 123 days ago | 17 hours |
| 33707 | jcommelin | ci: add commit verification for transient and automated commits | This PR adds a CI workflow that verifies PRs correctly use transient and automated commits, and provides reviewers with a clear summary of which commits need human review.
Commit types:
- **Substantive commits**: Regular commits requiring human review
- **Automated commits** (`x: |
CI merge-conflict | 685/0 | .github/workflows/commit_verification.yml,scripts/verify_commits.sh,scripts/verify_commits_summary.sh | 3 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 31102 | JOSHCLUNE | feat: require LeanHammer | Experimenting with adding LeanHammer as a mathlib dependency --- [](https://gitpod.io/from-referrer/) | merge-conflict new-contributor t-meta | 61/4 | Mathlib/Tactic/Common.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,MathlibTest/Hammer.lean,lake-manifest.json,lakefile.lean | 5 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33431 | gululu996-ui | feat(Combinatorics/SimpleGraph/Bipartite): characterize bipartite simple graphs by even cycles | Add the classical characterization of bipartite simple graphs: a simple graph is bipartite if and only if every cycle has even length. Previously, mathlib has the definition of `IsBipartite` for `SimpleGraph` and various lemmas about bipartite graphs, but it does not provide this equivalence in a single theorem, so users have to reprove or reassemble it from existing results. Prove the forward direction by showing a 2-coloring alternates along any walk, so every cycle must have even length. Prove the converse by showing that if an odd cycle exists then no bipartition is possible, hence if all cycles are even the graph admits a bipartition. | new-contributor t-combinatorics awaiting-author | 186/1 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean | 1 | 5 | ['NickAdfor', 'github-actions', 'jcommelin'] | kmill | 1 month ago | 32 days ago | 26 days |
| 34007 | martinwintermath | feat(Algebra/Module/Submodule/Dual): dual operator for submodules | Add new file `Dual.lean` that defines the dual operator for submodules. The main definition is * `Submodule.dual`: given a bilinear pairing `p` between two `R`-modules `M` and `N` and a set `s` in `M`, `Submodule.dual p s` is the submodule in `N` consisting of all points `y` such that `0 = p x y` for all `x ∈ s`. This implementation of the `dual` operator for submodules is written to parallel the implementation of `PointedCone.dual`. Include some additional results: * theorems that represent the dual as the kernel of a linear map * theorems for the relation between dual and the `dualAnnihilator` and `dualCoannihilator` of a submodule. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor awaiting-author | 236/0 | Mathlib.lean,Mathlib/Algebra/Module/Submodule/Dual.lean | 2 | 5 | ['github-actions', 'joelriou', 'martinwintermath'] | joelriou | 1 month ago | 32 days ago | 14 days |
| 33928 | jsm28 | feat(Combinatorics/Tiling/TileSet): indexed families of tiles | Define the type `TileSet` for indexed families of tiles (in a discrete context), and some associated definitions (including `symmetryGroup`) and API lemmas. `TileSet` can be used for tilings of the whole space; for tilings of part of the space; for patches of tiles (extracted from a tiling by considering tiles meeting some set of points, or considered on their own without extracting from a tiling); for multiple tilings (covering the space more than once). In particular, the fact that people study multiple tilings provides a clear justification for using indexed families rather than sets of tiles, and basic definitions and API lemmas generally work for all these different uses of `TileSet` (sometimes with weak constraints such as tiles being finite, nonempty and only having finitely many tiles meeting any point of the space). Definitions for saying e.g. "this `TileSet` is a tiling of the whole space" are to be included in subsequent files in subsequent PRs. From AperiodicMonotilesLean. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 460/0 | Mathlib.lean,Mathlib/Combinatorics/Tiling/TileSet.lean | 2 | 22 | ['b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] | kmill | 1 month ago | 30 days ago | 49 days |
| 34473 | JovanGerb | feat: remove `Membership` instance for `SetLike` | This PR is an attempt to change the underlying expression of `x ∈ s` when `s` is not a `Set α`, but a `SetLike`, such as `Finset α` or `Subgroup α`. Instead of having a `Membership` instance, we use the membership instance on `Set α`, combined with the coercion to `Set α`. This has various benefits - There is now only one form instead of two to say the same thing. This saves us a lot of rewrites that will now become syntactic equalities. - It is not needed anymore to create a `mem_` lemma for every single `coe_` lemma in order to maintain simp confluence Unfortunately, doing this refactor is going to be a very big task, simply because so many proofs break as a result of `simp` now trying to simplify away the coercion where there was no coercion before. --- [](https://gitpod.io/from-referrer/) | t-set-theory merge-conflict | 136/96 | Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Group/Pointwise/Set/BigOperators.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/Subsemigroup/Defs.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Erase.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Insert.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/Finset/NAry.lean,Mathlib/Data/Finset/NoncommProd.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Finset/Preimage.lean,Mathlib/Data/Finset/Prod.lean,Mathlib/Data/Finset/Sigma.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Fintype/EquivFin.lean,Mathlib/Data/Set/Finite/Basic.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/LinearAlgebra/Span/Defs.lean,Mathlib/Logic/Embedding/Basic.lean,Mathlib/Order/Closure.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Finset.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/Interval/Finset/Defs.lean,MathlibTest/set_like.lean | 40 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34271 | gasparattila | feat(Topology/Sets): second-countability of `(Nonempty)Compacts` | --- - [ ] depends on: #34266 - [ ] depends on: #34268 [](https://gitpod.io/from-referrer/) | t-topology blocked-by-other-PR | 308/93 | Mathlib/Topology/Bases.lean,Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/UniformSpace/Closeds.lean | 5 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34703 | martinwintermath | Generalizing orthogonalBilin | --- [](https://gitpod.io/from-referrer/) | new-contributor | 49/25 | Mathlib/Analysis/InnerProductSpace/Orthogonal.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean | 3 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 34171 | SnirBroshi | feat(Combinatorics/SimpleGraph/Hasse): Define the Eulerian path of a path graph | --- Such statements are left for a future PR, since they add imports so we probably want to split them into a separate file: ```lean theorem IsEulerian.ofPathGraph : ofPathGraph n |>.IsEulerian := by sorry theorem IsHamiltonian.ofPathGraph : ofPathGraph n |>.IsHamiltonian := by sorry theorem exists_path_iff_isContained_pathGraph : (∃ (u v : V) (w : G.Path u v), w.val.support.length = n) ↔ pathGraph n ⊑ G := by sorry ``` (the last statement also requires #33121, this PR gives the right-to-left implication and that PR gives the left-to-right) [](https://gitpod.io/from-referrer/) | t-combinatorics | 37/1 | Mathlib/Combinatorics/SimpleGraph/Hasse.lean | 1 | 9 | ['SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] | kmill | 1 month ago | 41 days ago | 42 days |
| 34716 | CoolRmal | feat: a right continuous strongly adapted process is progressively measurable | --- [](https://gitpod.io/from-referrer/) | WIP brownian t-measure-probability | 164/0 | Mathlib/Probability/Process/Adapted.lean | 1 | 2 | ['CoolRmal', 'github-actions'] | nobody | 1 month ago | unknown | unknown |
| 31008 | RemyDegenne | refactor: generalize the index of the process in the Doob decomposition | Generalize the index set for the Doob decomposition of an adapted process from Nat to a type with `LinearOrder`, `LocallyFiniteOrder`, `OrderBot`, `SuccOrder` (there is an order iso from that type to an interval of Nat). Motivation: to prove the Doob-Meyer decomposition we want to take a process indexed by [0,1] and consider sub-processes indexed by the dyadic points k*2^{-n} for a fixed n. We could use a process indexed by Nat, but we would have to invent values for k > 2^n while respecting the other properties of the process, and being able to index by the dyadics directly seems easier. --- [](https://gitpod.io/from-referrer/) | WIP t-measure-probability | 341/192 | Mathlib/Order/SuccPred/LinearLocallyFinite.lean,Mathlib/Probability/Martingale/Basic.lean,Mathlib/Probability/Martingale/BorelCantelli.lean,Mathlib/Probability/Martingale/Centering.lean,Mathlib/Probability/Martingale/OptionalStopping.lean,Mathlib/Probability/Martingale/Upcrossing.lean,Mathlib/Probability/Process/Adapted.lean | 7 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34454 | vihdzp | refactor: `logMahlerMeasure_eq_log_MahlerMeasure` → `log_mahlerMeasure` | This other direction makes more sense as a simp lemma. This also fixes some bad capitalization. --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author | 13/8 | Mathlib/Analysis/Polynomial/MahlerMeasure.lean | 1 | 5 | ['fbarroero', 'github-actions', 'j-loreaux', 'vihdzp'] | nobody | 1 month ago | 35 days ago | 1 day |
| 30185 | 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 awaiting-author | 21/0 | MathlibTest/EllipticCurve.lean | 1 | 8 | ['alreadydone', 'github-actions', 'joneugster', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | joneugster | 1 month ago | 32 days ago | 1 day |
| 33044 | bryangingechen | ci: also get cache for parent commit | cf. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib.20has.20moved.20to.20the.20new.20module.20system/near/563452000 --- [](https://gitpod.io/from-referrer/) | awaiting-author CI merge-conflict | 84/8 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml | 4 | 10 | ['bryangingechen', 'github-actions', 'jcommelin', 'joneugster', 'mathlib-bors', 'mathlib-merge-conflicts'] | joneugster | 1 month ago | 48 days ago | 26 days |
| 31809 | ADedecker | feat: differentiation of test function as a CLM | Co-authored-by: @luigi-massacci --- - [x] depends on: #31806 - [ ] depends on: #30240 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-analysis merge-conflict | 342/2 | Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean | 2 | 6 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 34375 | jvanwinden | feat(MeasureTheory/Function/AEEqOfLIntegral): introduce lemmas for rewriting a.e. inequalities | Introduce the following lemmas: - ae_le_const_iff_forall_gt_imp_ae_lt, - ae_const_le_iff_forall_lt_imp_ae_gt, - ae_le_const_iff_forall_gt_imp_ae_le, - ae_const_le_iff_forall_lt_imp_ae_ge, which can be used get an epsilon of room in a.e. inequalities, with the epsilon being outside the a.e. quantifier. The 'le/ge' variants require a dense ordering. --- [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 24/0 | Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean | 1 | 4 | ['github-actions', 'jvanwinden', 'urkud'] | kex-y | 1 month ago | 38 days ago | 38 days |
| 30620 | plp127 | feat: copy LE and LT on preorder and partial order | Adds `Preorder.copy` and `PartialOrder.copy` for replacing the le and lt with provably equal ones. --- [](https://gitpod.io/from-referrer/) | t-order awaiting-author | 22/0 | Mathlib/Order/Defs/PartialOrder.lean | 1 | 7 | ['Vierkantor', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] | Vierkantor | 1 month ago | 98 days ago | 19 days |
| 34000 | grunweg | chore: golf using fun_prop [foo] syntax | --- [](https://gitpod.io/from-referrer/) | WIP merge-conflict | 14/8 | Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/Analysis/SpecialFunctions/Exp.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/InformationTheory/KullbackLeibler/KLFun.lean,MathlibTest/fun_prop_dev.lean | 6 | 6 | ['Vierkantor', 'github-actions', 'grunweg', 'mathlib-merge-conflicts'] | nobody | 1 month ago | unknown | unknown |
| 34188 | vihdzp | feat: abbrev for `Std.Total (· ≤ ·)` | Apart from saving keystrokes, this ensures that the totality condition gets dualized by `to_dual` to itself, rather than to the equivalent and less idiomatic `Std.Total (· ≥ ·)`. --- [](https://gitpod.io/from-referrer/) | t-order merge-conflict | 67/58 | Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Data/Char.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/Ordmap/Invariants.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Compare.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Filter/FilterProduct.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/PropInstances.lean,Mathlib/Order/Quotient.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/Shrink.lean,Mathlib/Order/UpperLower/CompleteLattice.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean | 21 | 8 | ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] | Vierkantor | 1 month ago | 28 days ago | 13 days |
| 34291 | YellPika | feat(Data): a monad for partial computations | This is the code corresponding to [mathlib4 > A monad for partial computations](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/A.20monad.20for.20partial.20computations/with/569619800). Not currently intended to be merged. This PR depends on #33941. The only changes relevant to this discussion are in `OmegaPart.lean`, `OmegaProp.lean`, and `Quot.lean`. # Original Message Inspired by @**Aaron Liu**'s comments in #**mathlib4>deprecate Mathlib.Data.Nat.PartENat?@538009243** and #**Is there code for X?>Divergence monad@538020049** I made an attempt at constructing a monad for partial computations with a computable `OmegaCompletePartialOrder` instance (neither `Option` nor `Part` support this use case). My solution consists of three parts. **A computable version of `Quotient.choice`.** As mentioned in #**lean4>Quot.lift for dependent products@467436416** , the "obvious" computational interpretation of `Quotient.choice : (∀i:I, @Quotient (A i) …) → @Quotient (∀i:I, A i)` is not sound. However, we _can_ provide a sound computational interpretation when we restrict `I` to `ℕ`: ```lean unsafe def Quotient.countableChoice_impl {α : Nat → Type*} {S : ∀ i, Setoid (α i)} (f : ∀ i, Quotient (S i)) : @Quotient (∀ i, α i) (by infer_instance) := Quotient.lift₂ (fun z s ↦ ⟦fun | .zero => z | .succ n => s n⟧) (fun z₁ s₁ z₂ s₂ h₁ h₂ ↦ by apply sound rintro ⟨_|n⟩ · apply h₁ · apply h₂) (f 0) (countableChoice_impl (fun n ↦ f n.succ)) @[implemented_by Quotient.countableChoice_impl] def Quotient.countableChoice {α : Nat → Type*} {S : ∀ i, Setoid (α i)} (f : ∀ i, Quotient (S i)) : @Quotient (∀ i, α i) (by infer_instance) := Quotient.choice f ``` My justification for the soundness of this implementation comes from the fact that only uses existing (sound and computable) functions + general recursion. The implementation is found [here](https://github.com/YellPika/mathlib4/blob/99d38f164a97c7aa225283ef6016f0279419a994/Mathlib/Data/Quot.lean#L430) (it uses `unquot` instead of recursion for performance reasons, but should be equivalent). **A type of semi-computable propositions.** Next, I define a type of semi-computable propositions `ΩProp` as a quotient of the type of boolean sequences `(ℕ → Bool) / ≈`, where `p ≈ q ≝ (∃n, p n) ↔ (∃n, q n)`. A sequence is interpreted as "true" if at least one element in the sequence is `true`, and the quotient relation ensures that we cannot observe the difference between different "true" sequences. The `ΩProp` type has a (computable) `OmegaCompletePartialOrder`, and `Quotient.countableChoice` is used in the implementation of `ωSup`. The implementation of this type is [here](https://github.com/YellPika/mathlib4/blob/quot-choice-compute/Mathlib/Data/OmegaProp.lean). **A type of semi-computable computations.** Finally, I define the type `ΩPart A` of semi-computable computations returning a value of type `A`. The definition of `ΩPart` is the same as `Part` with `ΩProp` swapped for `Prop`. Again, `ΩPart A` has a (computable) `OmegaCompletePartialOrder` instance. The implementation can be found [here](https://github.com/YellPika/mathlib4/blob/quot-choice-compute/Mathlib/Data/OmegaPart.lean). This was mainly just a fun experiment and the code is not ready to be (or perhaps should not be) put in mathlib. I thought I should post it here to see if 1) there is any interest or 2) an implementation already exists that has escaped my notice. | new-contributor large-import merge-conflict | 1157/40 | Mathlib/Data/OmegaPart.lean,Mathlib/Data/OmegaProp.lean,Mathlib/Data/Quot.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/ScottContinuity.lean | 5 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 1 month ago | unknown | unknown |
| 34202 | or4nge19 | feat(Topology/MetricSpace): annuli in (pseudo)(e)metric spaces | From the Carleson project.
Co-authored-by: James Sundstrom |
carleson t-topology awaiting-author | 288/0 | Mathlib.lean,Mathlib/Topology/MetricSpace/Annulus.lean | 2 | 23 | ['MichaelStollBayreuth', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'or4nge19'] | nobody | 1 month ago | 28 days ago | 10 days |
| 32570 | ksenono | feat(Combinatorics/SimpleGraph): bipartite subgraphs and vertex-disjoint graphs for Konig's theorem | --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 22/0 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 2 | 19 | ['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono', 'vlad902'] | kmill | 1 month ago | 28 days ago | 80 days |
| 32555 | ksenono | feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem | --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 127/0 | Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean | 2 | 24 | ['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono'] | awainverse | 1 month ago | 28 days ago | 80 days |
| 34636 | CoolRmal | feat(MeasureTheory/Analysis): the Fourier coefficients of a function can be computed by integrating over a box | The main result proved in this PR is `integral_preimage`, which is the analogue of the one-dimensional result: [UnitAddCircle.integral_preimage](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.html#UnitAddCircle.integral_preimage). This theorem allows us to compute an integral over UnitAddTorus as an integral over a box in the Euclidean space. As an application, I prove that the Fourier coefficients of a function can be computed by integrating over a box. The main motivation for this PR is the higher dimensional Poisson summation formula, which is needed in the [Sphere Packing project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean). --- [](https://gitpod.io/from-referrer/) | t-measure-probability | 80/0 | Mathlib/Analysis/Fourier/AddCircleMulti.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean | 2 | 1 | ['github-actions'] | RemyDegenne | 1 month ago | 31 days ago | 31 days |
| 34053 | christian-oudard | feat: Add error function (erf) and complementary error function (erfc) | ## Summary I was doing some finance math and needed the Error Function, so I thought I'd contribute it. ### Main definitions * `Real.erf`: The error function, defined as `(2/√π) ∫₀ˣ e^(-t²) dt` * `Real.erfc`: The complementary error function, defined as `1 - erf x` ### Main results * `Real.erf_zero`: `erf 0 = 0` * `Real.erf_neg`: `erf` is an odd function: `erf (-x) = -erf x` * `Real.erf_tendsto_one`: `erf x → 1` as `x → ∞` * `Real.erf_tendsto_neg_one`: `erf x → -1` as `x → -∞` * `Real.erf_le_one`: `erf x ≤ 1` for all `x` * `Real.neg_one_le_erf`: `-1 ≤ erf x` for all `x` * `Real.deriv_erf`: `deriv erf x = (2/√π) * exp(-x²)` * `Real.differentiable_erf`: `erf` is differentiable * `Real.continuous_erf`: `erf` is continuous * `Real.strictMono_erf`: `erf` is strictly monotone Also adds `erf` to `docs/overview.yaml` under Special Functions. --- - [x] Builds successfully - [x] `lake exe runLinter` passes - [x] `lake exe mk_all --check` passes | t-analysis new-contributor awaiting-author | 333/0 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Erf.lean,docs/overview.yaml | 3 | 18 | ['SnirBroshi', 'christian-oudard', 'github-actions', 'j-loreaux', 'plp127'] | j-loreaux | 1 month ago | 28 days ago | 14 days |
| 33599 | nielstron | feat(Computability/ContextFreeGrammar): closure under union | --- This PR picks up https://github.com/leanprover-community/mathlib4/pull/13514 and resolves the outstanding errors. - [ ] depends on: #33592 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-computability new-contributor | 498/0 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | YaelDillies | 27 days ago | 46 days ago | 10 days |
| 33601 | nielstron | feat(Computability/ContextFreeGrammar): Concatenation of CFGs is CFG | --- - [ ] depends on: #33599 - [ ] depends on: #33592 [](https://gitpod.io/from-referrer/) | t-computability new-contributor blocked-by-other-PR | 941/0 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 27 days ago | unknown | unknown |
| 33592 | nielstron | feat(Computability/ContextFreeGrammar): mapping between two types of nonterminal symbols | This PR picks up https://github.com/leanprover-community/mathlib4/pull/15895 and resolves the failing lemma by redefining Good symbols. --- I checked that https://github.com/leanprover-community/mathlib4/pull/13514 builds correctly when based on this build. PR for that is #33599 This is my first contribution please let me know of any changes I should outline. [](https://gitpod.io/from-referrer/) | awaiting-author t-computability new-contributor | 158/0 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 27 | ['YaelDillies', 'github-actions', 'madvorak', 'nielstron'] | nobody | 27 days ago | 46 days ago | 10 days |
| 33108 | alreadydone | feat(Topology): `π₁(E⧸G)⧸π₁(E) ≃* G` for `E` path connected | TODO: + finish last step (currently only `π₁(E⧸G) →* G` has been constructed) + characterization of the homomorphism + change of basepoint `e : E` leads to conjugation by `G` + if `G` is abelian then independent of choice of basepoint (and we can remove the ᵐᵒᵖ) + $\pi_1(S^1)\cong\mathbb{Z}$ + define winding number --- - [x] depends on: #7596 [](https://gitpod.io/from-referrer/) | t-algebraic-topology WIP t-topology merge-conflict | 634/45 | Mathlib.lean,Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean,Mathlib/GroupTheory/GroupAction/SubMulAction.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/Group/Pointwise.lean,Mathlib/Topology/Covering/AddCircle.lean,Mathlib/Topology/Covering/Basic.lean,Mathlib/Topology/Covering/Quotient.lean,Mathlib/Topology/Homotopy/Lifting.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/Instances/AddCircle/Defs.lean | 16 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 27 days ago | unknown | unknown |
| 19860 | YaelDillies | refactor: review the `simps` projections of `OneHom`, `MulHom`, `MonoidHom` | Make `simps` generate `coe_concreteHom` rather than`concreteHom_apply`. From FLT --- In fact, I would love to have both the `coe_` and `_apply` projections simultaneously and also to not have to specify ` simps (config := .asFn))` every single time we want to generate the `coe_` projection, but `simps ` seems to not be able to do that? cc @fpvandoorn I must say, after four years of working on mathlib, I still don't understand how one is supposed to use `simps`. [](https://gitpod.io/from-referrer/) | WIP t-algebra | 100/123 | Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/WithOne/Basic.lean,Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/Algebra/Module/End.lean,Mathlib/GroupTheory/NoncommCoprod.lean | 8 | 12 | ['fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 27 days ago | unknown | unknown |
| 21031 | YaelDillies | chore: get rid of generic hom coercions | --- [](https://gitpod.io/from-referrer/) | WIP | 166/161 | Mathlib/Algebra/Group/Equiv/Basic.lean,Mathlib/Algebra/Group/Equiv/Defs.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/Algebra/GroupWithZero/Hom.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Ring/Hom/Defs.lean,Mathlib/Logic/Equiv/Defs.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/RingTheory/Valuation/Basic.lean | 12 | 18 | ['Vierkantor', 'YaelDillies', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'urkud'] | Vierkantor | 27 days ago | unknown | unknown |
| 34191 | IlPreteRosso | feat(Topology/Algebra/InfiniteSum): Discrete Convolution API 1st PR | Defines the very basics of the discrete convolution API. In analogy with [MeasureTheory.Convolution](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Convolution.html#MeasureTheory.convolution). Main definitions include - `mulFiber`, `convolution`, `ConvolutionExists`, `ConvolutionExists.add_distrib`, `ConvolutionExistsAt.smul_convolution`, `mulFiber_swapEquiv`, `convolution_comm` RM: - The main docstring is *as is* - Next step is triple sum intrastrcutre + `assoc` theorems for convolution (long) Continues the work from #33411 and #33410 (splitting into shorter PRs, carries over the modifications from previous reviews) | t-topology new-contributor | 277/0 | Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/DiscreteConvolution.lean | 2 | 18 | ['IlPreteRosso', 'github-actions', 'j-loreaux'] | PatrickMassot | 27 days ago | 27 days ago | 36 days |
| 31508 | FLDutchmann | feat(Tactic): `algebra` tactic. | Implement tactic for normalizing expressions in an algebra over a ring. Handles all of the normal ring operations as well as scalar multiplication over a fixed base ring. The core of this tactic is used by a larger suite of tactics (see #30374). --- - [x] depends on: #31506 - [ ] depends on: #34734 For full disclosure, most of the lemma statements in `Lemmas.lean` were generated by an LLM. [](https://gitpod.io/from-referrer/) | t-meta awaiting-author blocked-by-other-PR merge-conflict | 2484/1163 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Algebra/Basic.lean,Mathlib/Tactic/Algebra/Lemmas.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Tactic/Ring/Common.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Tactic/Ring/RingNF.lean,MathlibTest/Algebra.lean,MathlibTest/ring.lean,scripts/noshake.json | 11 | 18 | ['FLDutchmann', 'Vierkantor', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | Vierkantor | 27 days ago | unknown | unknown |
| 34148 | FLDutchmann | feat: refactor `ring` to extract common behaviour with `algebra` | --- [](https://gitpod.io/from-referrer/) | t-meta merge-conflict | 2489/1107 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Algebra/Basic.lean,Mathlib/Tactic/Algebra/Lemmas.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Tactic/Ring/Common.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Tactic/Ring/RingNF.lean,MathlibTest/Algebra.lean,MathlibTest/ring.lean,scripts/noshake.json | 11 | 6 | ['FLDutchmann', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | nobody | 27 days ago | unknown | unknown |
| 33619 | vihdzp | refactor: flip `Ixx_def` theorems | This sort of `_def` theorems are generally written so that the defined constant is on the LHS. --- [](https://gitpod.io/from-referrer/) | t-order awaiting-CI merge-conflict | 9/11 | Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Order/Interval/Set/Defs.lean,Mathlib/Topology/Path.lean | 3 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 26 days ago | unknown | unknown |
| 33080 | sinhp | feat(Category Theory): Cartesian Natural Transformation | This PR defines cartesian natural transformations between functors and proves they are closed under horizontal and vertical composition. Also we prove the following results:
- `NatTrans.isCartesian_of_discrete` shows that any natural transformation between functors from a
discrete category is cartesian.
- `NatTrans.isCartesian_of_isIso` shows that any natural isomorphism is cartesian.
- `NatTrans.isIso_of_isCartesian_of_isIso_app_terminal` shows that a cartesian natural
transformation is an isomorphism if its component at a terminal object is an isomorphism.
- `NatTrans.isCartesian_of_isPullback_isTerminal_from` shows that a natural transformation is
cartesian if all its naturality squares to the terminal object are pullback squares.
This material is adapted from the polynomial functors project developed during the
Trimester "Prospects of Formal Mathematics" at the Hausdorff Institute (HIM) in Bonn:
https://github.com/sinhp/Poly
Co-authored-by: Wojciech Nawrocki |
t-category-theory awaiting-author | 145/0 | Mathlib.lean,Mathlib/CategoryTheory/NatTransCartesian.lean | 2 | 8 | ['dagurtomas', 'github-actions', 'joelriou', 'robin-carlier', 'sinhp'] | nobody | 26 days ago | 62 days ago | 3 days |
| 34427 | CoolRmal | feat(MeasureTheory): Strong measurability is preserved under division in a group with zero | I proved that if `f,g` are two strongly measurable functions taking values in a group with zero, then `f/g` is still strongly measurable. As mentioned over here [#Is there code for X? > StronglyMeaurable.div₀](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/StronglyMeaurable.2Ediv.E2.82.80/with/569988425), I probably should also change the name of [MeasureTheory.StronglyMeasurable.div](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.html#MeasureTheory.StronglyMeasurable.div) into `StronglyMeasurable.div'` according to the docstring of [ContinuousDiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/Defs.html#ContinuousDiv). If I do this, then @to_additive will generate a theorem named `StronglyMeasurable.sub'`, which is a bit weird, so I am unsure whether I should change these names. --- [](https://gitpod.io/from-referrer/) | t-measure-probability | 37/8 | Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/Probability/Process/Adapted.lean | 3 | 3 | ['CoolRmal', 'EtienneC30', 'github-actions'] | kex-y | 26 days ago | 26 days ago | 35 days |
| 34397 | Parcly-Taxel | feat: integral representation of the AGM | --- - [x] depends on: #32892 | t-analysis awaiting-author | 294/0 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Integrals/ArithmeticGeometricMean.lean | 2 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot', 'sgouezel'] | sgouezel | 26 days ago | 26 days ago | 7 days |
| 34018 | CoolRmal | feat: series representation of cosecant | This PR adds 1. Some trignometric identities. 2. `tprod_pnat_odd_mul_even`, which is an invariant of [tprod_even_mul_odd](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/InfiniteSum/NatInt.html#tprod_even_mul_odd) 3. a series representation of `fun z => π / sin (π * z)`. An outline of the proof can be found in the PNT project: https://alexkontorovich.github.io/PrimeNumberTheoremAnd/blueprint/zeta-chapter.html#lem:abadeuleulmit1 --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author | 140/0 | Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean | 4 | 12 | ['CBirkbeck', 'CoolRmal', 'erdOne', 'github-actions', 'loefflerd'] | kex-y | 26 days ago | 26 days ago | 20 days |
| 33832 | alreadydone | feat(Algebra): localization preserves unique factorization | --- - [x] depends on: #33851 [](https://gitpod.io/from-referrer/) | t-algebra maintainer-merge awaiting-author | 143/12 | Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/UniqueFactorization.lean,Mathlib/RingTheory/Localization/Defs.lean | 6 | 11 | ['Vierkantor', 'dagurtomas', 'github-actions', 'mathlib4-dependent-issues-bot'] | Vierkantor and dagurtomas | 26 days ago | 26 days ago | 15 days |
| 34726 | GrigorenkoPV | feat(Analysis/SpecialFunctions/Trigonometric/Basic): sin and cos of multiples of π / 3 | --- Merge of https://github.com/leanprover-community/mathlib4/pull/26349 [](https://gitpod.io/from-referrer/) | new-contributor | 159/0 | Mathlib/Algebra/Order/Monoid/NatCast.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Data/Nat/Cast/Defs.lean,MathlibTest/trigonometry.lean | 4 | 1 | ['github-actions'] | nobody | 26 days ago | unknown | unknown |
| 34892 | kim-em | experiment: by claude | 88/0 | claude.md | 1 | 1 | ['github-actions'] | nobody | 26 days ago | unknown | unknown | ||
| 34709 | dennj | feat(Analysis/ODE): add discrete Grönwall inequality | ## Summary Add discrete Grönwall inequality to `Mathlib/Analysis/ODE/DiscreteGronwall.lean` Provides bounds for recurrence inequalities of the form `u(n+1) ≤ c(n) * u(n) + b(n)` ### Main results - `discrete_gronwall_prod_general`: Product form working over any linearly ordered commutative ring - `prod_one_add_Ico_mono`: Auxiliary lemma for product comparisons over subintervals - `discrete_gronwall`: Classical exponential bound `u(n) ≤ (u(n₀) + ∑ b(k)) * exp(∑ c(i))` (ℝ-specific) - `discrete_gronwall_Ico`: Uniform bound over a finite interval (ℝ-specific) ## Related work Complements the continuous Grönwall inequality in `Mathlib.Analysis.ODE.Gronwall` ## References * Grönwall, T. H. (1919). "Note on the derivatives with respect to a parameter of the solutions of a system of differential equations". *Annals of Mathematics*, 20(4), 292–296. | t-analysis new-contributor | 174/0 | Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean | 2 | 1 | ['github-actions'] | ADedecker | 26 days ago | 30 days ago | 30 days |
| 34729 | vihdzp | chore: `no_expose` various `Ordinal` definitions | These all have convoluted definitions that are better characterized by their API, or (in the case of `Ordinal.ToType`) are defined through choice and have no useful definitional equalities. --- [](https://gitpod.io/from-referrer/) | t-set-theory | 13/11 | Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean | 2 | 3 | ['github-actions', 'leanprover-radar', 'vihdzp'] | b-mehta | 26 days ago | 29 days ago | 29 days |
| 29788 | robertmaxton42 | feat(Topology): adds bundled continuous maps for sum, sigma, subtype, mapsto, inclusion | Adds a collection of bundled continuous maps and homeomorphisms, and helper lemmas for working with their compositions. Bundling of existing continuity lemmas: * `ContinuousMap.subtypeVal` * `ContinuousMap.inl` and `.inr`; `ContinuousMap.sum` bundles `Continuous.sumElim`; `ContinuousMap.sumMap`, which is a quotient map when both components are quotient maps * `ContinuousMap.sigmaMap`, which is a quotient map when given a family of quotient maps * `ContinuousMap.mapsTo` bundles `ContinuousOn.restrict_mapsTo` New functions: * `ContinuousMap.preimageValIncl : C(s ↓∩ t, t)` and `.inclPreimageVal C(s, t ↓∩ s)`, and their unbundled functions in `Set` * `Homeomorph.Set.preimageVal` witnesses that the two are opposite directions of a homeomorphism * Descending from a coherent set of subspaces is a quotient map The primary use for these bundled maps is easy composition and the ability to introduce them by rewriting right-to-left: it is much more convenient to write `subtypeVal.comp _` than to use either the anonymous constructor (which doesn't work in any position without an expected type) or `ContinuousMap.mk` (which will disappear as soon as it is coerced to a function, making it difficult to use in mixed-categorical contexts where many maps can only be reduced by introducing a composition with some other map.) This PR is part of a family of PRs that ultimately construct transformations in both directions between the concrete `Topology.RelCWComplex` and abstract `TopCat.RelativeCWComplex`. `.mapsTo` in particular bundles together a couple of potentially nontrivial proofs in a way that makes them easy to refer to later; I use it and `.subtypeVal` particularly heavily later in a dependent PR to build the cell inclusion maps on both sides of the equivalence. --- [](https://gitpod.io/from-referrer/) | large-import t-topology awaiting-author | 227/2 | Mathlib/Data/Set/Subset.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,Mathlib/Topology/Coherent.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Constructions/SumProd.lean,Mathlib/Topology/ContinuousMap/Basic.lean,scripts/noshake.json | 7 | 17 | ['adamtopaz', 'dagurtomas', 'github-actions', 'mathlib4-merge-conflict-bot', 'robertmaxton42'] | adamtopaz | 25 days ago | 26 days ago | 85 days |
| 34908 | CoolRmal | feat(GroupTheory): a characteristic subgroup of a characteristic subgroup is characteristic | The main theorem proved in this PR is `characteristic_of_characteristic_of_characteristic`. If says that if `K` is a characteristic subgroup of a characteristic subgroup `H` of `G`, then `K` is a characteristic subgroup of `G`. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-group-theory | 23/0 | Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Map.lean | 2 | 3 | ['CoolRmal', 'github-actions'] | nobody | 25 days ago | unknown | unknown |
| 31361 | alreadydone | feat(Algebra/Order): convex subgroups | --- - [x] depends on: #32886 [](https://gitpod.io/from-referrer/) | t-algebra t-order awaiting-author | 422/0 | Mathlib.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/Group/Convex.lean,Mathlib/Order/Birkhoff.lean,Mathlib/Order/Quotient.lean | 5 | 28 | ['Vierkantor', 'alreadydone', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vihdzp', 'wwylele'] | nobody | 25 days ago | 25 days ago | 25 days |
| 34394 | Citronhat | feat(Algebra/Order/Ring): add constructors for linear ordered rings | Add constructors for ordered rings from `mul_nonneg` / `mul_pos` that derive `ZeroLEOneClass` from a linear order. | new-contributor t-algebra awaiting-author | 31/14 | Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/RingTheory/HahnSeries/Lex.lean | 2 | 6 | ['Citronhat', 'Vierkantor', 'github-actions', 'leanprover-radar'] | Vierkantor | 25 days ago | 25 days ago | 12 days |
| 34895 | eric-wieser | chore: backquote tactic names in error messages | This matches the messages produced by `Lean.Meta.throwTacticEx`. --- [](https://gitpod.io/from-referrer/) | t-meta delegated | 15/15 | Mathlib/Tactic/Abel.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/Ring/RingNF.lean,Mathlib/Util/AtLocation.lean,MathlibTest/abel.lean | 6 | 2 | ['github-actions', 'grunweg', 'mathlib-bors'] | nobody | 25 days ago | unknown | unknown |
| 34182 | IlPreteRosso | feat(Data/Finsupp/Single, Data/Finsupp/Indicator): Add set_indicator_singleton, indicator_singleton; golfed single_eq_set_indicator, single_eq_indicator | [Mathlib.Data.Finsupp.Single](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Single.html#Finsupp.single) - Add `set_indicator_singleton`, golfed `single_eq_set_indicator` [Mathlib.Data.Finsupp.Indicator](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Indicator.html#Finsupp.indicator_apply) - Add `indicator_singleton`, golfed `single_eq_indicator` Continues the work from #34095 | large-import t-data new-contributor | 17/17 | Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean | 2 | 29 | ['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] | eric-wieser and urkud | 25 days ago | 41 days ago | 42 days |
| 33894 | vihdzp | chore: move `Archimedean` to a new `Defs` file | I've also moved the most basic theorems (`exists_nat_lt`, etc.) to this file. This greatly decreases the imports needed to use these classes. --- [](https://gitpod.io/from-referrer/) | t-algebra | 119/66 | Mathlib.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/Archimedean/Defs.lean,Mathlib/Data/Real/Archimedean.lean | 4 | 4 | ['dagurtomas', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | dagurtomas | 25 days ago | 39 days ago | 9 days |
| 34151 | gasparattila | feat(Topology/Sets): product of `Closeds` | --- [](https://gitpod.io/from-referrer/) | t-topology | 30/0 | Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sets/Closeds.lean,Mathlib/Topology/Sets/Compacts.lean | 3 | 1 | ['github-actions'] | PatrickMassot | 25 days ago | 25 days ago | 43 days |
| 26884 | alreadydone | Universal cover | TODO: construct locally constant predicate from a functor from the fundamental groupoid of a loc path connected, semilocally simply connected space to Type, and the associated covering space (as an etale space) --- - [x] depends on: #24983 - [x] depends on: #22771 - [ ] depends on: #31925 [](https://gitpod.io/from-referrer/) | WIP t-topology blocked-by-other-PR merge-conflict | 900/165 | Mathlib.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Topology/EtaleSpace.lean,Mathlib/Topology/IsLocalHomeomorph.lean,Mathlib/Topology/Sheaves/LocalPredicate.lean,Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Stalks.lean | 11 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 25 days ago | unknown | unknown |
| 31925 | alreadydone | feat(Topology): étalé space associated to a predicate on sections | Zulip: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2322782.20Etale.20space/near/527381645 --- - [ ] depends on: #33795 migrated from #22782 [](https://gitpod.io/from-referrer/) | t-topology blocked-by-other-PR merge-conflict | 900/165 | Mathlib.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Topology/EtaleSpace.lean,Mathlib/Topology/IsLocalHomeomorph.lean,Mathlib/Topology/Sheaves/LocalPredicate.lean,Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Stalks.lean | 11 | 16 | ['adamtopaz', 'alreadydone', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | adamtopaz | 25 days ago | 53 days ago | 26 days |
| 34099 | mcdoll | feat(Analysis/Distribution): Fourier multiplier | We define Fourier multiplier with temperate growth functions acting on Schwartz functions as well as tempered distributions. We prove that the directional derivative and the Laplacian can be represented as Fourier multiplier. --- - [x] depends on: #34100 - [x] depends on: #34285 - [x] depends on: #34294 [](https://gitpod.io/from-referrer/) | t-analysis | 217/0 | Mathlib.lean,Mathlib/Analysis/Distribution/FourierMultiplier.lean | 2 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | ADedecker | 25 days ago | 28 days ago | 29 days |
| 34788 | justus-springer | feat(Algebra/Polynomial/AlgebraMap): add Polynomial.aeval_eq_aeval_map | This lemma is a special case of `Polynomial.map_aeval_eq_aeval_map` when `U = T` and `ψ` the identity. --- [](https://gitpod.io/from-referrer/) | t-algebra | 6/0 | Mathlib/Algebra/Polynomial/AlgebraMap.lean | 1 | 2 | ['github-actions'] | eric-wieser | 25 days ago | 28 days ago | 28 days |
| 33634 | xgenereux | feat(ValuationSubring): eq_self_or_eq_top_of_le | Using `primeSpectrumEquiv` we get the the corresponding results of `IsLocalRing.primeSpectrum_eq_of_KrullDimLEOne`(see #33607) for valuation subrings. --- - [ ] depends on: #33631 - [ ] depends on: #33612 - [ ] depends on: #33609 - [ ] depends on: #33607 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-algebra | 42/0 | Mathlib/RingTheory/Valuation/ValuationSubring.lean | 1 | 6 | ['alreadydone', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127', 'xgenereux'] | nobody | 24 days ago | unknown | unknown |
| 34088 | kbuzzard | perf(RingTheory/Kaehler/Polynomial): change universe name for speed-up | Changing the choice of `R`'s universe to `v` from `u` in this file means that alphabetically it's after `u_1` which is a workaround for the issue described here https://github.com/leanprover/lean4/issues/12102 . The bottom line is that Lean's defeq algorithm is now able to typecheck the `left_inv` and `right_inv` proofs in `KaehlerDifferential.mvPolynomialEquiv` over 200 times more quickly (for example `right_inv` goes from 54494621 heartbeats to 222096, i.e. from about 5 seconds to about 0.02 seconds on a typical machine). --- [](https://gitpod.io/from-referrer/) Before this PR, Lean was spending far too long in the proof fields of `KaehlerDifferential.mvPolynomialEquiv`, checking defeq on the following kinds of terms (with `pp.all` on): ``` [isDefEq] [815425.000000] ✅️ @Module.{max u u_1, max u_1 u} (@MvPolynomial.{u_1, u} σ R (@CommRing.toCommSemiring.{u} R inst✝)) (@KaehlerDifferential.{u, max u_1 u} R [20 lines omitted] =?= @Module.{max u u_1, max u u_1} (@MvPolynomial.{u_1, u} σ R (@CommRing.toCommSemiring.{u} R inst✝)) (@KaehlerDifferential.{u, max u u_1} R [pretty much the same 20 lines omitted except with max u_1 u replaced by max u u_1 sometimes] ``` with the crucial difference that the second universes in the terms are `max u_1 u` for the first and `max u u_1` for the second. The proofs were taking a few seconds to compile, and then after compilation the kernel was also taking a few seconds to typecheck them. The alphabetical hack in this PR stops this happening and Lean's defeq algorithm now terminates essentially instantly on these terms. Zulip thread: [#mathlib4 > KaehlerDifferential.mvPolynomialEquiv typechecking @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/KaehlerDifferential.2EmvPolynomialEquiv.20typechecking/near/568614162) | t-ring-theory WIP | 5/1 | Mathlib/RingTheory/Kaehler/Polynomial.lean | 1 | 41 | ['Vierkantor', 'erdOne', 'github-actions', 'j-loreaux', 'kbuzzard', 'leanprover-radar', 'mattrobball'] | chrisflav | 24 days ago | 24 days ago | 8 days |
| 34956 | kbuzzard | test: add a file with universe tests | Just to keep track of some horrible universe issues in Kaehler.Polynomial. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 266/0 | Mathlib/RingTheory/Kaehler/UniverseTest.lean | 1 | 1 | ['github-actions'] | nobody | 24 days ago | unknown | unknown |
| 33493 | michelsol | feat(RingTheory/Polynomial): An explicit formula for the Chebyshev polynomials of the first kind | Adds the following explicit formula on the Chebyshev polynomial of the first kind of order n. ${ T_{n}(x)\ =\ \sum \limits _{k=0}^{\lfloor {\frac {n}{2}}\rfloor } {\binom {n}{2k}} \left(\ X^{2}-1\ \right)^{k}\ X^{n-2k}}$ This explicit formula can be found [here](https://en.wikipedia.org/wiki/Chebyshev_polynomials#Explicit_expressions). There is a proof using complex numbers but it only works if the ring R = ℂ. The proof here is by induction and works in a commutative ring R. Mathlib seems to extend the definition of Chebyshev polynomials for $n \in \mathbb{Z}$ but this would make the formula more cumbersome with `n.natAbs` in place of `n`'s, so I expressed it on `n : ℕ` directly. --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor awaiting-author | 51/1 | Mathlib/RingTheory/Polynomial/Chebyshev.lean | 1 | 8 | ['YuvalFilmus', 'erdOne', 'github-actions', 'metakunt', 'michelsol'] | chrisflav | 24 days ago | 24 days ago | 35 days |
| 28468 | alreadydone | feat(Algebra): ring API for `AddLocalization` | Extract `Submonoid.IsLocalizationMap` from `LocalizationMap` and use it in `IsLocalization`. Develop basic API for AddLocalization at a two-sided ideal; in the case of the top AddSubmonoid, show the localization has a Ring structure (Grothendieck ring). Show that a nontrivial commutative semiring with cancellative addition satisfies the strong rank condition. (This will eventually be replaced by Yi-Jia Tan's result which shows cancellative addition is unnecessary, so it's also reasonable to leave this part out of this PR.) --- - [x] depends on: #27842 - [x] depends on: #27862 - [x] depends on: #29596 - [x] depends on: #29597 [](https://gitpod.io/from-referrer/) | t-algebra large-import t-ring-theory awaiting-author | 676/6 | Mathlib.lean,Mathlib/GroupTheory/MonoidLocalization/Archimedean.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Lemmas.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/Localization/Additive.lean,Mathlib/RingTheory/Localization/Defs.lean,Mathlib/RingTheory/Localization/StrongRankCondition.lean | 8 | 12 | ['alreadydone', 'chrisflav', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | chrisflav | 24 days ago | 24 days ago | 23 days |
| 34897 | kim-em | experiment: Claude defining reductive groups | This PR adds preliminary definitions for reductive algebraic groups, following Borel's definition over general fields. ## Status: Experimental Sketch This is scaffolding with known mathematical issues. See `Mathlib/Algebra/AlgebraicGroup/PLAN.md` for a detailed roadmap of what's needed for correct definitions. ### What's Here | Definition | Status | Notes | |------------|--------|-------| | `AffineAlgGroup k A` | OK | Smooth affine group scheme of finite type | | `AlgPoints k A` | Partial | Correct type, Group instance is `sorry` | | `NoNontrivialIdempotents` | OK | For connectedness | | `IsUnipotent` | Wrong | Vacuous in reduced rings (see below) | | `unipotentRadical` | Wrong | Should be Hopf ideal, not Subgroup | | `ReductiveGroup` | Placeholder | Uses `True` pending dependencies | ### Known Mathematical Issues 1. **`IsUnipotent` is vacuous**: Definition checks nilpotence in reduced ring A, so only g=1 satisfies it. Correct definition requires comodule theory. 2. **Need functor of points, not just k-points**: Should define `A →ₐ[k] R` for all k-algebras R, not just `A →ₐ[k] k`. 3. **`unipotentRadical` should be a Hopf ideal**: Closed subgroup schemes correspond to Hopf ideals, not subgroups of points. 4. **Geometric notions missing**: Unipotent/connected/reductive should be defined after base change to k̄. ### Roadmap (see PLAN.md) 1. **Functor of points**: Group structure on R-points via convolution 2. **Hopf ideals**: For closed subgroup schemes 3. **Geometric infrastructure**: Base change, geometric connectedness 4. **Comodule theory**: For correct `IsUnipotent` 5. **Unipotent radical**: As Hopf ideal (very hard - SGA3/Borel level) Alternative: Define "linearly reductive" via complete reducibility (simpler, equivalent in char 0). ## References - Brian Conrad, "Reductive Group Schemes" - Armand Borel, "Linear Algebraic Groups" - SGA3, Exposé XIX 🤖 Prepared with Claude Code | t-algebra | 753/0 | Mathlib.lean,Mathlib/Algebra/AlgebraicGroup/Defs.lean,Mathlib/Algebra/AlgebraicGroup/PLAN.md,Mathlib/Algebra/AlgebraicGroup/Reductive.lean,Mathlib/Algebra/AlgebraicGroup/Unipotent.lean | 5 | 1 | ['github-actions'] | nobody | 24 days ago | unknown | unknown |
| 34815 | Deep0Thinking | feat(Analysis/SpecialFunctions/ImproperIntegrals): Frullani integral | - [ ] depends on: #34966 --- Add a proof of **Frullani integral**. Main theorems: - `Frullani.integral_Ioi` - `IntegrableOn.tendsto_integral_Ioi` - `exists_integral_div_eq_mul_log` Supporting lemmas: - `Frullani.comp_mul_left_div` - `Frullani.intervalIntegrable_div` - `Frullani.exists_integral_div_eq_mul_log` - `Ioi_diff_Ioc` - `ContinuousOn.comp_mul_left_div`, `ContinuousOn.comp_mul_right_div` - `ContinuousOn.comp_mul_left`, `ContinuousOn.comp_mul_right` --- [](https://gitpod.io/from-referrer/) | new-contributor large-import t-analysis awaiting-author blocked-by-other-PR | 270/2 | Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean,Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/Monoid.lean | 6 | 6 | ['CoolRmal', 'Deep0Thinking', 'github-actions', 'mathlib-dependent-issues', 'sgouezel'] | nobody | 23 days ago | 26 days ago | 1 day |
| 34573 | Kha | chore(Analysis/Normed/Lp/SmoothApprox): shake public imports | `lake shake --keep-implied --keep-prefix --fix --only Mathlib.Analysis.Normed.Lp.SmoothApprox`, using a dev version of `shake` | 7/2 | Mathlib/Analysis/Normed/Lp/SmoothApprox.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean | 2 | 15 | ['Garmelon', 'JovanGerb', 'Kha', 'YaelDillies', 'github-actions', 'jcommelin', 'leanprover-radar'] | nobody | 23 days ago | 23 days ago | 10 days | |
| 34093 | YellPika | feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas | --- - [x] depends on: #33941 [](https://gitpod.io/from-referrer/) | t-order new-contributor | 297/0 | Mathlib.lean,Mathlib/Data/Option/Order.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean | 4 | 5 | ['YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | pechersky | 23 days ago | 27 days ago | 27 days |
| 34266 | gasparattila | feat(Topology/Sets): basis of `(Nonempty)Compacts` | --- [](https://gitpod.io/from-referrer/) | t-topology | 147/0 | Mathlib/Topology/Bases.lean,Mathlib/Topology/Sets/VietorisTopology.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | PatrickMassot | 23 days ago | 34 days ago | 40 days |
| 9820 | jjaassoonn | feat(RingTheory/GradedAlgebra/HomogeneousIdeal): generalize to homogeneous submodule | The definitions, constructions and theorems in `HomogeneousIdeal.lean` are generalized to a homogeneous submodules. So say $R$ is a ring and $M \cong \bigoplus_{i} M_i$ is an $R$-module. Then a homogeneous $R$-submodule of $M$ is an $R$-submodule $N$ such that for all $i$ and $n \in N$, $n_i \in N$. Note that this notion doesn't actually require $R$ to be graded and $M$ is a graded module. But for more interesting lemmas, we do need that $M$ is graded $R$-module. We bake the fact $R$ is graded into the definition of homogeneous submodule, otherwise, `CompleteLattice HomogeneousSubmodule` cannot find the order of synthesis (the proof depends on that $R$ is graded) All definitions/constructions/theorems have a copy for ideals as well, this is to make sure dot notation still works. The motivation of this generalization is graded quotient module --- - [x] depends on:#18728 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 516/185 | Mathlib/Algebra/Module/GradedModule.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,scripts/nolints_prime_decls.txt | 7 | 3 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 22 days ago | unknown | unknown |
| 29030 | b-mehta | feat(Combinatorics): prove the Rado selection lemma | Prove the Rado selection lemma, a generic result useful to prove a variety of compactness results in combinatorics. This generalises Konig's infinity lemma, and the de Bruijn-Erdos theorem, and allows the former to be conveniently stated in the language of sets rather than categories. We leave these generalisations of results in mathlib to later PRs. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 132/0 | Mathlib.lean,Mathlib/Combinatorics/Compactness.lean | 2 | 1 | ['github-actions'] | nobody | 22 days ago | unknown | unknown |
| 27664 | pechersky | feat(Topology,Analysis): discrete topology metric space and normed groups | Explicit construction of the discrete topology metric space and normed groups where `dist x y = 1` for all `x != y` Provide PseudoMetricSpace, MetricSpace, Seminormed(Add)Group, and Normed(Add)Group constructions --- [](https://gitpod.io/from-referrer/) | awaiting-author t-topology merge-conflict | 124/0 | Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Topology/MetricSpace/Basic.lean,Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean | 3 | 14 | ['github-actions', 'kckennylau', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'pechersky', 'plp127'] | urkud | 22 days ago | 102 days ago | 113 days |
| 34475 | artie2000 | fix: remove some nolints | * Reorder some instance arguments to make particular typeclass searches fail faster --- [](https://gitpod.io/from-referrer/) | t-ring-theory WIP merge-conflict | 5/9 | Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/RingTheory/Extension/Generators.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean | 4 | 7 | ['artie2000', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | nobody | 22 days ago | unknown | unknown |
| 34646 | vihdzp | feat: predicate for algebraically closed subfields | We define `Subfield.IsAlgClosed` for an algebraically closed subfield. We prove variants of `IsAlgClosed.exists_root` and `IsAlgClosed.of_exists_root` for this predicate, which avoid some quite annoying subtype wrangling. --- - [ ] depends on: #34650 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR merge-conflict | 167/104 | Mathlib.lean,Mathlib/FieldTheory/AlgebraicClosure.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/RingTheory/Algebraic/Integral.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/Polynomial/Subring.lean | 10 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 22 days ago | 31 days ago | 13 seconds |
| 34652 | vihdzp | feat: more theorems on `Polynomial.toSubring` | Upstreamed from the CGT repo. --- - [ ] depends on: #34650 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-ring-theory merge-conflict | 131/102 | Mathlib.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/RingTheory/Algebraic/Integral.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/Polynomial/Subring.lean | 8 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 22 days ago | unknown | unknown |
| 34720 | Paul-Lez | feat(RingTheory/PowerSeries/Composition): define composition of power series | This PR defines the composition of two power series, and adds various pieces of API lemmas (this is mostly fixing up and upstreaming code from [this repo](https://github.com/rmhi/formal_deriv)).
This is the first of a series of PRs upstreaming work that was done at the CFT workshop in Oxford last summer, working towards proving some results about the `exp` and `log` power series (and their composition!), and constructing the isomorphism $(\mathfrak{m}_K ^ n, +) \cong (1 + \mathfrak{m}_K ^ n, \times)$ for sufficiently large $n$, where $K$ is a characteristic zero local field.
Co-authored-by: Richard Hill |
t-ring-theory awaiting-zulip | 844/0 | Mathlib.lean,Mathlib/RingTheory/PowerSeries/Composition.lean | 2 | 3 | ['Paul-Lez', 'github-actions', 'vihdzp'] | nobody | 22 days ago | unknown | unknown |
| 34026 | SnkXyx | feat(Algebra/MvPolynomial): add mainVariable | Add `mainVariable` of `MvPolynomial`, the largest variable index appearing in the polynomial. Main Theorems: * `mainVariable_eq_bot_iff_eq_C` * `mainVariable_sum_le` * `mainVariable_prod_le` * `degreeOf_eq_zero_of_mainVariable_lt` The PR is upstreamized from [github.com/WuProver/lean_characteristic_set](https://github.com/WuProver/lean_characteristic_set) --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 147/0 | Mathlib.lean,Mathlib/Algebra/MvPolynomial/MainVariable.lean | 2 | 1 | ['github-actions'] | mattrobball | 22 days ago | 47 days ago | 47 days |
| 34756 | Hagb | feat(Algebra/Order/Monoid/Unbundled/WithTop): `AddEquiv` between `WithBot` | It is like `Equiv.withBotCongr` but preserving also addition (`AddEquiv`). --- It is like [`Equiv.withBotCongr`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Equiv.withBotCongr#doc) but preserving also addition ([`AddEquiv`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=AddEquiv#doc)). [](https://gitpod.io/from-referrer/) | t-algebra | 39/0 | Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean | 1 | 3 | ['Hagb', 'github-actions', 'plp127'] | mattrobball | 22 days ago | 26 days ago | 28 days |
| 34808 | YaelDillies | feat(Combinatorics/SimpleGraph): isolated vertices | RFC for now. Do you think this is a reasonable definition to have? What should its API be? From ProofBench --- [](https://gitpod.io/from-referrer/) | RFC t-combinatorics | 3/0 | Mathlib/Combinatorics/SimpleGraph/Basic.lean | 1 | 1 | ['github-actions'] | kmill | 22 days ago | 28 days ago | 28 days |
| 26985 | agjftucker | feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfProdDomain | This PR continues the work from #16743. Original PR: https://github.com/leanprover-community/mathlib4/pull/16743 --- - [x] depends on: #28352 [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 269/157 | Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean | 4 | 27 | ['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] | hrmacbeth | 21 days ago | 21 days ago | 84 days |
| 34934 | zorkary | feat(Data/List): add constructive split classifiers | ## Summary This PR adds a small constructive list-classification utility module: - `Mathlib/Data/List/SplitClassify.lean` (new file) - `Mathlib.lean` (one new public import) The goal is to provide reusable case-data classifiers for common split equalities, so downstream proofs can branch on explicit structure instead of repeatedly rebuilding list-shape arguments. ## Added API - `List.append_cons_eq_singleton` - `List.ConsSplit` - `List.classify_cons_vs_split` - `List.SwapSplit` - `List.classify_swap_vs_split` ## Scope and non-goals - No existing theorem statements were changed. - No existing proof logic was modified. - This is a narrow additive change (new module + one import). ## Build I verified: - `lake build Mathlib.Data.List.SplitClassify` ## Duplicate/overlap check Before opening this PR, I checked local mathlib sources and GitHub search for likely overlap, including targeted searches for: - `classify_cons_vs_split` - `classify_swap_vs_split` - `append_cons_eq_singleton` - open PRs/issues around list split/classification helpers I did not find direct existing equivalents or open PRs with the same API. ## AI usage disclosure I used AI assistance (Codex/LLM) for drafting and implementation support. I understand the high-level intent and have validated the module builds. I am opening this as a draft specifically to get maintainer review on technical details before marking it ready. | t-data new-contributor | 213/0 | Mathlib.lean,Mathlib/Data/List/SplitClassify.lean | 2 | 1 | ['github-actions'] | nobody | 21 days ago | unknown | unknown |
| 32744 | NoneMore | feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas | This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas. The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable. There are also some tool lemmas derived by the preimage lemma. --- [](https://gitpod.io/from-referrer/) | new-contributor t-logic | 147/0 | Mathlib/ModelTheory/Definability.lean | 1 | 59 | ['NoneMore', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] | awainverse | 21 days ago | 53 days ago | 74 days |
| 30431 | kckennylau | feat(RingTheory): a homogeneous submodule is the span of its homogeneous elements | --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 22/0 | Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean | 2 | 8 | ['alreadydone', 'github-actions', 'kckennylau', 'mariainesdff'] | mariainesdff | 21 days ago | 120 days ago | 23 days |
| 14501 | jjaassoonn | feat: module structure of filtered colimit of abelian groups over filtered colimit of rings | This helps defining the module structure of stalks This contribution was inspired by the AIM workshop "Formalizing algebraic geometry" in June 2024. --- - [x] depends on: #15315 [I am going to move the result in the new file] [](https://gitpod.io/from-referrer/) | t-algebra workshop-AIM-AG-2024 t-category-theory merge-conflict awaiting-author | 439/2 | Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean,Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean | 2 | 49 | ['YaelDillies', 'adamtopaz', 'alreadydone', 'erdOne', 'github-actions', 'jjaassoonn', 'joelriou', 'kbuzzard'] | joelriou | 21 days ago | unknown | unknown |
| 26986 | WangYiran01 | feat(Partition): add bijection for partitions with max part ≤ r | This PR adds a new theorem `partition_max_equals_bound` to `Mathlib.Combinatorics.Enumerative.Partition`. It constructs a bijection between: - The set of partitions of `n` in which `r ∈ π.parts` and all parts are `≤ r`, and - The set of partitions of `n - r` whose largest part is at most `r`. This provides a constructive proof via removing/adding `r` from/to the partition multiset, in line with classical enumerative combinatorics. Contributed by Yiran Wang. | awaiting-author t-combinatorics new-contributor merge-conflict | 92/0 | Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Data/Multiset/Lattice.lean | 2 | 20 | ['WangYiran01', 'github-actions', 'jcommelin', 'kckennylau', 'kim-em', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | b-mehta | 21 days ago | 54 days ago | 120 days |
| 25035 | ScottCarnahan | feat(Algebra/Module/Equiv/Defs): linear equivalence between linear hom and semilinear hom | Given a ring homomorphism `σ₂ : R →+* R₂`, an `R`-module `M`, and a module `M₂` for both `R` and `R₂` satisfying `SMulCommClass R R₂ M₂` and `(σ₂ r) • x = r • x`, we produce an `R₂`-linear equivalence between `M →ₗ[R] M₂` and `M →ₛₗ[σ₂] M₂`. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra merge-conflict | 21/0 | Mathlib/Algebra/Module/Equiv/Defs.lean | 1 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 21 days ago | unknown | unknown |
| 26168 | oliver-butterley | feat(MeasureTheory.VectorMeasure): variation defined as a supremum is equal to variation defined using the Hahn-Jordan decomposition | Add `signedMeasure_totalVariation_eq`: if `μ` is a `SignedMeasure` then variation defined as a supremum is equal to variation defined using the Hahn-Jordan decomposition. Co-authored-by: @yoh-tanimoto - [ ] depends on: #26165 --- [](https://gitpod.io/from-referrer/) | blocked-by-other-PR new-contributor t-measure-probability merge-conflict | 916/0 | Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Integral.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Equiv.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Lemmas.lean | 5 | 4 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 21 days ago | 241 days ago | 15 days |
| 33463 | khwilson | feat(Mathlib/Analysis/Polynomial/MahlerMeasure): Mahler Measure for other rings | Define `mahlerMeasure'` which allows you specify a norm preserving map `v` from any `NormedRing A` (or more general) to `ℂ`. Also provide wrappers around the main `mahlerMeasure` lemmas that are used for estimation. --- [](https://gitpod.io/from-referrer/) | new-contributor t-analysis awaiting-author | 97/3 | Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/NumberTheory/MahlerMeasure.lean | 2 | 21 | ['github-actions', 'j-loreaux', 'khwilson', 'plp127', 'vlad902'] | nobody | 21 days ago | 21 days ago | 45 seconds |
| 34891 | kim-em | wip: ConvexSpace constructor from binary convex combinations | t-algebra large-import | 3498/0 | Mathlib/LinearAlgebra/ConvexSpace.lean,Mathlib/LinearAlgebra/convex_plan.md | 2 | 1 | ['github-actions'] | nobody | 21 days ago | unknown | unknown | |
| 33631 | xgenereux | feat(ValuationSubring): simp lemmas for idealOfLE/ofPrime in relation to top/bot | simp lemmas for `idealOfLE`/`ofPrime` in the trivial cases of `⊥`, `⊤` . This is my second try at this PR (after I bailed on #33618), sorry about this! --- - [ ] depends on: #33612 - [ ] depends on: #33609 [](https://gitpod.io/from-referrer/) | t-algebra | 19/0 | Mathlib/RingTheory/Valuation/ValuationSubring.lean | 1 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | alreadydone | 21 days ago | 24 days ago | 24 days |
| 34481 | DAE123456 | feat: Ore's Theorem | Ore Theorem : Let G be a graph of order n ≥ 3 that satisfies the Ore property. Then G has a Hamilton cycle. | t-combinatorics new-contributor | 3372/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Ore.lean | 2 | 25 | ['DAE123456', 'LLaurance', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'kim-em', 'tb65536', 'vlad902'] | b-mehta | 21 days ago | 29 days ago | 33 days |
| 34722 | GrigorenkoPV | feat(Data/Finset/RangeDistance): add | --- Rebase of https://github.com/leanprover-community/mathlib4/pull/26347 [](https://gitpod.io/from-referrer/) | new-contributor t-data | 34/0 | Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean | 3 | 4 | ['GrigorenkoPV', 'github-actions', 'joneugster', 'plp127'] | TwoFX | 21 days ago | 29 days ago | 29 days |
| 34809 | YaelDillies | feat: induced subgraphs of complete multipartite graphs are complete multipartite | From ProofBench --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 4/2 | Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean | 1 | 1 | ['github-actions'] | b-mehta | 21 days ago | 28 days ago | 28 days |
| 35114 | CoolRmal | feat: Kirszbraun’s theorem | --- [](https://gitpod.io/from-referrer/) | t-analysis | 144/0 | Mathlib/Analysis/Kirszbraun.lean | 1 | 1 | ['github-actions'] | nobody | 21 days ago | unknown | unknown |
| 33611 | urkud | feat(ImplicitFunction): add a parametric version | --- I'm not sure if the supporting linear algebra lemmas are in the form we want to see them in Mathlib. - [x] depends on: #33585 [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author | 191/0 | Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/Prod.lean,Mathlib/Analysis/Calculus/ImplicitFunction/Parametric.lean,Mathlib/LinearAlgebra/Prod.lean | 4 | 12 | ['PatrickMassot', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'urkud'] | ADedecker | 21 days ago | 21 days ago | 35 days |
| 27702 | FLDutchmann | feat(NumberTheory/SelbergSieve): define Lambda-squared sieves and prove important properties | This PR continues the work from #22052. Original PR: https://github.com/leanprover-community/mathlib4/pull/22052 - [x] depends on: #27820 | t-number-theory delegated merge-conflict | 186/7 | Mathlib/NumberTheory/SelbergSieve.lean | 1 | 44 | ['FLDutchmann', 'MichaelStollBayreuth', 'bryangingechen', 'github-actions', 'jcommelin', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | MichaelStollBayreuth | 20 days ago | 82 days ago | 15 days |
| 28499 | 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. - [ ] depends on: #26160 for the definition and lemmas about the total variation of a vector measure. | blocked-by-other-PR t-measure-probability merge-conflict | 668/0 | Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Integral.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Lemmas.lean | 4 | 4 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 20 days ago | 200 days ago | 4 seconds |
| 28693 | faenuccio | feat(Analysis.Normed.Module.Milman-Pettis): add Milman-Pettis theorem | We add the Milman-Pettis theorem stating that an uniformly convex Banach space is reflexive. --- [](https://gitpod.io/from-referrer/) | WIP t-analysis merge-conflict | 279/0 | Mathlib/Analysis/Convex/Uniform.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/Normed/Module/Milman-Pettis.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean | 4 | 9 | ['ADedecker', 'faenuccio', 'github-actions', 'grunweg', 'mathlib-merge-conflicts', 'yhx-12243'] | nobody | 20 days ago | unknown | unknown |
| 31141 | peabrainiac | feat(Analysis/Calculus): parametric integrals over smooth functions are smooth | Show that for any smooth function `f : H × ℝ → E`, the parametric integral `fun x ↦ ∫ t in a..b, f (x, t) ∂μ` is smooth too. The argument proceeds inductively, using the fact that derivatives of parametric integrals can themselves be computed as parametric integrals. The necessary lemmas on derivatives of parametric integrals already existed, but took some work to apply due to their generality; we state some convenient special cases. --- - [x] depends on: #31077 [](https://gitpod.io/from-referrer/) | t-analysis maintainer-merge awaiting-author | 470/12 | Mathlib/Analysis/Calculus/ParametricIntegral.lean,Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/Topology/NhdsWithin.lean,Mathlib/Topology/Separation/Regular.lean | 5 | 36 | ['fpvandoorn', 'github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'peabrainiac', 'sgouezel'] | j-loreaux | 20 days ago | 20 days ago | 22 days |
| 35122 | Marygold-Dusk | feat: define C^n submersions | This PR defines submersions between C^n manifolds. In the infinite-dimensional setting, submersions are defined via local normal forms rather than surjectivity of the mfderiv. A map f is a submersion at x if, in suitable charts around x and f x, it has the form (u, v) ↦ u after identifying the model space with a product.
We prove a few basic properties:
- being a submersion is a local property,
- products of submersions are submersions,
- the set of submersed points is open
Future PRs will prove that submersions are C^n and deduce equivalence with the standard definition in finite dimensions. From the path towards the regular value theorem.
This file was developed under the supervision of Michael Rothgang.
Co-authored-by: Michael Rothgang |
t-differential-geometry new-contributor | 596/0 | Mathlib.lean,Mathlib/Geometry/Manifold/Submersion.lean | 2 | 2 | ['github-actions'] | grunweg | 20 days ago | 20 days ago | 20 days |
| 32845 | jonasvanderschaaf | feat(CategoryTheory): `GrothendieckTopology.yoneda` preserves certain (co)limits | We prove that if every `J`-sheaf preserves limits of shape `Kᵒᵖ`, then `J.yoneda` preserves colimits of shape `K`, and the dual statement. We specialize to the case of finite products, and deduce that the inclusion of light profinite sets in light condensed sets preserves finite coproducts
From [LeanCondensed](https://github.com/dagurtomas/LeanCondensed)
---
Co-authored-by: Dagur Asgeirsson |
new-contributor t-category-theory t-condensed large-import awaiting-author | 107/5 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean,Mathlib/CategoryTheory/Sites/PreservesLimits.lean,Mathlib/Condensed/Functors.lean,Mathlib/Condensed/Light/Functors.lean | 5 | 5 | ['github-actions', 'jonasvanderschaaf', 'robin-carlier'] | nobody | 20 days ago | 32 days ago | 8 days |
| 29499 | chrisflav | feat(CategoryTheory/Sites): sheafification via hypercovers | This is very much WIP, but I need a fresh cache. --- [](https://gitpod.io/from-referrer/) | WIP t-category-theory merge-conflict | 1944/4 | Mathlib.lean,Mathlib/CategoryTheory/Sites/HomotopyOneHypercover.lean,Mathlib/CategoryTheory/Sites/Hypercover/Homotopy.lean,Mathlib/CategoryTheory/Sites/Hypercover/One.lean,Mathlib/CategoryTheory/Sites/Hypercover/Refinement.lean,Mathlib/CategoryTheory/Sites/Hypercover/Sheafification.lean,Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean | 7 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 20 days ago | unknown | unknown |
| 33969 | goliath-klein | refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Currently, injectiveSeminorm = projectiveSeminorm | **WIP / RFC!** Arguably, `injectiveSeminorm` should be re-defined in Mathlib. See #34137 and [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798261) for context. In this file, we collect some results about the current definition and a possible alternative. Contents: * A theorem `injectiveSeminorm_eq_projectiveSeminorm` formalizing the equality of the current definitions. However, I think it is unlikely that keeping the alternative characterization would be worth the effort. The interesting direction `(L2') ≤ (L1)` follows from `norm_eval_le_projectiveSeminorm` which is still present. The converse direction is [somewhat tautological](https://github.com/leanprover-community/mathlib4/pull/34137). A proof of `(L2) = (L1)` (probably requiring Hahn-Banach) might be more interesting. * A preliminary implementation of the injective seminorm as commonly understood. * Sufficient conditions for the multiplicativity property `‖⨂ m i‖_∧ = ∏ ‖m i‖` to hold. This implements a TBD item. --- Co-authored-by: Davood H. H. Tehrani [](https://gitpod.io/from-referrer/) | WIP t-analysis new-contributor large-import merge-conflict | 774/387 | Mathlib.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/LeastReasonable.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Analysis/Normed/Operator/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean | 8 | 3 | ['github-actions', 'goliath-klein', 'mathlib-merge-conflicts'] | nobody | 20 days ago | unknown | unknown |
| 34248 | erdOne | chore: get rid of `LocalizedModule.mk` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra merge-conflict | 64/65 | Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/Algebra/Module/LocalizedModule/Exact.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/GroupTheory/DivisibleHull.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Localization/Module.lean | 6 | 3 | ['Vierkantor', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | nobody | 20 days ago | 40 days ago | 3 hours |
| 34855 | staroperator | feat(Order): use `to_dual` for `PFilter` | We can get rid of the whole `PFilter` file now. --- - [ ] depends on: #34820 --- [](https://gitpod.io/from-referrer/) | file-removed large-import blocked-by-other-PR merge-conflict | 361/268 | Mathlib.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/Order/BooleanAlgebra/Defs.lean,Mathlib/Order/Cofinal.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Ideal.lean,Mathlib/Order/Interval/Set/Basic.lean,Mathlib/Order/PFilter.lean,Mathlib/Order/PrimeIdeal.lean,Mathlib/Order/UpperLower/CompleteLattice.lean,Mathlib/Order/UpperLower/Principal.lean,Mathlib/Order/ZornAtoms.lean,Mathlib/RingTheory/IdealFilter/Basic.lean,Mathlib/Tactic/Translate/ToDual.lean | 19 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 20 days ago | unknown | unknown |
| 27307 | xyzw12345 | feat(RingTheory/GradedAlgebra): homogeneous relation | In this PR, we defined the concept of a homogeneous relation and proved some properties about homogeneous relations. The main result of this PR is showing that taking `RingQuot` by a homogeneous relation can give a graded structure on the quotient ring. This result can be used to define graded structures on rings obtained using `RingQuot`, e.g. the Symmetric Algebra defined in #21539 can be verified to have such a structure.
Co-authored-by:
Zhixuan Dai @atstarrysky <22300180006@m.fudan.edu.cn>
Yiming Fu @pelicanhere |
awaiting-author t-ring-theory | 394/1 | Mathlib.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Colimit/Ring.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousRelation.lean | 10 | 45 | ['alreadydone', 'chrisflav', 'erdOne', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'ocfnash', 'xyzw12345'] | mattrobball | 20 days ago | 108 days ago | 72 days |
| 34939 | erdOne | chore(AlgebraicGeometry): use relative gluing in `IdealSheaf` | --- [](https://gitpod.io/from-referrer/) | t-algebraic-geometry merge-conflict | 174/381 | Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean,Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean | 2 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 20 days ago | unknown | unknown |
| 33821 | JohnnyTeutonic | feat(LinearAlgebra/Matrix/Hermitian): add IsSkewHermitian predicate | Adds `IsSkewHermitian` predicate for matrices satisfying Aᴴ = -A. --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author | 70/0 | Mathlib/LinearAlgebra/Matrix/Hermitian.lean | 1 | 20 | ['JohnnyTeutonic', 'github-actions', 'j-loreaux', 'themathqueen'] | kim-em | 20 days ago | 20 days ago | 26 days |
| 34990 | bwangpj | feat: `ContinuousSMul (∀ i, N i) (∀ i, γ i)` | FLT --- [](https://gitpod.io/from-referrer/) | t-topology | 7/0 | Mathlib/Topology/Algebra/MulAction.lean | 1 | 4 | ['bwangpj', 'github-actions', 'themathqueen'] | PatrickMassot | 20 days ago | 23 days ago | 23 days |
| 34994 | bwangpj | feat: Countable.of_module_finite | --- [](https://gitpod.io/from-referrer/) | t-algebra large-import FLT | 7/0 | Mathlib/LinearAlgebra/Countable.lean | 1 | 3 | ['bwangpj', 'eric-wieser', 'github-actions'] | eric-wieser | 20 days ago | 20 days ago | 23 days |
| 34650 | vihdzp | feat: redefine `Polynomial.toSubring` with better def-eqs | We redefine [`Polynomial.toSubring`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Polynomial/Basic.html#Polynomial.toSubring) in such a way that `(p.toSubring T _).coeff n = p.coeff n` definitionally. We then golf the API. --- - [x] depends on: #34661 [](https://gitpod.io/from-referrer/) | t-ring-theory | 51/73 | Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Ring/Subring/IntPolynomial.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/RingTheory/Algebraic/Integral.lean,Mathlib/RingTheory/Polynomial/Subring.lean | 6 | 11 | ['YaelDillies', 'erdOne', 'eric-wieser', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | nobody | 20 days ago | 20 days ago | 21 hours |
| 33233 | jazzits | feat(GroupTheory): add chosen group presentations and Tietze transformations (1) and (2) | Defines a notion of group presentation for G compatible with Mathlib.GroupTheory.PresentedGroup: generators `ι → G` whose range generates G, and relators `rels : Set (FreeGroup ι)` whose normal closure equals the kernel of `FreeGroup ι →* G`. Provides the canonical map `PresentedGroup P.rels →* G` and equivalences showing `PresentedGroup P.rels ≃* G` and invariance under changing presentations. Also formalizes Tietze moves (1)–(2) as equivalences of PresentedGroups: adding/removing a relator that lies in the normal closure of the others. TODO: moves (3)–(4) (add/remove generator with a defining relation). No existing definitions are modified | t-group-theory new-contributor awaiting-author | 328/0 | Mathlib.lean,Mathlib/GroupTheory/Presentation.lean | 2 | 15 | ['github-actions', 'homeowmorphism', 'jazzits', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536'] | tb65536 | 19 days ago | 64 days ago | 5 days |
| 34846 | fpvandoorn | fix: module system and translate interaction | * Fix some issues when the value of an imported declaration is not available. This could cause `to_additive` to panic or turn the declaration into an axiom. * Don't print private names in messages * Don't panic when the declaration already exists modulo privateness. * Add some helper functions to `Lean.Environment` and `Lean.Meta`. --- Please double check the `PublicOrPrivate` declarations: - Do they already exist in core? - Does `addDeclSafe` catch all cases where `addDecl` would panic? I think these are useful (maybe after renaming) since some of the Core versions are a huge footgun, which can lead to panics in multiple ways. - [ ] depends on: #35134 [](https://gitpod.io/from-referrer/) | t-meta awaiting-author blocked-by-other-PR merge-conflict | 233/50 | Mathlib/Lean/Environment.lean,Mathlib/Lean/Meta.lean,Mathlib/Tactic/Translate/Core.lean,MathlibTest/ToAdditiveModule.lean,MathlibTest/ToDual.lean,MathlibTest/toAdditive.lean | 6 | 35 | ['JovanGerb', 'fpvandoorn', 'github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 19 days ago | 25 days ago | 3 hours |
| 34931 | eric-wieser | perf: make TensorProduct.lift irreducible with a unification hint | --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 6/2 | Mathlib/LinearAlgebra/TensorProduct/Basic.lean | 1 | 7 | ['eric-wieser', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | erdOne | 19 days ago | 19 days ago | 5 days |
| 34725 | GrigorenkoPV | feat(RingTheory/RootsOfUnity/LowDegree): quadratic, cubic, quartic, quintic roots of unity | Closes https://github.com/leanprover-community/mathlib4/pull/25907 --- Merge of https://github.com/leanprover-community/mathlib4/pull/25907 [](https://gitpod.io/from-referrer/) | new-contributor t-ring-theory awaiting-author | 247/0 | Mathlib.lean,Mathlib/Algebra/CharP/Invertible.lean,Mathlib/Algebra/QuadraticDiscriminant.lean,Mathlib/RingTheory/RootsOfUnity/LowDegree.lean | 4 | 22 | ['GrigorenkoPV', 'LLaurance', 'erdOne', 'github-actions', 'joneugster'] | nobody | 19 days ago | 24 days ago | 5 days |
| 34164 | Scarlett-le | feat(Geometry/Euclidean/Sphere): define arcs on spheres | This PR defines arcs on spheres and proves basic properties. ## Main definitions - `EuclideanGeometry.Sphere.Arc`: An arc on a sphere defined by two distinct endpoints - `Arc.centerAngle`: The central angle (unoriented, in `[0, π]`) - `Arc.IsMinor`, `Arc.IsSemicircle`, `Arc.IsNondegenerate`: Predicates on arcs ## Design notes The minor arc is defined using angle addition: `P` is on the minor arc from `A` to `B` if `∠(A,C,P) + ∠(P,C,B) = ∠(A,C,B)`. This works well for `centerAngle < π` but degenerates for semicircles, so the definition explicitly requires `centerAngle < π`. The major arc is defined as the set-theoretic complement to avoid issues with `Real.Angle.toReal` branch cuts. | awaiting-author t-euclidean-geometry | 456/0 | Mathlib.lean,Mathlib/Geometry/Euclidean/Sphere/Arc.lean,Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean | 3 | 10 | ['Scarlett-le', 'github-actions', 'jsm28'] | nobody | 19 days ago | 42 days ago | 12 hours |
| 34969 | kim-em | feat(RingTheory/HopfAlgebra): prove antipode is antihomomorphism | This PR proves that the antipode of a Hopf algebra is an antihomomorphism: `antipode (a * b) = antipode b * antipode a`. The proof uses the convolution algebra structure on `(A ⊗ A) →ₗ[R] A` and shows that `S ∘ μ` and `μ ∘ (S ⊗ S) ∘ comm` are both convolution inverses of `μ`, hence they must be equal by uniqueness of inverses. This resolves a TODO listed in the file header. 🤖 Prepared with Claude Code | t-ring-theory | 88/2 | Mathlib/RingTheory/HopfAlgebra/Basic.lean | 1 | 1 | ['github-actions'] | erdOne | 19 days ago | 23 days ago | 23 days |
| 33032 | ksenono | feat(Combinatorics/SimpleGraph): Konig’s theorem on bipartite graphs | --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor blocked-by-other-PR merge-conflict | 832/251 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Konig/Auxillary.lean,Mathlib/Combinatorics/SimpleGraph/Konig/Konig.lean,Mathlib/Combinatorics/SimpleGraph/Konig/KonigFin.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/VertexCover.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean | 12 | 8 | ['SnirBroshi', 'github-actions', 'ksenono', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vlad902'] | nobody | 19 days ago | unknown | unknown |
| 31662 | edwin1729 | feat(Topology/Order): topological basis of scott topology on Complete… | …PartialOrder --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) for this PR. (1/2) PRs in domain theory, proving that scott topologies over Algebraic DCPOs (`CompletePartialOrder`) are sober. The main reference is [Reneta, 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) - [ ] depends on: #33061 **The next PR is here:** #31670 [](https://gitpod.io/from-referrer/) | t-topology new-contributor awaiting-author merge-conflict | 281/1 | Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib | 4 | 42 | ['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] | b-mehta | 18 days ago | 38 days ago | 6 days |
| 31670 | edwin1729 | feat(Topology/Order): Scott Topology is Sober over Algebraic DCPO | --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) here (2/2) PR to prove result in Stone Duality. Here we prove that Scott Topologies over Algebraic DCPOs are sober. - [ ] depends on: #31662 [](https://gitpod.io/from-referrer/) | t-topology blocked-by-other-PR new-contributor merge-conflict | 473/1 | Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib | 4 | 4 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 18 days ago | unknown | unknown |
| 35241 | ooovi | chore(LinearAlgebra/AffineSpace): Redefine AffineSpace | Definition of `AffineSpace` following that of `ConvexSpace`. --- [](https://gitpod.io/from-referrer/) | t-algebra | 106/0 | Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/Basic.lean | 2 | 1 | ['github-actions'] | nobody | 18 days ago | unknown | unknown |
| 27198 | robin-carlier | feat(CategoryTheory/Monoidal/DayConvolution): the Yoneda embedding is monoidal (for Day convolution) | We show that the Yoneda embedding is monoidal when we interpret its target category as Day presheaves (i.e presheaves with the Day convolution monoidal structure). The actual way we prove it is by registering a `LawfulDayConvolutionMonoidalCategoryStruct Cᵒᵖ (Type v₁) C`, for which the "interpretation" functor `C ⥤ Cᵒᵖ ⥤ Type v₁` is the Yoneda embedding. This allows to state a result independently of any size constraint on `C`. Then, we specialize to the case of a small category `C`, in this case, using the fact that the relevant colimit of preseaves exist, we use the fact that the interpretation functor induces a monoidal functor to put a `Monoidal` instance on the functor `dayYoneda : C ⥤ (Cᵒᵖ ⊛⥤ Type v₁) := yoneda ⋙ (equiv Cᵒᵖ _).inverse`. --- I was unsure about which form of simp lemmas we want for characterization of the monoidal structure on `dayYoneda`. I opted for making the "fully applied" lemmas simp, but still leaves the "unapplied" ones as non-simp just in case. - [ ] depends on: #27175 - [x] depends on: #25732 [](https://gitpod.io/from-referrer/) | merge-conflict file-removed blocked-by-other-PR t-category-theory | 1847/26 | Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Types.lean,Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean,Mathlib/CategoryTheory/Monoidal/Limits/Basic.lean,Mathlib/CategoryTheory/Monoidal/Limits/Preserves.lean | 8 | 8 | ['alreadydone', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | nobody | 18 days ago | unknown | unknown |
| 34159 | wangying11123 | feat(Geometry/Euclidean/Similarity): Add Triangle similarity on oangle | Add theorems about triangles similarity on oangle | t-euclidean-geometry new-contributor awaiting-author | 154/1 | Mathlib/Geometry/Euclidean/Similarity.lean | 1 | 8 | ['LLaurance', 'github-actions', 'jsm28', 'wangying11123'] | jsm28 | 18 days ago | 19 days ago | 7 days |
| 32692 | 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 awaiting-author | 229/0 | Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Tendsto.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean | 3 | 34 | ['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin'] | nobody | 18 days ago | 39 days ago | 9 days |
| 32807 | WilliamCoram | feat: Define the Gauss norm for MvPowerSeries | We adjust the current definition for Gauss norm on power series to work for multivariate power series. If this seems acceptable I can refactor the single variable case. --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor | 124/0 | Mathlib.lean,Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean | 2 | 25 | ['WilliamCoram', 'erdOne', 'fbarroero', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | alreadydone | 18 days ago | 18 days ago | 31 days |
| 35255 | vlad902 | feat(SimpleGraph): `cycleGraph.IsContained` in every graph with a cycle | --- [](https://gitpod.io/from-referrer/) | t-combinatorics blocked-by-other-PR | 69/2 | Mathlib/Combinatorics/SimpleGraph/Circulant.lean | 1 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 18 days ago | 18 days ago | 3 minutes |
| 34799 | vlad902 | feat(SimpleGraph): the cycle graph and complete graph are Hamiltonian | --- - [ ] depends on: #34797 - [ ] depends on: #35255 [](https://gitpod.io/from-referrer/) | t-combinatorics large-import blocked-by-other-PR merge-conflict | 29/0 | Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean | 2 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 18 days ago | unknown | unknown |
| 34996 | homeowmorphism | feat(GroupTheory/FreeGroup/Basic): injection between types induces injection between free groups | feat(GroupTheory/FreeGroup/Basic): adds the theorem that if α and β are arbitrary types and there is a injection between them, then the induced FreeGroup.map is also injective. | new-contributor merge-conflict | 26/6 | Mathlib/FieldTheory/Minpoly/IsConjRoot.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean | 2 | 5 | ['copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 18 days ago | 23 days ago | 5 seconds |
| 35125 | kim-em | chore: make OrderDual a structure | This PR changes `OrderDual` from a type alias (`def OrderDual (α : Type*) := α`) to a one-field structure: ```lean structure OrderDual (α : Type*) where toDual :: ofDual : α ``` This prevents defeq abuse between `α` and `αᵒᵈ`, requiring explicit `toDual`/`ofDual` wrapping at type boundaries. 🤖 Prepared with Claude Code | WIP large-import merge-conflict | 10540/4872 | Mathlib/Algebra/AddConstMap/Basic.lean,Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Group/Finsupp.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Module/Submodule/Range.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/MvPolynomial/NoZeroDivisors.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/Chebyshev.lean,Mathlib/Algebra/Order/Group/Action/Synonym.lean,Mathlib/Algebra/Order/Group/DenselyOrdered.lean,Mathlib/Algebra/Order/Group/Indicator.lean,Mathlib/Algebra/Order/Group/Lattice.lean,Mathlib/Algebra/Order/Group/MinMax.lean,Mathlib/Algebra/Order/Group/OrderIso.lean,Mathlib/Algebra/Order/Group/Pointwise/Bounds.lean,Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.lean,Mathlib/Algebra/Order/Group/Synonym.lean,Mathlib/Algebra/Order/GroupWithZero/Action/Synonym.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Synonym.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Module/Field.lean,Mathlib/Algebra/Order/Module/Pointwise.lean,Mathlib/Algebra/Order/Module/Synonym.lean,Mathlib/Algebra/Order/Monoid/Unbundled/OrderDual.lean,Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Algebra/Order/Ring/Cast.lean,Mathlib/Algebra/Order/Ring/Synonym.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Order/UpperLower.lean,Mathlib/AlgebraicGeometry/AffineSpace.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Rank.lean,Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Function.lean,Mathlib/Analysis/Convex/Jensen.lean,Mathlib/Analysis/Convex/Quasiconvex.lean,Mathlib/Analysis/Convex/Star.lean,Mathlib/Analysis/Convex/Topology.lean,Mathlib/Analysis/InnerProductSpace/Orthogonal.lean,Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/Normed/Group/Constructions.lean,Mathlib/Analysis/Normed/Order/Lattice.lean,Mathlib/CategoryTheory/Abelian/Subobject.lean,Mathlib/CategoryTheory/Localization/Bousfield.lean,Mathlib/CategoryTheory/MorphismProperty/LiftingProperty.lean,Mathlib/CategoryTheory/Subobject/ArtinianObject.lean,Mathlib/CategoryTheory/Subobject/Limits.lean,Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean,Mathlib/Combinatorics/Pigeonhole.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Inv.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Fin/Tuple/Basic.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/Finset/Lattice/Pi.lean,Mathlib/Data/Finset/Lattice/Prod.lean,Mathlib/Data/Finset/Lattice/Union.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/Finset/NAry.lean,Mathlib/Data/Finset/PiInduction.lean,Mathlib/Data/Finset/Sigma.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/WellFounded.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Fintype/Lattice.lean,Mathlib/Data/List/MinMax.lean,Mathlib/Data/Nat/Cast/Synonym.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Pairing.lean,Mathlib/Data/Ordmap/Invariants.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/Real/Pointwise.lean,Mathlib/Data/Set/Finite/Lattice.lean,Mathlib/Data/Set/Finite/Lemmas.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/Data/Set/Monotone.lean,Mathlib/Data/Set/Piecewise.lean,Mathlib/Data/Set/Sigma.lean,Mathlib/Data/Sum/Order.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/GroupTheory/ArchimedeanDensely.lean,Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean,Mathlib/LinearAlgebra/AffineSpace/Ordered.lean | 324 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 18 days ago | unknown | unknown |
| 35181 | JovanGerb | Testing Batteries 1667 | --- [](https://gitpod.io/from-referrer/) | dependency-bump merge-conflict | 4/4 | lake-manifest.json,lakefile.lean | 2 | 5 | ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | nobody | 18 days ago | unknown | unknown |
| 31366 | FaffyWaffles | feat(Analysis/SpecialFunctions/StirlingRobbins): Robbins' sharp stepwise bound for stirlingSeq | Introduces `Mathlib.Analysis.SpecialFunctions.StirlingRobbins`, proving Robbins' sharp stepwise bound for the Stirling sequence. * Main theorem: `log_stirlingSeq_diff_le` * Improves the existing bound `1/(4k^2)` to the sharp `1/(12k(k+1))` * Adds helper lemmas on summability and geometric bounds * Complements `Stirling.lean` References: - https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/SpecialFunctions/Stirling.html - Robbins (1955), *A Remark on Stirling’s Formula* --- **Note for Transparency:** Assistance provided by AI tools (Claude and Aristotle) for drafting, text, and structure. [](https://gitpod.io/from-referrer/) | t-analysis new-contributor awaiting-author | 64/5 | Mathlib/Analysis/SpecialFunctions/Stirling.lean | 1 | 17 | ['FaffyWaffles', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'tb65536'] | nobody | 18 days ago | 98 days ago | 4 days |
| 34571 | xroblot | feat(CyclotomicField/Galois): the bijection between subfields and subgroups of Dirichlet characters | --- - [ ] depends on: #33878 [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR t-algebra merge-conflict | 479/21 | Mathlib.lean,Mathlib/Algebra/Group/Submonoid/BigOperators.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/Submonoid/Units.lean,Mathlib/FieldTheory/Normal/Defs.lean,Mathlib/GroupTheory/Exponent.lean,Mathlib/GroupTheory/FiniteAbelian/Duality.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/NumberTheory/MulChar/Basic.lean,Mathlib/NumberTheory/MulChar/Duality.lean,Mathlib/NumberTheory/MulChar/Lemmas.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean,Mathlib/RingTheory/RootsOfUnity/Basic.lean,Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean | 14 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 18 days ago | unknown | unknown |
| 31560 | AntoineChambert-Loir | feat(Topology/Sion): the minimax theorem of von Neumann - Sion | Prove `Sion.exists_isSaddlePointOn` : Let X and Y be convex subsets of topological vector spaces E and F, X being moreover compact, and let f : X × Y → ℝ be a function such that - for all x, f(x, ⬝) is upper semicontinuous and quasiconcave - for all y, f(⬝, y) is lower semicontinuous and quasiconvex Then inf_x sup_y f(x,y) = sup_y inf_x f(x,y). The classical case of the theorem assumes that f is continuous, f(x, ⬝) is concave, f(⬝, y) is convex. As a particular case, one get the von Neumann theorem where f is bilinear and E, F are finite dimensional. We follow the proof of Komiya (1988). ## Remark on implementation * The essential part of the proof holds for a function `f : X → Y → β`, where `β` is a complete dense linear order. * We have written part of it for just a dense linear order, * On the other hand, if the theorem holds for such `β`, it must hold for any linear order, for the reason that any linear order embeds into a complete dense linear order. However, this result does not seem to be known to Mathlib. * When `β` is `ℝ`, one can use `Real.toEReal` and one gets a proof for `ℝ`. ## TODO Give particular important cases (eg, bilinear maps in finite dimension). Co-authored with @ADedecker --- - [x] depends on: #31548 - [x] depends on: #31547 - [x] depends on: #31558 [](https://gitpod.io/from-referrer/) | t-topology | 733/0 | Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Topology/Semicontinuity/Basic.lean,Mathlib/Topology/Sion.lean,docs/references.bib | 5 | 10 | ['AntoineChambert-Loir', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'thorimur'] | dwrensha and kmill | 18 days ago | 18 days ago | 79 days |
| 33944 | artie2000 | feat(Algebra/Ring): formally real rings | * Define formally real rings
* Prove basic inductive facts about them
Co-authored-by: Violeta Hernández Palacios |
t-algebra | 160/0 | Mathlib.lean,Mathlib/Algebra/Ring/IsFormallyReal.lean | 2 | 24 | ['artie2000', 'github-actions', 'vihdzp'] | mariainesdff | 18 days ago | 18 days ago | 29 days |
| 34069 | artie2000 | feat(Algebra/Order/Algebra): algebra is ordered iff inclusion map is monotone | * Prove that an extension of ordered semirings forms an ordered algebra iff the inclusion map is injective * Reorganise section variables for clarity The typeclass `PartialOrder α` in `IsOrderedModule.of_algebraMap_mono` can be generalised to `Preorder α`. This has no mathematical application and all the other lemmas are proved over a partially ordered type, so this generalisation was not made. --- [](https://gitpod.io/from-referrer/) | t-algebra t-order | 18/7 | Mathlib/Algebra/Order/Algebra.lean | 1 | 1 | ['github-actions'] | pechersky | 18 days ago | 18 days ago | 44 days |
| 34702 | pfaffelh | feat(Data/FinsetPowerset): The set `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k` | Show that `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k`. The proof builds on `powersetCard k s` (the subsets of `s : Finset _` with cardinality `k`), and an equivalence to the above set. --- [](https://gitpod.io/from-referrer/) | large-import t-data | 52/1 | Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Fintype/Pi.lean,Mathlib/Logic/Equiv/Fintype.lean | 3 | 25 | ['DavidLedvinka', 'b-mehta', 'eric-wieser', 'github-actions', 'joneugster', 'pfaffelh'] | pechersky | 18 days ago | 24 days ago | 29 days |
| 34820 | staroperator | feat(Order/Ideal): more results on order ideals | Some iffs, closure of finite supremum, and that every proper ideal is contained in a maximal ideal. --- [](https://gitpod.io/from-referrer/) | t-order large-import | 79/5 | Mathlib/Order/Ideal.lean | 1 | 5 | ['bryangingechen', 'github-actions', 'leanprover-radar', 'staroperator'] | pechersky | 18 days ago | 21 days ago | 27 days |
| 35182 | sgouezel | test: experiment with branch with footguns | --- [](https://gitpod.io/from-referrer/) | 379/183 | Mathlib/Algebra/AddConstMap/Basic.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Algebra/Unitization.lean,Mathlib/Algebra/Category/Grp/Kernels.lean,Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/Lie/Extension.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Module/Presentation/RestrictScalars.lean,Mathlib/Algebra/Module/Projective.lean,Mathlib/Algebra/Module/SnakeLemma.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Ring/CompTypeclasses.lean,Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Algebra/Star/TensorProduct.lean,Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/InnerProductSpace/OfNorm.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean,Mathlib/CategoryTheory/Limits/Types/Coproducts.lean,Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean,Mathlib/CategoryTheory/Yoneda.lean,Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean,Mathlib/Computability/Halting.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/Finset/PiInduction.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Nat/Cast/SetInterval.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/GroupTheory/PresentedGroup.lean,Mathlib/LinearAlgebra/Finsupp/Defs.lean,Mathlib/LinearAlgebra/FreeModule/Basic.lean,Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean,Mathlib/NumberTheory/Dioph.lean,Mathlib/Order/CompleteLattice/PiLex.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Hom/WithTopBot.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/RelIso/Set.lean,Mathlib/Order/SuccPred/Archimedean.lean,Mathlib/Order/UpperLower/Closure.lean,Mathlib/RepresentationTheory/Basic.lean,Mathlib/RepresentationTheory/Subrepresentation.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Ideal/Nonunits.lean,Mathlib/RingTheory/IdealFilter/Topology.lean,Mathlib/RingTheory/Kaehler/Basic.lean,Mathlib/RingTheory/KrullDimension/Polynomial.lean,Mathlib/RingTheory/LocalProperties/Projective.lean,Mathlib/RingTheory/MvPowerSeries/LinearTopology.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean,Mathlib/Topology/Algebra/Module/UniformConvergence.lean,Mathlib/Topology/Algebra/StarSubalgebra.lean,Mathlib/Topology/Category/Profinite/Product.lean,Mathlib/Topology/Category/TopCat/Basic.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,Mathlib/Topology/Category/TopCat/ULift.lean,Mathlib/Topology/EMetricSpace/PairReduction.lean | 74 | 10 | ['eric-wieser', 'sgouezel'] | nobody | 18 days ago | unknown | unknown | |
| 35144 | daniel-carranza | feat(CategoryTheory/Enriched): tensor product of enriched categories | For a braided monoidal category `V`, defines the tensor product of `V`-categories `C` and `D`, and shows that the type of `V`-functors out of the tensor product `C \times D` is equivalent to the type of "enriched bifunctors" `EnrichedBifunctor V C D`. --- This work originates from infinity-cosmos project, where it is used to formalize the notion of cotensors in an enriched category. There are some additional coherence lemmas in a braided monoidal category which have been added. Currently, line 209 violates the style guideline that terminal simp calls should not be squeezed. When I tried to replace this with a single `simp`, I get an error message: `maximum recursion depth has been reached`. Any suggestions (either with this or anything else) are greatly appreciated - thank you! [](https://gitpod.io/from-referrer/) | new-contributor t-category-theory infinity-cosmos awaiting-author | 333/0 | Mathlib.lean,Mathlib/CategoryTheory/Enriched/TensorProductCategory.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean | 3 | 11 | ['daniel-carranza', 'emilyriehl', 'github-actions', 'robin-carlier'] | nobody | 17 days ago | unknown | unknown |
| 33050 | mkaratarakis | feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem | Lemmas missing for the formalisation of the proof of the Gelfond–Schneider theorem --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor WIP | 238/0 | Mathlib.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/Order.lean,Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart2.lean | 6 | 113 | ['SnirBroshi', 'github-actions', 'j-loreaux', 'mkaratarakis', 'riccardobrasca', 'vihdzp'] | riccardobrasca | 17 days ago | 27 days ago | 6 days |
| 34814 | GrigorenkoPV | feat(Tactic/ClearUnneeded): add `clear_unneeded` tactic | --- The simplest version suggested in https://github.com/leanprover-community/mathlib4/issues/25319 [](https://gitpod.io/from-referrer/) | t-meta new-contributor please-merge-master awaiting-author | 94/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ClearUnneeded.lean,Mathlib/Tactic/Common.lean,MathlibTest/ClearUnneeded.lean,scripts/noshake.json | 6 | 12 | ['BoltonBailey', 'GrigorenkoPV', 'github-actions', 'joneugster'] | joneugster | 17 days ago | 25 days ago | 2 days |
| 34876 | GrigorenkoPV | feat(Tactic/AssumptionQuestion): add `assumption?` tactic | --- As requested in #10361 TODO: maybe add some tests? [](https://gitpod.io/from-referrer/) | t-meta new-contributor awaiting-author | 85/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/AssumptionQuestion.lean,Mathlib/Tactic/Common.lean,MathlibTest/AssumptionQuestion.lean,scripts/noshake.json | 6 | 5 | ['GrigorenkoPV', 'SnirBroshi', 'github-actions', 'joneugster'] | joneugster | 17 days ago | 25 days ago | 22 hours |
| 31386 | harahu | doc: demote repeated H1 headers to H2 | --- [](https://gitpod.io/from-referrer/) | 220/4 | Archive/Imo/Imo2010Q5.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/RingTheory/QuasiFinite/Weakly.lean,Mathlib/Tactic/Linter/EmptyLine.lean,scripts/demote_docstring_headers.py,scripts/find_docstring_headers.py | 6 | 6 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 17 days ago | unknown | unknown | |
| 30900 | vihdzp | feat: run-length encoding | --- - [x] depends on: #30898 Moved from #17105. [](https://gitpod.io/from-referrer/) | t-data | 167/0 | Mathlib.lean,Mathlib/Data/List/RunLength.lean,Mathlib/Data/List/SplitBy.lean | 3 | 5 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127'] | TwoFX | 17 days ago | 21 days ago | 21 days |
| 33217 | Blackfeather007 | feat(Algebra): define associated graded structure for abelian group | In this PR we define the associated graded structure for abelian group when given a filtration and only give some basic lemmas about it. --- migrated from https://github.com/leanprover-community/mathlib4/pull/26857 | new-contributor t-ring-theory awaiting-author | 144/0 | Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean | 2 | 5 | ['erdOne', 'github-actions', 'urkud'] | erdOne | 17 days ago | 66 days ago | 4 days |
| 34948 | joneugster | feat(scripts/autolabel): add option to configure number of applied labels | add option to change the maximum number of labels the script can apply simultaneously. This does not change the behaviour of the script. The option remains at `1`, but it prepares for potential future adjustments. factored out from: #34066 --- [](https://gitpod.io/from-referrer/) | CI | 13/9 | scripts/autolabel.lean | 1 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | adomani | 17 days ago | 23 days ago | 1 day |
| 33020 | FormulaRabbit81 | chore(Topology): Deprecate file | --- - [x] depends on: #30851 deprecation [](https://gitpod.io/from-referrer/) | t-topology large-import merge-conflict | 82/49 | Mathlib/Topology/Compactness/HilbertCubeEmbedding.lean,Mathlib/Topology/MetricSpace/HausdorffAlexandroff.lean,Mathlib/Topology/MetricSpace/PiNat.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 17 days ago | 76 days ago | 3 hours |
| 23791 | SEU-Prime | Create AmiceTrans.lean | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-number-theory new-contributor | 2963/0 | Mathlib.lean,Mathlib/Analysis/Normed/Ring/Lemmas2.lean,Mathlib/NumberTheory/Padics/AmiceTrans.lean,Mathlib/NumberTheory/Padics/PSAC.lean,Mathlib/NumberTheory/Padics/PSAC2.lean,Mathlib/NumberTheory/Padics/PSAC3.lean,Mathlib/NumberTheory/Padics/PiGammainPS.lean,Mathlib/NumberTheory/Padics/PsiandVar.lean,Mathlib/RingTheory/AdicCompletion/Lemma.lean,Mathlib/RingTheory/PowerSeries/Comp.lean,Mathlib/Topology/ContinuousMap/ZeroAtBot.lean | 11 | 5 | ['SEU-Prime', 'github-actions', 'leanprover-community-bot-assistant', 'urkud'] | nobody | 17 days ago | unknown | unknown |
| 34677 | joneugster | feat(scripts/autolabel): add missing folders | add the following rules for folders not covered by the script yet: - `Mathlib/Geometry/Polygon` to `t-euclidean-geometry` - `Mathlib/Geometry/Diffeology` to `t-differential-geometry` - `Cache` to `ci` --- [](https://gitpod.io/from-referrer/) | CI | 7/2 | scripts/autolabel.lean | 1 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 17 days ago | unknown | unknown |
| 20967 | joneugster | tracking(CategoryTheory/Enriched/Limits): add conical limits | Tracking PR for adding conical limits
Co-authored-by: Emily Riehl |
merge-conflict WIP t-category-theory infinity-cosmos please-adopt | 619/1 | Mathlib.lean,Mathlib/CategoryTheory/Enriched/Limits/HasConicalLimits.lean,Mathlib/CategoryTheory/Enriched/Limits/HasConicalProducts.lean,Mathlib/CategoryTheory/Enriched/Limits/HasConicalPullbacks.lean,Mathlib/CategoryTheory/Enriched/Limits/HasConicalTerminal.lean,Mathlib/CategoryTheory/Enriched/Limits/IsConicalLimit.lean,Mathlib/CategoryTheory/Enriched/Limits/IsConicalTerminal.lean,Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean | 8 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 17 days ago | unknown | unknown |
| 23042 | joneugster | feat(CategoryTheory/Enriched/Limits): add HasConicalLimitsOfSize.shrink | --- Note: I've marked this "WIP" because I'm not yet sure when this will be needed and I'd probably put the PR on the queue once I've created some follow-up needing it. [](https://gitpod.io/from-referrer/) | WIP t-category-theory infinity-cosmos please-adopt | 22/1 | Mathlib/CategoryTheory/Enriched/Limits/HasConicalLimits.lean | 1 | 1 | ['github-actions'] | nobody | 17 days ago | unknown | unknown |
| 23142 | joneugster | feat(CategoryTheory/Enriched/Limits): add API for HasConicalLimit | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-category-theory infinity-cosmos please-adopt | 52/9 | Mathlib/CategoryTheory/Enriched/Limits/HasConicalLimits.lean | 1 | 2 | ['github-actions', 'joelriou'] | nobody | 17 days ago | unknown | unknown |
| 23145 | joneugster | feat(CategoryTheory/Enriched/Limits): add IsConicalLimits | --- - [ ] depends on: #23142 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory infinity-cosmos please-adopt | 221/9 | Mathlib.lean,Mathlib/CategoryTheory/Enriched/Limits/HasConicalLimits.lean,Mathlib/CategoryTheory/Enriched/Limits/IsConicalLimit.lean | 3 | 3 | ['github-actions', 'joelriou', 'mathlib4-dependent-issues-bot'] | nobody | 17 days ago | unknown | unknown |
| 35332 | yisiox | Add part of Kleene's Theorem: regular expressions match a regular language | This PR adds a proof that the language matched by a regular expression is a regular language. This is achieved by the following constructions and proofs of their correctness - A DFA `epsilon` which accepts the empty language - A DFA `char (a : α)` which accepts the language containing only a single symbol - An Epsilon-NFA `concat (M₁ : εNFA α σ₁) (M₂ : εNFA α σ₂)` which accepts the concatenation of the languages of two Epsilon-NFAs - An Epsilon-NFA `kstar (M : εNFA α σ)` which accepts the Kleene star of a language of an Epsilon-NFA The following theorems on closure are added - `IsRegular.zero` - `IsRegular.one` - `IsRegular.top` - `IsRegular.singleton` - `IsRegular.mul` - `IsRegular.kstar` which demonstrates - `IsRegular.matches` --- [](https://gitpod.io/from-referrer/) | t-computability new-contributor | 496/0 | Mathlib/Computability/DFA.lean,Mathlib/Computability/EpsilonNFA.lean | 2 | 2 | ['github-actions'] | nobody | 16 days ago | unknown | unknown |
| 20401 | RemyDegenne | feat: add sigmaFinite_iUnion | ```lean lemma sigmaFinite_iUnion (μ : Measure α) {s : ℕ → Set α} (h_meas : MeasurableSet (⋃ n, s n)) [∀ n, SigmaFinite (μ.restrict (s n))] : SigmaFinite (μ.restrict (⋃ n, s n)) ``` --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-measure-probability | 37/28 | Mathlib/MeasureTheory/Decomposition/Exhaustion.lean,Mathlib/MeasureTheory/Measure/Typeclasses.lean | 2 | 6 | ['RemyDegenne', 'github-actions', 'sgouezel', 'urkud'] | nobody | 16 days ago | unknown | unknown |
| 33281 | michelsol | feat(Analysis/SpecialFunctions/Integrals): integral of 1/sqrt(1-x^2) and its integrability. | Add the integral of the derivative of arcsin and its integrability. --- - [ ] depends on: #33280 [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict t-analysis | 59/0 | Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 16 days ago | 68 days ago | 13 minutes |
| 35339 | grunweg | feat: "confusing variables" linter | Continuation of #15400. This linter flags variable commands which both update an existing binder annotation and declare new variables: these can yield confusing or misleading error messages (see https://github.com/leanprover/lean4/issues/2789). Instead, these should be split in several variable statements. ------------ Help fixing these errors is welcome! Currently, the linter only catches some cases, when the updated binder is from a previous scope. To make it catch all cases, the linter could insert a section before the variable command and use that scope instead. See [zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Get.20scope.20*before*.20some.20syntax.20is.20evaluated) [discussions](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Determining.20variable.20binders.20from.20syntax). --- [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict awaiting-CI t-linter | 220/9 | Cache/Requests.lean,Mathlib/FieldTheory/AbelRuffini.lean,Mathlib/FieldTheory/IntermediateField/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean,Mathlib/Tactic/Linter/Lint.lean,Mathlib/Tactic/Linter/Style.lean,MathlibTest/LintStyle.lean | 8 | 0 | [] | nobody | 16 days ago | unknown | unknown |
| 35342 | grunweg | feat: add Diffeomorph.sumSumSumComm | This matches `{Equiv,Homeomorph.sumSumSumComm}`, and is needed to prove that addition in the cobordism group is commutative. From my bordism theory project. ---------- Migrated and rebased version of #22784. The current proof is not complete yet, and feels very painful. Medium-term, the best way forward might be to make fun_prop support manifolds. [](https://gitpod.io/from-referrer/) | WIP t-differential-geometry | 50/0 | Mathlib/Geometry/Manifold/Diffeomorph.lean | 1 | 1 | ['github-actions'] | nobody | 16 days ago | unknown | unknown |
| 27897 | grunweg | feat: check indentation of doc-strings | Likely will require further adaptations to mathlib. May land piece-wise. But at first, let's see how big the overall fallout actually is. (So far: 100 lines of implementation and tests, and 170 lines of fix-ups; which are probably mostly complete, but not entirely.) --- - [ ] depends on: #27898 [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-CI | 339/20 | Mathlib/Algebra/Order/Hom/Basic.lean,Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Algebra/Polynomial/Inductions.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean,Mathlib/CategoryTheory/ConcreteCategory/Basic.lean,Mathlib/CategoryTheory/Enriched/Opposite.lean,Mathlib/CategoryTheory/Filtered/Basic.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Limits.lean,Mathlib/CategoryTheory/NatIso.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/List/EditDistance/Defs.lean,Mathlib/Data/PNat/Xgcd.lean,Mathlib/Data/Part.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/Order/Filter/Partial.lean,Mathlib/Order/Interval/Finset/Defs.lean,Mathlib/RingTheory/DividedPowers/Basic.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/FunProp/Decl.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/FunProp/Types.lean,Mathlib/Tactic/Linter/DocString.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/RewriteSearch.lean,Mathlib/Tactic/ToAdditive/Frontend.lean,MathlibTest/DocString.lean,MathlibTest/slow_simp.lean | 37 | 5 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 16 days ago | unknown | unknown |
| 11500 | mcdoll | refactor(Topology/Algebra/Module/WeakDual): Clean up | - Move `Dual` and `dualPairing` lower in the import-hierachy - deduplicate `dualPairing` - Bundle continuity statements to `CLM`s. - Make `WeakDual` and `WeakSpace` reducible - Remove `refine'` in favor of `refine` --- Cleaning up `Analysis/NormedSpace/WeakDual` will be done in a second PR [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 227/179 | Mathlib.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/Dual.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/NormedSpace/Dual.lean,Mathlib/Analysis/NormedSpace/WeakDual.lean,Mathlib/Analysis/VonNeumannAlgebra/Basic.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/Algebra/Module/Dual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,docs/overview.yaml,docs/undergrad.yaml | 15 | 16 | ['ADedecker', 'grunweg', 'j-loreaux', 'kkytola', 'mathlib-bors', 'mcdoll', 'urkud'] | nobody | 16 days ago | unknown | unknown |
| 20428 | madvorak | feat(Data/Sign): lemmas about `∈ Set.range SignType.cast` | --- Perhaps `in_set_range_singType_cast_iff_abs` needs to be moved somewhere downstream. | merge-conflict WIP t-data | 40/0 | Mathlib/Data/Sign.lean | 1 | 13 | ['eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'madvorak', 'urkud'] | nobody | 16 days ago | unknown | unknown |
| 35151 | alreadydone | WIP: group scheme structure on Weierstrass curve | --- [](https://gitpod.io/from-referrer/) | WIP t-algebraic-geometry | 407/0 | Mathlib/AlgebraicGeometry/EllipticCurve/Projective/GroupScheme.lean | 1 | 3 | ['github-actions', 'joelriou'] | nobody | 16 days ago | unknown | unknown |
| 29281 | plp127 | doc: `Fin.natAdd_castLEEmb` | Change the docstring of `Fin.natAdd_castLEEmb` which confused me when I read it so I rewrote it. PS. this doesn't really follow the naming convention since data should be in `camelCase` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 2/3 | Mathlib/Data/Fin/Embedding.lean | 1 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 16 days ago | 163 days ago | 18 days |
| 34797 | vlad902 | feat(SimpleGraph): `cycleGraph_EulerianCircuit` is a cycle | (A follow-up PR will show that `cycleGraph_EulerianCircuit` is also hamiltonian.) --- - [x] depends on: #34766 - [x] depends on: #34796 [](https://gitpod.io/from-referrer/) | t-combinatorics awaiting-author | 32/2 | Mathlib/Combinatorics/SimpleGraph/Circulant.lean | 1 | 7 | ['Ruben-VandeVelde', 'github-actions', 'mathlib-dependent-issues', 'vlad902'] | nobody | 16 days ago | 17 days ago | 1 day |
| 34165 | zcyemi | feat(Archive/Imo/Imo2012Q5): IMO 2012 Q5 | --- Add IMO 2012 Q5 - [ ] depends on: #34157 - [ ] depends on: #34156 - [ ] depends on: #34155 - [ ] depends on: #33852 - [ ] depends on: #33479 - [ ] depends on: #31500 | blocked-by-other-PR large-import IMO merge-conflict | 965/12 | Archive.lean,Archive/Imo/Imo2012Q5.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/Geometry/Euclidean/Sphere/Basic.lean,Mathlib/Geometry/Euclidean/Sphere/Power.lean,Mathlib/Geometry/Euclidean/Triangle.lean,Mathlib/LinearAlgebra/AffineSpace/Independent.lean | 8 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 16 days ago | 42 days ago | 8 minutes |
| 27936 | alreadydone | feat(Algebra): additivize Dvd and Prime | `Prime` can't be directly additivized, so we introduce `Prime₀`, which drops the `≠ 0` condition, and additivize it to `AddPrime`. To show that `Prime₀` is a reasonable definition, we show its connection to `Irreducible` under `IsPrimal` and `IsRegular` conditions. We also show that an element in a product monoid is `Prime₀` iff one component is a unit and the other is `Prime₀`, and the same with `Prime₀` replaced by `Irreducible`. Also additivize `IsPrimal`, `IsRelPrime` and `DecompositionMonoid`. The motivation is that the primality of `single g 1` in `AddMonoidAlgebra k G` is connected to the primality of `g` in `G`. --- I've checked [all 29 files](https://github.com/search?q=repo%3Aleanprover-community%2Fmathlib4%20%E2%88%A3%20to_additive&type=code) containing the `∣` symbol and the `to_additive` attribute and fixed the wrongly translated (`dvd` to `addDvd`) names. TODO: connect (Add)Dvd to [ExistsMul/AddOfLE](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.html#ExistsMulOfLE) [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author merge-conflict | 398/185 | Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/Divisibility/Basic.lean,Mathlib/Algebra/Divisibility/Finite.lean,Mathlib/Algebra/Divisibility/Hom.lean,Mathlib/Algebra/Divisibility/Prod.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Prime/Defs.lean,Mathlib/Algebra/Prime/Lemmas.lean,Mathlib/Algebra/Prime/Prod.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/GroupTheory/Coset/Card.lean,Mathlib/GroupTheory/Exponent.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/GroupTheory/GroupAction/Period.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/OrderOfElement.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/Tactic/Translate/ToAdditive.lean | 30 | 38 | ['JovanGerb', 'YaelDillies', 'adomani', 'alreadydone', 'bryangingechen', 'github-actions', 'jcommelin', 'kbuzzard', 'leanprover-radar', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | bryangingechen | 16 days ago | 40 days ago | 106 days |
| 34156 | zcyemi | feat(Analysis/Convex/Between): add lemmas on convex combination of mem simplex interior | --- I add three lemmas of convex combinations preserving membership in the interior of a simplex. And also open a zulip thread [#mathlib4 > Best place for convex combination and simplex interior](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Best.20place.20for.20convex.20combination.20and.20simplex.20interior/with/568558406) deps: - [ ] depends on: #33852 | t-analysis merge-conflict | 170/0 | Mathlib/Analysis/Convex/Between.lean,Mathlib/LinearAlgebra/AffineSpace/Independent.lean | 2 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 16 days ago | 16 days ago | 20 minutes |
| 34503 | alreadydone | chore(RingTheory/Localization): generalize FractionRing to semirings | + Introduce `Submonoid.regulars`, the submonoid of regular elements in a monoid. + Replace `nonZeroDivisors` by `regulars` in the definition of (Is)FractionRing, generalizing from CommRing to CommSemiring. Finishes most of the remaining parts of issue #22997. --- [](https://gitpod.io/from-referrer/) | t-ring-theory t-algebra awaiting-CI WIP merge-conflict | 330/188 | Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Group/Hom/Basic.lean,Mathlib/Algebra/Group/Submonoid/Basic.lean,Mathlib/Algebra/Group/Submonoid/Defs.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/Ring/NonZeroDivisors.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/RingTheory/LocalRing/Basic.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean,Mathlib/RingTheory/Localization/FractionRing.lean | 13 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 16 days ago | unknown | unknown |
| 34973 | chrisflav | chore: replace `Punit` by `PUnit` | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 34/16 | Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/CategoryTheory/Action/Basic.lean,Mathlib/CategoryTheory/Extensive.lean,Mathlib/CategoryTheory/Limits/Sifted.lean,Mathlib/CategoryTheory/Limits/Types/Coproducts.lean,Mathlib/CategoryTheory/Limits/Types/Products.lean,Mathlib/Order/InitialSeg.lean,Mathlib/RingTheory/FreeCommRing.lean,Mathlib/Topology/UniformSpace/Equiv.lean | 9 | 4 | ['chrisflav', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier'] | joelriou | 16 days ago | 16 days ago | 7 days |
| 35134 | fpvandoorn | feat(translate): print constant names with hover info | Part of #34846. --- [](https://gitpod.io/from-referrer/) | t-meta awaiting-author merge-conflict | 46/28 | Mathlib/Tactic/Translate/Core.lean,MathlibTest/toAdditive.lean | 2 | 6 | ['JovanGerb', 'github-actions', 'mathlib-merge-conflicts'] | JovanGerb | 16 days ago | 18 days ago | 2 days |
| 29777 | yuanyi-350 | feat(Functional Analysis): closed Range Theorem | - [ ] depends on: #29151 [Corollary of Hahn-Banach theorem] - [ ] depends on: #29776 [refactor ContinuousLinearMap.isOpenMap by separating it into sublemmas] --- [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR new-contributor awaiting-author t-analysis merge-conflict | 237/25 | Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Analysis/Normed/Operator/ClosedRange.lean,Mathlib/Analysis/RCLike/Lemmas.lean,Mathlib/Topology/Order/OrderClosed.lean | 5 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | faenuccio | 16 days ago | unknown | unknown |
| 29151 | yuanyi-350 | feat: Corollary of Hahn–Banach theorem | In this PR, I have proved [Rudin, *Functional Analysis* (Theorem 3.7)][rudin1991] which is a step in proving the Closed Range Theorem. Also, I have added tags for the corresponding theorems in Rudin to mathlib.
3.7 Theorem. Suppose B is a convex, balanced, closed set in a locally convex space $X, x_0 \in X$, but $x_0 \notin B$. Then there exists $\Lambda \in X^*$ such that $|\Lambda x| \leq 1$ for all $x \in B$, but $\Lambda x_0>1$
proof. Since $B$ is closed and convex, we can apply (b) of Theorem 3.4, with $A=\{ x_0 \}$ , to obtain $\Lambda_1 \in X^*$ such that $\Lambda_1 x_0=r e^{i \theta}$ lies outside the closure $K$ of $\Lambda_1(B)$. Since $B$ is balanced, so is $K$. Hence there exists $s, 0 |
awaiting-author new-contributor large-import t-analysis merge-conflict | 70/1 | Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/RCLike/Lemmas.lean,Mathlib/Topology/Order/OrderClosed.lean | 3 | 17 | ['faenuccio', 'fpvandoorn', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mcdoll', 'themathqueen', 'yuanyi-350'] | faenuccio | 16 days ago | 163 days ago | 2 days |
| 35341 | grunweg | feat: lint against the tactic.skipAssignedInstances option in mathlib | This means we can remove the corresponding technical debt entry. Re-created version of #20872. --- [This comment](https://github.com/leanprover-community/mathlib4/pull/20872#issuecomment-2602743770) might still be relevant: does this linter need adaptations to recursively parse the outer `set_option`s? Wasn't there code written semi-recently which did this? [](https://gitpod.io/from-referrer/) | please-adopt t-linter | 54/3 | Mathlib/Tactic/Linter/Style.lean,MathlibTest/LintStyle.lean | 2 | 2 | ['github-actions'] | nobody | 16 days ago | unknown | unknown |
| 35344 | grunweg | feat: lint upon uses of the mono tactic | suggesting to use `gcongr` instead. In general, `mono` is unmaintained, was only partially ported --- and gcongr at this point is more featureful, actively developed and has a nicer user interface. The topic was also discussed [on zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Porting.20note.3A.20Fixing.20up.20.60mono.60/with/445125798). --- TODO: update the linter wording, fix its implementation and wait until tests pass Rebased and migrated version of #25700. --- [](https://gitpod.io/from-referrer/) | please-adopt t-linter RFC | 4/0 | MathlibTest/DeprecatedSyntaxLinter.lean,MathlibTest/Monotonicity.lean | 2 | 2 | ['github-actions', 'grunweg'] | nobody | 16 days ago | unknown | unknown |
| 29965 | RemyDegenne | feat(probability): define subtraction of kernels | This PR defines subtraction of kernels and uses it to prove `MeasurableSet {a | κ a = η a}` for two finite kernels `κ, η`. From the LeanBandits project. --- - [x] depends on: #35018 [](https://gitpod.io/from-referrer/) | WIP t-measure-probability large-import | 165/2 | Mathlib.lean,Mathlib/MeasureTheory/Measure/SubFinite.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/Probability/Kernel/RadonNikodym.lean,Mathlib/Probability/Kernel/Sub.lean | 5 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 16 days ago | unknown | unknown |
| 34442 | JohnnyTeutonic | feat(Algebra/Lie/Classical): add basis for sl(n) relative to chosen diagonal index | Adds a standard basis for sl n R parametrized by a chosen diagonal index i₀: Off-diagonal matrix units E_ij for i ≠ j Diagonal differences E_ii - E_{i₀i₀} for i ≠ i₀ The entry at i₀ is determined by trace-zero. Implements the approach suggested by @ocfnash in [#33818 (comment)](https://github.com/leanprover-community/mathlib4/pull/33818#issuecomment-3784786673). See also [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/lie.20algebra/near/516170116). Closes the request from #33818. Note: Developed with the assistance of Claude - the LinearEquiv machinery was beyond my current Lean expertise. --- [](https://gitpod.io/from-referrer/) | t-algebra | 507/0 | Mathlib/Algebra/Lie/Classical.lean | 1 | 9 | ['JohnnyTeutonic', 'eric-wieser', 'github-actions'] | riccardobrasca | 16 days ago | 19 days ago | 20 days |
| 35152 | j-loreaux | feat: add missing API for `lp E p` | The API for `lp` is significantly underdeveloped. This PR attempts to rectify some of the shortcomings. In particular, we provide: + some missing tools for `Memℓp`, notably `memℓp_norm_iff` and `Memℓp.mono`. + some improved docstrings and more uniform notation for the non-dependent case; note that we also *remove* the notation `ℓ^∞(ι)` for `lp (fun _ : ι ↦ ℝ) ∞` on the basis that there are other choices besides `ℝ` which would make at least as much sense here, including `ℂ`. + bundled version of maps (evaluation, inclusion as a linear map, summation in `ℓ¹`) as well as cleaning-up a few other odds and ends. --- [](https://gitpod.io/from-referrer/) | t-analysis | 189/26 | Mathlib/Analysis/InnerProductSpace/l2Space.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Topology/MetricSpace/Kuratowski.lean | 3 | 1 | ['github-actions'] | sgouezel | 16 days ago | 19 days ago | 19 days |
| 32534 | erdOne | feat(AlgebraicGeometry): Zariski's main theorem | --- - [x] depends on: #34274 - [x] depends on: #34017 - [ ] depends on: #34222 - [ ] depends on: #34269 - [ ] depends on: #33903 - [ ] depends on: #33803 - [ ] depends on: #33555 - [x] depends on: #33805 - [x] depends on: #33722 - [x] depends on: #33718 - [x] depends on: #32811 - [x] depends on: #32803 - [x] depends on: #33469 - [x] depends on: #33553 - [x] depends on: #32530 - [x] depends on: #32528 - [x] depends on: #32429 - [x] depends on: #32375 - [x] depends on: #30885 - [x] depends on: #32536 - [x] depends on: #32537 - [x] depends on: #32595 - [x] depends on: #32596 - [x] depends on: #32813 - [x] depends on: #32809 - [x] depends on: #32802 - [x] depends on: #33468 - [x] depends on: #32665 - [x] depends on: #32823 - [x] depends on: #32806 - [x] depends on: #32837 - [x] depends on: #33537 - [x] depends on: #33476 - [x] depends on: #33556 - [x] depends on: #33536 - [x] depends on: #33472 [](https://gitpod.io/from-referrer/) | WIP t-ring-theory | 4808/0 | Mathlib.lean,Mathlib/CFT/ActualStuff.lean,Mathlib/CFT/Etale.lean,Mathlib/CFT/EtaleLocalization.lean,Mathlib/CFT/Flat.lean,Mathlib/CFT/IntegralClosure.lean,Mathlib/CFT/IsStandardEtale.lean,Mathlib/CFT/Junk.lean,Mathlib/CFT/NewNo.lean,Mathlib/CFT/No.lean,Mathlib/CFT/Nonsense.lean,Mathlib/CFT/Normalization.lean,Mathlib/CFT/Prestuff.lean,Mathlib/CFT/SeparableResidueStruct.lean,Mathlib/CFT/Smooth.lean,Mathlib/CFT/SmoothFibers.lean,Mathlib/CFT/Stuff.lean,Mathlib/CFT/Stuff2.lean,Mathlib/CFT/ZariskiMain.lean,Mathlib/RingTheory/ZariskiMain.lean | 20 | 5 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 15 days ago | unknown | unknown |
| 35398 | vlad902 | feat(SimpleGraph): `bypass` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 17/0 | Mathlib/Combinatorics/SimpleGraph/Paths.lean | 1 | 1 | ['github-actions'] | nobody | 15 days ago | 15 days ago | 15 days |
| 35414 | joneugster | feat(Cache): Allow arguments of the form `Mathlib.Data.+` which correspond to a folder but not a file | This PR continues the work from #21838. Original PR: https://github.com/leanprover-community/mathlib4/pull/21838 | CI t-meta | 74/31 | Cache/IO.lean,Cache/Main.lean | 2 | 2 | ['github-actions', 'joneugster'] | eric-wieser | 15 days ago | unknown | unknown |
| 35413 | joneugster | fix(Util/CountHeartbeats): move elaboration in #count_heartbeats inside a namespace | This PR continues the work from #21182. Original PR: https://github.com/leanprover-community/mathlib4/pull/21182 | t-meta | 73/6 | Mathlib/Util/CountHeartbeats.lean,MathlibTest/CountHeartbeats.lean | 2 | 3 | ['github-actions', 'joneugster', 'mathlib-bors'] | adomani | 15 days ago | unknown | unknown |
| 16215 | adomasbaliuka | feat(Tactic/Linter): lint unwanted unicode | Add a text-based style linter that checks all unicode characters. - Only allow whitelisted characters, with a suggestion to add the flagged character to the whitelist - Some characters are specified to use emoji-variant or text-variant. The linter ensures these variant-selectors only appear in the correct places and provides an auto-fix to clean them up. --- Discussed at [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Whitelist.20for.20Unicode.3F/near/448721083) The current proposal checks each character against a whitelist. There is also the question of what the whitelist should contain. A reasonable whitelist might be "all unicode currently in Mathlib" ∪ [Wikipedia/Mathematical_operators_and_symbols_in_Unicode](https://en.wikipedia.org/wiki/Mathematical_operators_and_symbols_in_Unicode) ∪ [EdAyers/mathlib3/docs/unicode.md](https://github.com/EdAyers/mathlib/blob/fb5c2ffe917049959597b0a93b872e91f4004922/docs/unicode.md). Currently implemented is a subset of this list closer to what's currently present in mathlib. - [x] depends on: #17068 - [x] depends on: #17116 - [x] depends on: #17129 (part 1 of this PR) - ~depends on #34719 (part 1 of this PR)~ - ~depends on: #17131 (part 2 of this PR)~ (obsolete) - [x] depends on: #34022 (part 2 of this PR) - Future note: @adomasbaliuka says: "we might add something to the Mathlib 4 docs about this as well?" [](https://gitpod.io/from-referrer/) | merge-conflict t-linter | 462/15 | Mathlib/GroupTheory/GroupExtension/Defs.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/UnicodeLinter.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Widget/Conv.lean,Mathlib/Tactic/Widget/GCongr.lean,Mathlib/Topology/ContinuousFunction/Weierstrass.lean,test/LintStyle.lean | 9 | 51 | ['adomasbaliuka', 'eric-wieser', 'github-actions', 'grunweg', 'joneugster', 'mathlib-dependent-issues'] | joneugster | 15 days ago | unknown | unknown |
| 32918 | michelsol | feat: define `supEdist` and `supDist` | Create a new file Topology.MetricSpace.SupDistance and define the supremal distance in (extended) metric spaces. The defined `supEdist` and `supDist` will have similar theory to the already existing `infEdist` and `infDist`. The motivation is to be able to define the radius of a minimal bounding sphere as the infimum of the supDist later. [zulip discussion here](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalizing.20Jung's.20theorem.20and.20minimal.20bounding.20spheres) | t-topology new-contributor merge-conflict | 75/0 | Mathlib.lean,Mathlib/Topology/MetricSpace/SupDistance.lean | 2 | 5 | ['github-actions', 'mathlib4-merge-conflict-bot', 'michelsol', 'urkud'] | RemyDegenne | 15 days ago | 57 days ago | 21 days |
| 34909 | SnirBroshi | feat(Data/Sym/Sym2): `fromRel` equivalence with `Sigma` over a `Quotient` | Add a non-dependent recursor on members of a `fromRel` set, and the following `Equiv`s: - The `fromRel` set of a symmetric relation `r` is equivalent to summing that set restricted to fibers of `f`. - For a relation homomorphism `r →r r'` where `r` is symmetric, the `fromRel` set of `r` is equivalent to summing that set restricted to equivalence classes of `r'` using a `Subtype`. --- I find this recursor pretty useful when dealing with `fromRel`, the idea came from a suggestion by @kmill [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Eq.2Erec.20with.20a.20constant.20does.20nothing.3A.20h.20.E2.96.B8.20c.20.3D.20c/near/565176948) for another `Sym2` conundrum. [](https://gitpod.io/from-referrer/) | t-data | 43/0 | Mathlib/Data/Sym/Sym2.lean | 1 | 7 | ['SnirBroshi', 'eric-wieser', 'github-actions'] | pechersky | 15 days ago | 25 days ago | 25 days |
| 33275 | YuvalFilmus | feat(Trigonometric/Chebyshev/Extremal): Chebyshev polynomials maximize iterated derivatives | We prove that Chebyshev polynomials maximized iterated derivatives at points x≥1. --- - [x] depends on: #33259 - [x] depends on: #33274 [](https://gitpod.io/from-referrer/) | t-analysis | 74/1 | Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Extremal.lean | 1 | 6 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | dupuisf | 15 days ago | 39 days ago | 39 days |
| 33850 | YuvalFilmus | feat(Chebyshev/ChebyshevGauss): Chebyshev–Gauss formula | We prove the Chebyshev–Gauss quadrature formula, which reduces an integral with respect to the Chebyshev weight function to a finite sum. --- - [ ] depends on: #33676 [](https://gitpod.io/from-referrer/) | t-analysis | 167/0 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/ChebyshevGauss.lean | 2 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | ADedecker | 15 days ago | 34 days ago | 34 days |
| 29145 | JovanGerb | chore: use `to_additive` in more places | This PR addresses some comments about `to_additive` not working, by making it work more. --- [](https://gitpod.io/from-referrer/) | awaiting-CI t-meta merge-conflict | 61/177 | Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean,Mathlib/Combinatorics/Additive/DoublingConst.lean,Mathlib/Data/ZMod/Aut.lean,Mathlib/Topology/Algebra/InfiniteSum/Module.lean | 5 | 4 | ['JovanGerb', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 15 days ago | unknown | unknown |
| 33288 | vihdzp | chore(Combinatorics/SimpleGraph/Paths): review API | This PR does the following: - Add `grind` annotations. - Rename theorems `X_isY` to the more idiomatic `isY_X`. - Remove many redundant namespaces. - Golf accordingly. --- [](https://gitpod.io/from-referrer/) | t-combinatorics merge-conflict | 154/122 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Maps.lean | 6 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | b-mehta | 15 days ago | 15 days ago | 43 days |
| 34024 | adomani | feat: the global syntax linter | The `globalSyntax` linter emits a warning on pairs of consecutive commands with no overall effect. For instance, the linter would flag ```lean4 namespace X end X ``` and similarly for consecutive pairs of `open` or `section` and `end`. --- - [ ] depends on: #34019, with just the linter implementation - [x] depends on: #34021, with linter-driven corrections - [x] depends on: #34051, with linter-driven corrections [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR t-linter merge-conflict | 219/15 | Archive/Imo/Imo2024Q3.lean,Mathlib.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Init.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/GlobalSyntax.lean,MathlibTest/FindSyntax.lean,MathlibTest/Tauto.lean,MathlibTest/sqrt.lean | 9 | 13 | ['Ruben-VandeVelde', 'adomani', 'github-actions', 'grunweg', 'leanprover-radar', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 15 days ago | unknown | unknown |
| 34926 | mattrobball | test | Testing --- [](https://gitpod.io/from-referrer/) | merge-conflict | 1/1 | lean-toolchain | 1 | 9 | ['github-actions', 'kbuzzard', 'leanprover-radar', 'mathlib-merge-conflicts', 'mattrobball'] | nobody | 15 days ago | unknown | unknown |
| 34601 | themathqueen | feat(Combinatorics/SimpleGraph/AdjMatrix): adjacency matrix API | --- [](https://gitpod.io/from-referrer/) | t-combinatorics large-import | 117/19 | Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean | 1 | 21 | ['b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] | kmill | 15 days ago | 15 days ago | 32 days |
| 35017 | robo7179 | feat(Combinatorics/SimpleGraph/Acyclic): add every nontrivial tree has atleast two leaves | Added two theorems to prove that every non trivial tree has atleast two leaves (one in Finite the other in Acyclic). --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 94/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean | 2 | 24 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'robo7179'] | nobody | 15 days ago | 15 days ago | 21 days |
| 30001 | vihdzp | feat: concept generated by set of objects/attributes | --- - [ ] depends on: #29996 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-order | 253/109 | Mathlib/Order/Concept.lean | 1 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 15 days ago | unknown | unknown |
| 25983 | Multramate | feat(AlgebraicGeometry/EllipticCurve/Scheme): define the affine scheme associated to an elliptic curve | This PR continues the work from #14130. Original PR: https://github.com/leanprover-community/mathlib4/pull/14130 | t-algebraic-geometry | 307/0 | Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Scheme.lean | 3 | 2 | ['Multramate', 'github-actions'] | nobody | 15 days ago | unknown | unknown |
| 16553 | grunweg | WIP: tinkering with orientable manifolds | - wait for #33307 to get merged - PR the "normed space" part separately - WIP: a linear isomorphism on a connected set is either orientation-preserving or orientation-preserving: some form of this was merged into mathlib recently; TODO update this PR accordingly! - [ ] depends on: #33307 - [x] depends on: #8738 --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry blocked-by-other-PR | 287/0 | Mathlib.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/Orientable.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 15 days ago | unknown | unknown |
| 35327 | SnirBroshi | feat(SimpleGraph/Acyclic): the union of two trees that share exactly one vertex is a tree | --- A surprisingly painful proof for something that seems trivial when using a proof by drawing on the board. To avoid any doubts: no AI was involved whatsoever. [](https://gitpod.io/from-referrer/) | t-combinatorics | 95/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 2 | 3 | ['SnirBroshi', 'github-actions', 'vlad902'] | nobody | 15 days ago | 17 days ago | 17 days |
| 34578 | dennj | feat: define Boolean circuits over abstract gate families | This PR introduces a foundation for Boolean circuits parameterized by abstract gate families. ## Main definitions - `GateEval`: typeclass for gate families with Boolean semantics - `GateHom`: arity-preserving maps between gate families - `Circuit`: inductive type representing circuit syntax trees - `AC0Gate`, `ACC0Gate`, `TC0Gate`: standard complexity-theoretic gate bases ## Design notes The key design choice is to keep **syntax** (gate labels `G : Nat → Type`) separate from **semantics** (`GateEval.eval`), allowing users to define custom gate families (e.g., MAJ, XOR, arbitrary threshold gates) without modifying core definitions. ### Tree vs DAG representation We evaluated two approaches for circuit representation: 1. **Tree-based** (this PR): Circuits as inductive syntax trees 2. **DAG-based**: Circuits as lists of gates with index-based references We chose tree-based circuits because: - **Compositionality**: Easy to build circuits via `gate g (fun i => subcircuit i)` - **Type safety**: Arity-indexed gates (`G : Nat → Type`) catch errors at compile time - **Manipulation**: Natural support for `mapGate`, `subst`, `mapInputs` - **Mathlib philosophy**: Aligns with structural/compositional reasoning patterns For use cases requiring explicit sharing (complexity analysis, evaluation efficiency), a separate `DAG` type can be added later with proven equivalence via `Circuit.toDAG`. The current representation serves as a minimal foundation for size/depth measures, circuit families, and complexity classes (AC0, ACC0, TC0). --- [](https://gitpod.io/from-referrer/) | new-contributor t-computability | 919/0 | Mathlib.lean,Mathlib/Computability/Circuit/Basic.lean,Mathlib/Computability/Formula/Basic.lean,Mathlib/Computability/Gate.lean | 4 | 18 | ['LLaurance', 'YuvalFilmus', 'dennj', 'github-actions'] | nobody | 15 days ago | 15 days ago | 22 days |
| 31607 | grunweg | chore: rename `continuous{,On,At,Within}_const` to `ContinuousFoo.const` | Zulip discussion: [#mathlib4 > Naming convention @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.20convention/near/447491526) --- - [x] depends on: #34441 - [x] depends on: #34688 [](https://gitpod.io/from-referrer/) | delegated awaiting-CI merge-conflict | 357/369 | Archive/Hairer.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/UnitPartition.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean,Mathlib/Analysis/Calculus/DSlope.lean,Mathlib/Analysis/Calculus/Deriv/MeanValue.lean,Mathlib/Analysis/Calculus/DiffContOnCl.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/MeanValue.lean,Mathlib/Analysis/Calculus/Rademacher.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Complex/AbelLimit.lean,Mathlib/Analysis/Complex/AbsMax.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/Analysis/Complex/HalfPlane.lean,Mathlib/Analysis/Complex/LocallyUniformLimit.lean,Mathlib/Analysis/Complex/PhragmenLindelof.lean,Mathlib/Analysis/Complex/RemovableSingularity.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean,Mathlib/Analysis/Convex/Cone/InnerDual.lean,Mathlib/Analysis/Convex/Exposed.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/Analysis/Convex/PartitionOfUnity.lean,Mathlib/Analysis/Convex/PathConnected.lean,Mathlib/Analysis/Convex/Side.lean,Mathlib/Analysis/Convex/StdSimplex.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/InnerProductSpace/LinearPMap.lean,Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean,Mathlib/Analysis/InnerProductSpace/OfNorm.lean,Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean,Mathlib/Analysis/Normed/Affine/AddTorsor.lean,Mathlib/Analysis/Normed/Group/Continuity.lean,Mathlib/Analysis/Normed/Group/Lemmas.lean,Mathlib/Analysis/Normed/Module/Ball/Homeomorph.lean,Mathlib/Analysis/Normed/Module/Connected.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Operator/Completeness.lean,Mathlib/Analysis/ODE/Gronwall.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Isometric.lean,Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/PoissonSummation.lean,Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Analysis/SpecialFunctions/MulExpNegMulSq.lean,Mathlib/Analysis/SpecialFunctions/PolarCoord.lean,Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean,Mathlib/Dynamics/OmegaLimit.lean,Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean,Mathlib/Geometry/Manifold/Bordism.lean,Mathlib/Geometry/Manifold/Complex.lean,Mathlib/Geometry/Manifold/Instances/Icc.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Geometry/Manifold/SmoothApprox.lean,Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Integral/CircleIntegral.lean,Mathlib/MeasureTheory/Integral/CircleTransform.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean,Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean,Mathlib/MeasureTheory/Measure/Stieltjes.lean,Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean,Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean,Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean,Mathlib/NumberTheory/LSeries/Deriv.lean,Mathlib/NumberTheory/LSeries/Dirichlet.lean,Mathlib/NumberTheory/LSeries/DirichletContinuation.lean,Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/ModularForms/Bounds.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean,Mathlib/NumberTheory/Padics/PadicIntegers.lean | 181 | 10 | ['github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 27500 | Komyyy | feat: the Riemann zeta function is meromorphic | Also proves that the Hurwitz zeta function is meromorphic. This PR is split from #27499 to leave a good git diff history. --- The `large-import` change occurs only in the new module, so it poses no problem. - [x] depends on: #27499 - [x] depends on: #29817 This PR continues the work from #25597. Original PR: https://github.com/leanprover-community/mathlib4/pull/25597 | WIP t-analysis large-import | 87/3 | Mathlib/Analysis/Meromorphic/Complex.lean,Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean,Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean | 3 | 20 | ['Komyyy', 'github-actions', 'j-loreaux', 'loefflerd', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | j-loreaux | 14 days ago | 189 days ago | 30 days |
| 35418 | vlad902 | feat(SimpleGraph): `IsAcyclic` iff not 2-edge-reachable | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 46/5 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean | 3 | 3 | ['SnirBroshi', 'github-actions', 'vlad902'] | nobody | 14 days ago | 14 days ago | 15 days |
| 26345 | mans0954 | feat(Analysis/LocallyConvex/Polar): Bipolar theorem | The bipolar theorem states that the polar of the polar of a set `s` is equal to the closed absolutely convex hull of `s`. The argument here follows Conway, Chapter V. 1.8. This PR continues the work from #20843. Original PR: https://github.com/leanprover-community/mathlib4/pull/20843 - [x] depends on: #27316 | merge-conflict awaiting-author t-analysis large-import please-adopt | 322/64 | Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/Bipolar.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/LocallyConvex/WeakDual.lean,Mathlib/Topology/Algebra/Module/LinearSpan.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Module/WeakBilin.lean | 7 | 116 | ['JonBannon', 'eric-wieser', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'leanprover-community-bot-assistant', 'mans0954', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mcdoll', 'vihdzp'] | faenuccio and j-loreaux | 14 days ago | unknown | unknown |
| 26413 | michaellee94 | feat: existence of maximal solutions for ODEs meeting Picard-Lindelöf conditions | Add existence proof for maximal solution of ODE using Picard-Lindelöf and a uniqueness theorem using Grönwall's lemma. --- - [x] depends on: #26382 - [ ] depends on: #29186 - [ ] depends on: #35043 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR new-contributor t-analysis merge-conflict | 1300/431 | Mathlib.lean,Mathlib/Analysis/ODE/Basic.lean,Mathlib/Analysis/ODE/ExistUnique.lean,Mathlib/Analysis/ODE/Gronwall.lean,Mathlib/Analysis/ODE/MaximalSolution.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean,docs/1000.yaml,docs/undergrad.yaml | 13 | 95 | ['botbaki-review', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'michaellee94', 'winstonyin'] | nobody | 14 days ago | unknown | unknown |
| 33387 | AntoineChambert-Loir | chore(LinearAlgebra/Transvection/Basic): mv Transvection.lean file to Transvection.Basic.lean | In preparation for a long file about Dieudonné's theorem on the generation of the general and special linear groups, mv file#Mathlib/LinearAlgebra/Transvection.lean to file#Mathlib/LinearAlgebra/Transvection/Basic.lean --- - [ ] depends on: #33348 - [ ] depends on: #33347 [](https://gitpod.io/from-referrer/) | file-removed t-algebra blocked-by-other-PR merge-conflict | 283/7 | Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean | 3 | 8 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | 64 days ago | 8 minutes |
| 33392 | 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. --- - [ ] depends on: #33348 - [ ] depends on: #33347 - [ ] depends on: #33387 - [ ] depends on: #33282 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR file-removed merge-conflict | 844/7 | Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean | 6 | 8 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 33402 | AntoineChambert-Loir | feat(LinearAlgebra/Transvection/Generation): prove exceptional case in Dieudonné's theorem | Establish the fourth part of Dieudonné's theorem: is a linear equivalence is exceptional, it is the product of `finrank K (V ⧸ e.fixedSubmodule)` transvections and one dilatransvection. --- - [ ] depends on: #33348 - [ ] depends on: #33347 - [ ] depends on: #33387 - [ ] depends on: #33282 - [ ] depends on: #33392 [](https://gitpod.io/from-referrer/) | file-removed t-algebra blocked-by-other-PR merge-conflict | 1001/7 | Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean | 6 | 8 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 33485 | AntoineChambert-Loir | feat(LinearAlgebra/Transvection/Generation): prove the third part of Dieudonné's theorem | Prove the third part of Dieudonné's theorem : if `e : V ≃ₗ[K] V` is a product of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections and one dilatransvection, then it is not exceptional. Actually, we prove something slightly stronger : if `e : V ≃ₗ[K] V` is a product of a transvection and of `finrank K (V ⧸ e.fixedSubmodule) - 1` dilatransvections, then it is not exceptional. --- - [ ] depends on: #33347 - [ ] depends on: #33348 - [ ] depends on: #33387 - [ ] depends on: #33282 - [ ] depends on: #33392 - [ ] depends on: #33402 [](https://gitpod.io/from-referrer/) | file-removed t-algebra blocked-by-other-PR merge-conflict | 1448/7 | Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean | 6 | 8 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 33560 | AntoineChambert-Loir | feat(LinearAlgebra/Transvection/Generation): a linear equivalence is the product of dilatransvections | Prove that a linear equivalence `e` is the product of `V ⧸ e.fixedSubmodule` dilatransvections. (It cannot be a product of less.) --- - [ ] depends on: #33347 - [ ] depends on: #33348 - [ ] depends on: #33387 - [ ] depends on: #33282 - [ ] depends on: #33392 - [ ] depends on: #33402 - [ ] depends on: #33485 [](https://gitpod.io/from-referrer/) | file-removed t-algebra blocked-by-other-PR merge-conflict | 1561/7 | Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean | 6 | 8 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 33692 | AntoineChambert-Loir | feat(LinearAlgebra/Transvection/SpecialLinearGroup): generation of the special linear group by transvections | Consider transvections in the special linear group. Prove that they generate the group. Prove Dieudonné's refinement about the minimal number needed to write an element as a product of transvections. --- - [ ] depends on: #33560 - [ ] depends on: #33485 - [ ] depends on: #33402 - [ ] depends on: #33392 - [ ] depends on: #33387 - [ ] depends on: #33348 - [ ] depends on: #33347 - [ ] depends on: #33282 - [x] depends on: #32757 [](https://gitpod.io/from-referrer/) | t-algebra file-removed blocked-by-other-PR merge-conflict | 1800/22 | Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean,Mathlib/LinearAlgebra/Transvection/SpecialLinearGroup.lean | 7 | 7 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 33715 | AntoineChambert-Loir | feat(LinearAlgebra/Projectivization/Action): prove that the action is 2-transitive and primitive | Define the action of the special linear group on the projectivization. Prove that it is 2-transitive and primitive. --- - [ ] depends on: #33387 - [ ] depends on: #33347 - [ ] depends on: #32757 [](https://gitpod.io/from-referrer/) | file-removed blocked-by-other-PR t-algebra large-import merge-conflict | 295/54 | Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/Projectivization/Action.lean,Mathlib/LinearAlgebra/Projectivization/Basic.lean,Mathlib/LinearAlgebra/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean | 8 | 8 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 33882 | AntoineChambert-Loir | feat(LinearAlgebra/Transvection/SpecialLinearGroup): commutators in the special linear group | Over a field, prove the following results : * transvections are conjugate in the general linear group; except in rank 2, they are conjugate in the special linear group. * the special linear group is equal to its commutator subgroup (except when it doesn't, ie, in rank 2 over a field with 2 or 3 elements). --- - [ ] depends on: #33347 - [ ] depends on: #33348 - [ ] depends on: #33387 - [ ] depends on: #33282 - [ ] depends on: #33392 - [ ] depends on: #33402 - [ ] depends on: #33485 - [ ] depends on: #32757 - [ ] depends on: #33560 - [ ] depends on: #33692 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR file-removed t-algebra merge-conflict | 2854/559 | Mathlib.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/LinearAlgebra/Basis/Fin.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/Dual/Defs.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Transvection.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean,Mathlib/LinearAlgebra/Transvection/SpecialLinearGroup.lean | 12 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 33916 | AntoineChambert-Loir | feat(LinearAlgebra/SpecialLinearGroup/Simple): simplicity of the projective special linear group. | Let `K` be a field and `V` be a `K`-vector space. * `SpecialLinearGroup.isQuasiSimpleGroup`: if `finrank K V` is at least 3, or if `finrank K V = 2` and `K` has at least 4 elements, then `SpecialLinearGroup K V` is quasi-simple, namely, the quotient group `SpecialLinearGroup K V ⧸ Subgroup.center (SpecialLinearGroup K V)` is simple. --- - [x] depends on: #32757 - [x] depends on: #33347 - [x] depends on: #33282 - [ ] depends on: #33348 - [ ] depends on: #33387 - [ ] depends on: #33392 - [ ] depends on: #33402 - [ ] depends on: #33485 - [ ] depends on: #33560 - [ ] depends on: #33692 - [ ] depends on: #33882 [](https://gitpod.io/from-referrer/) | file-removed large-import blocked-by-other-PR t-algebra merge-conflict | 3253/563 | Mathlib.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/LinearAlgebra/Basis/Fin.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/Dual/Defs.lean,Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Projectivization/Action.lean,Mathlib/LinearAlgebra/Projectivization/Basic.lean,Mathlib/LinearAlgebra/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/SpecialLinearGroup/Simple.lean,Mathlib/LinearAlgebra/Transvection.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean,Mathlib/LinearAlgebra/Transvection/SpecialLinearGroup.lean | 16 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 33736 | fbarroero | feat(RingTheory/Polynomial/GaussNorm): The `gaussNorm` is an absolute value if `v` is a nonarchimedean absolute value | We prove ``` Polynomial.gaussNorm_isAbsoluteValue {c : ℝ} {R : Type*} [Ring R] {v : AbsoluteValue R ℝ} (hna : IsNonarchimedean v) (hc : 0 < c) : IsAbsoluteValue (gaussNorm v c) ``` --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 189/7 | Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean,Mathlib/RingTheory/Polynomial/GaussNorm.lean | 3 | 11 | ['copilot-pull-request-reviewer', 'erdOne', 'fbarroero', 'github-actions'] | ADedecker | 14 days ago | 14 days ago | 50 days |
| 31425 | robertmaxton42 | feat(Topology): implement delaborators for non-standard topology notation | Add delaborators for unary and binary notation related to non-standard topologies in the TopologicalSpace namespace. --- [](https://gitpod.io/from-referrer/) | t-topology | 250/4 | Mathlib.lean,Mathlib/Topology/Defs/Basic.lean,Mathlib/Util/DelabNonCanonical.lean,MathlibTest/Delab/TopologicalSpace.lean | 4 | 45 | ['eric-wieser', 'github-actions', 'jcommelin', 'kckennylau', 'robertmaxton42'] | eric-wieser | 14 days ago | 45 days ago | 99 days |
| 31613 | xyzw12345 | feat(RepresentationTheory/GroupCohomology): Non-abelian Group Cohomology | In this PR, we develop the theory of non-abelian group cohomology, following the section in GTM 67 - Local Fields by Jean-Pierre Serre. We defined H0 and H1, constructed the connection maps, proved the long exact sequence, and constructed natural isomorphisms between our H0, H1 and the existing `groupCohomology` API.
Co-authored by:
Jiedong Jiang @jjdishere |
t-algebra large-import awaiting-author | 634/0 | Mathlib.lean,Mathlib/GroupTheory/Subgroup/Center.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/NonAbelian.lean,Mathlib/RepresentationTheory/Rep.lean | 4 | 9 | ['eric-wieser', 'github-actions', 'kbuzzard', 'mathlib4-merge-conflict-bot', 'tb65536', 'xyzw12345'] | eric-wieser | 14 days ago | 14 days ago | 33 days |
| 33712 | wangying11123 | feat(Geometry/Euclidean/Angle/Unoriented/Projection): Add sameray_orthogonalProjection_vsub_of_angle_lt | Add sameray_orthogonalProjection_vsub_of_angle_lt `sameray_orthogonalProjection_vsub_of_angle_lt` When an angle is acute, the vector to the orthogonal projection lies in the same ray as the given direction vector. | new-contributor t-euclidean-geometry awaiting-author | 20/0 | Mathlib/Geometry/Euclidean/Angle/Unoriented/Projection.lean | 1 | 4 | ['JovanGerb', 'github-actions', 'j-loreaux'] | JovanGerb | 14 days ago | 14 days ago | 39 days |
| 33786 | hdmkindom | feat(Analysis/Matrix): add Jacobian matrix for matrix-valued functions | This PR introduces the Jacobian matrix for matrix-valued functions `F : Matrix m n ℝ → Matrix p q ℝ`. The Jacobian matrix `jacobianMatrix F X` at point `X` is indexed by `(p × q) × (m × n)`, where each entry represents the partial derivative with respect to a basis element. To handle instance-mismatch issues with matrix norms, we use local Frobenius norm instances. mkdir Analysis/Matrix/Jacobian.lean ## Main definitions - `jacobianMatrix F X`: The Jacobian matrix at point `X`, defined by `jacobianMatrix F X (i, k) (j, l) = (fderiv ℝ F X (Matrix.single j l 1)) i k` ## Main theorems - `fderiv_eq_jacobian_mul`: Express the Fréchet derivative as a contraction with the Jacobian - `jacobianMatrix_comp`: Chain rule for Jacobian matrices - `jacobianMatrix_linear`, `jacobianMatrix_id`, `jacobianMatrix_const`: Basic properties - `jacobianMatrix_add`, `jacobianMatrix_smul`: Linearity properties | t-analysis new-contributor awaiting-author | 219/0 | Mathlib.lean,Mathlib/Analysis/Matrix/Jacobian.lean | 2 | 11 | ['erdOne', 'github-actions', 'jcommelin'] | sgouezel | 14 days ago | 14 days ago | 39 days |
| 30667 | FrederickPu | feat(Mathlib/Algebra/Group/Subgroup/Pointwise): subgroup mul | Title: feat: pointwise products for subgroups Description: showed the point-wise product of disjoint subgroups is equivalent to their Cartesian product. Based on https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/useful.20group.20theory.20lemmas/with/546738566. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 28/0 | Mathlib/Algebra/Group/Subgroup/Pointwise.lean | 1 | 23 | ['FrederickPu', 'eric-wieser', 'github-actions', 'plp127', 'tb65536'] | nobody | 14 days ago | 14 days ago | 1 day |
| 34025 | lua-vr | feat(Integral.Bochner.Set): add `tendsto_setIntegral_of_monotone₀` | Adds the lemma `tendsto_setIntegral_of_monotone₀`, a version of `tendsto_setIntegral_of_monotone` requiring only `AEMeasurableSet` in the hypotheses. The previous version is redefined as a specialization. Also renames `integral_union_ae` to `setIntegral_union₀` for consistency with the rest of the library (it matches the existing `setIntegral_union`). --- [](https://gitpod.io/from-referrer/) Re-opened from #33206 and now taking respect for Windows users (thanks @ADedecker :). | t-measure-probability delegated | 27/13 | Mathlib/MeasureTheory/Integral/Bochner/Set.lean | 1 | 5 | ['github-actions', 'mathlib-bors', 'ocfnash'] | kex-y | 14 days ago | 14 days ago | 32 days |
| 34019 | adomani | feat: global syntax linter | --- [](https://gitpod.io/from-referrer/) | t-linter large-import | 141/0 | Mathlib.lean,Mathlib/Init.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/GlobalSyntax.lean | 4 | 5 | ['adomani', 'bryangingechen', 'github-actions', 'mathlib-splicebot'] | nobody | 14 days ago | unknown | unknown |
| 35448 | mathlib-splicebot | chore(Mathlib/Tactic/Linter/GlobalSyntax.lean): automated extraction | This PR was automatically created from a review comment on PR #34019. | t-linter new-contributor | 138/0 | Mathlib/Tactic/Linter/GlobalSyntax.lean | 1 | 2 | ['github-actions'] | nobody | 14 days ago | unknown | unknown |
| 33664 | ooovi | feat(Geometry/Convex/Cone/Pointed): face lattice of pointed cones | - Create a subdirectory in `Cone` for pointed cones and move existing files there. - Define `PointedCone.IsFaceOf`, for a pointed cone being a face of another pointed cone. - Prove some basic properties, that faces are extreme sets of their cone, and how they behave under intersection, map and product operations. - Define `Face` by bundling the `IsFaceOf` structure, and show the complete lattice structure on it. - Prove that taking the product of two faces is an order isomorphism. Co-authored-by: Martin Winter --- - [ ] depends on: #33780 for the definition of the lineal space [](https://gitpod.io/from-referrer/) | file-removed awaiting-author t-convex-geometry merge-conflict blocked-by-other-PR | 541/10 | Mathlib.lean,Mathlib/Analysis/Convex/Cone/Basic.lean,Mathlib/Analysis/Convex/Cone/Closure.lean,Mathlib/Analysis/Convex/Cone/Dual.lean,Mathlib/Geometry/Convex/Cone/Pointed/Basic.lean,Mathlib/Geometry/Convex/Cone/Pointed/Dual.lean,Mathlib/Geometry/Convex/Cone/Pointed/Face/Basic.lean,Mathlib/Geometry/Convex/Cone/Pointed/Face/Lattice.lean,Mathlib/Geometry/Convex/Cone/Pointed/TensorProduct.lean | 9 | 87 | ['YaelDillies', 'eric-wieser', 'github-actions', 'martinwintermath', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ooovi'] | nobody | 14 days ago | 56 days ago | 1 hour |
| 33793 | LTolDe | feat(MeasureTheory/Constructions/Polish/Basic): add lemma AnalyticSet.inter_nonempty_of_nowhereMeagre | add lemma AnalyticSet.inter_nonempty_of_nowhereMeagre, the main ingredient for the proof of the **Effros' Theorem**, see [#mathlib4 > Effros Theorem](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Effros.20Theorem/with/566543328) introduce definition of a nowhere meagre set --- [](https://gitpod.io/from-referrer/) | t-measure-probability new-contributor awaiting-author | 37/0 | Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Topology/GDelta/Basic.lean | 3 | 8 | ['MichaelStollBayreuth', 'erdOne', 'github-actions', 'j-loreaux'] | kex-y | 14 days ago | 14 days ago | 39 days |
| 32881 | foderm | feat(AlgebraicTopology/SimplicialObject): define simplicial homotopy | This file defines the notion of a combinatorial simplicial homotopy between two morphisms of simplicial objects. A first step towards proving homotopy invariance of simplicial homotopy. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/335062-homology/topic/Homotopy.20invariance.20of.20singular.20homology/with/562221688). I left in most of my comments to make it easier to understand what indices I used, since I had to shift most of them by 1 to avoid proofs of neq 0 or similar things. I guess they can be removed once we know that the equations are the correct ones. Additionally I added some simp lemmas and an identity, I hope this is more or less how this is usually done. --- [](https://gitpod.io/from-referrer/) | new-contributor t-algebraic-topology awaiting-author | 567/0 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialObject/ChainHomotopy.lean,Mathlib/AlgebraicTopology/SimplicialObject/SimplicialHomotopy.lean,Mathlib/AlgebraicTopology/SingularHomology/HomotopyInvariance.lean | 4 | 17 | ['foderm', 'github-actions', 'joelriou'] | nobody | 14 days ago | 79 days ago | 2 hours |
| 35400 | vlad902 | feat(SimpleGraph): `IsEdgeReachable` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 18/0 | Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean | 1 | 7 | ['SnirBroshi', 'github-actions', 'vlad902'] | nobody | 14 days ago | 14 days ago | 15 days |
| 34851 | dennj | feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations | This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization: - `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i` - `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x` - `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i` These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). | t-data new-contributor | 22/0 | Mathlib/Data/Matrix/Mul.lean | 1 | 5 | ['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] | pechersky | 14 days ago | 18 days ago | 27 days |
| 24965 | erdOne | refactor: Make `IsLocalHom` take unbundled map | Under the current definition, `IsLocalHom f` and `IsLocalHom f.toMonoidHom` are not defeq, which causes quite some annoyances. We also have a consensus to not use `*HomClass` in definitions. As a result, we change `IsLocalHom` to take an unbundled function instead of a funlike. --- [](https://gitpod.io/from-referrer/) | t-algebra delegated merge-conflict | 18/9 | Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean,Mathlib/Geometry/RingedSpace/OpenImmersion.lean,Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean | 5 | 15 | ['adomani', 'alreadydone', 'erdOne', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp'] | mattrobball | 14 days ago | 105 days ago | 14 days |
| 25622 | eric-wieser | refactor: overhaul instances on LocalizedModule | This: * Generalizes the `SMul`, `Module`, and `Algebra` instances via appropriate compatibility conditions * Generalizes the `Mul` instance to the non-unital setting * Fixes instances diamonds for the `Nat`- and `Int`-actions --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 214/100 | Mathlib/Algebra/Module/LocalizedModule/Basic.lean | 1 | 6 | ['erdOne', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts'] | nobody | 14 days ago | unknown | unknown |
| 25980 | Multramate | refactor(Algebra/Group/Submonoid/Operations): rename restrict to domRestrict and add restrict | And update the documentation for consistency | t-group-theory merge-conflict | 145/123 | Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/GroupTheory/FiniteAbelian/Duality.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Maps.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/GroupTheory/PGroup.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/GroupTheory/Transfer.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/NumberTheory/NumberField/CMField.lean,Mathlib/NumberTheory/NumberField/Ideal/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean | 14 | 10 | ['Multramate', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 14 days ago | 14 days ago | 5 days |
| 25981 | Multramate | feat(GroupTheory/GroupAction/Basic): define homomorphisms of fixed subgroups induced by homomorphisms of groups | This PR continues the work from #10126. Original PR: https://github.com/leanprover-community/mathlib4/pull/10126 | t-group-theory large-import merge-conflict | 218/144 | Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Ring/Action/Submonoid.lean,Mathlib/GroupTheory/FiniteAbelian/Duality.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Maps.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/GroupTheory/PGroup.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/GroupTheory/Transfer.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/NumberTheory/NumberField/CMField.lean,Mathlib/NumberTheory/NumberField/Ideal/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean | 16 | 8 | ['copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 14 days ago | 14 days ago | 4 days |
| 28546 | Sfgangloff | feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… | This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`. Summary of additions: - **Full shift and shift action** - `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type). - Right shift `shift g x` with convention `(shift g x) h = x (h * g)`. - **Cylinders and topology** - `cylinder U x : Set (G → A)` for finite `U : Finset G`. - Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed. - Equality with dependent products: `cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API. - **Patterns, occurrences, and subshifts** - `Pattern A G` with finite `support : Finset G` and `data : support → A`. - `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law. - `forbids F` and `Subshift A G` (closed, shift-invariant subsets). - `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness. - **Language on finite shapes and counting** - `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`. - **Entropy along a shape sequence** - `limsupAtTop` (as an `sInf` of eventual upper bounds). - `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)` for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`). - **Specializations** - `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`. - `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`. Mathematical remarks: - The API is **shape-parametric**: entropy is defined along user-provided finite shapes. - On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss). This PR does not assume amenability; the family of shapes is an explicit input. Motivation: Provide a clean, reusable base for symbolic dynamics on groups in mathlib. Future work: - Add a Følner predicate and prove shape-independence / limit existence on amenable groups. - Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors). - Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch). | t-dynamics new-contributor | 746/0 | Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean | 3 | 180 | ['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 14 days ago | 14 days ago | 109 days |
| 35313 | LexinonCraft | feat: IMO 2025 Q4 | This adds a solution for problem 4 from the International Math Olympiad 2025. --- | IMO new-contributor awaiting-author | 631/0 | Archive.lean,Archive/Imo/Imo2025Q4.lean | 2 | 4 | ['LexinonCraft', 'github-actions', 'jsm28'] | jsm28 | 14 days ago | 14 days ago | 3 days |
| 28462 | joelriou | feat(AlgebraicTopology/SimplicialSet): the relative cell complex attached to a rank function for a pairing | WIP From https://github.com/joelriou/topcat-model-category --- - [x] depends on: #32515 - [x] depends on: #32517 - [x] depends on: #32178 - [x] depends on: #32180 - [x] depends on: #31122 - [x] depends on: #28351 - [x] depends on: #28346 - [x] depends on: #28336 - [x] depends on: #28332 - [x] depends on: #28330 - [x] depends on: #28224 - [x] depends on: #27968 - [x] depends on: #28034 - [x] depends on: #26076 [](https://gitpod.io/from-referrer/) | t-algebraic-topology WIP merge-conflict | 410/0 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/IsUniquelyCodimOneFace.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/RelativeCellComplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean,Mathlib/AlgebraicTopology/SimplicialSet/Simplices.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/SubcomplexEvaluation.lean,Mathlib/Data/Fintype/Basic.lean,Mathlib/Order/Fin/Basic.lean | 11 | 10 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | unknown | unknown |
| 29764 | ScottCarnahan | feat(Algebra/Vertex): API up to residue products (WIP) | This PR contains definitions leading up to the residue product of vertex operators and some basic properties. Parts will be split off as smaller PRs when I have time. --- - [ ] depends on: #25831 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR large-import merge-conflict | 1234/17 | Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/RestrictedValue.lean,Mathlib/Algebra/Vertex/HVertexOperator.lean,Mathlib/Algebra/Vertex/VertexOperator.lean,Mathlib/RingTheory/Binomial.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/HahnSeries/Binomial.lean,Mathlib/RingTheory/HahnSeries/HEval.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/Summable.lean,Mathlib/RingTheory/Polynomial/Pochhammer.lean | 13 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 14 days ago | 166 days ago | 3 hours |
| 35316 | mkaratarakis | feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 4/5) | --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor blocked-by-other-PR | 86/0 | Mathlib/NumberTheory/Transcendental/AnalyticPart.lean | 1 | 5 | ['SnirBroshi', 'github-actions', 'mathlib-dependent-issues'] | nobody | 14 days ago | unknown | unknown |
| 31603 | alreadydone | chore(Algebra): make `RatFunc` an abbrev | I think there's no instance on `FractionRing K[X]` that shouldn't be shared by `RatFunc K`, so it's better to make the latter an abbrev. In the ongoing [Lüroth project](https://github.com/hdlean/mathlib4/pull/1/files#diff-02a084b8d8540eab8a346db8be4ba1a2b39b086bc1407125536d96adf6544544) I've been using `FractionRing K[X]` and it would be nice if we could gain direct access to `RatFunc` API (though not much is relevant, there was already one case where it's helpful), and if our results could be directly applied to RatFunc rather than going through some isomorphism boilerplate. Of course, some `IsRatFunc` predicate could also be an option (IsField + generated by one transcendental element over base field). --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra RFC merge-conflict | 113/423 | Mathlib/FieldTheory/Laurent.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/FieldTheory/RatFunc/Defs.lean,scripts/nolints_prime_decls.txt | 5 | 24 | ['Vierkantor', 'alreadydone', 'erdOne', 'github-actions', 'leanprover-bot', 'leanprover-radar', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'mattrobball'] | erdOne | 13 days ago | 101 days ago | 5 days |
| 33276 | NicolaBernini | feat: Rename List.reverse_perm to List.reverse_perm_self and List.reverse_perm' to List.reverse_perm_iff | --- [](https://gitpod.io/from-referrer/) | new-contributor awaiting-author t-data merge-conflict | 17/15 | Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Data/Finset/Dedup.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Defs.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/List/Permutation.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/NumberTheory/Divisors.lean | 8 | 5 | ['Ruben-VandeVelde', 'github-actions', 'mathlib-merge-conflicts'] | kim-em | 13 days ago | 64 days ago | 3 days |
| 33303 | sinhp | feat(CategoryTheory): The monads and comonads of locally cartesian closed categories | --- [](https://gitpod.io/from-referrer/) | WIP t-category-theory merge-conflict | 405/8 | Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Monad.lean | 3 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 13 days ago | unknown | unknown |
| 33441 | dupuisf | feat: add `LawfulInv` class for types with an inverse that behaves like `Ring.inverse` | This PR introduces a new typeclass `LawfulInv` for types which have an `Inv` instance that is equal to zero on non-invertible elements. This is meant to replace `Ring.inverse`. The current plan is to do this refactor in several steps: 1. This PR, which only introduces the class and adds instances for matrices and continuous linear maps. 2. Add instances for all C*-algebras, and make `CStarAlgebra` extend this. 3. Deprecate `Ring.inverse`. --- [](https://gitpod.io/from-referrer/) | awaiting-zulip t-algebra merge-conflict | 185/27 | Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/Invertible.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/RingTheory/DividedPowers/Padic.lean,Mathlib/Topology/Algebra/Module/Equiv.lean | 7 | 35 | ['dupuisf', 'eric-wieser', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'plp127'] | nobody | 13 days ago | 42 days ago | 7 days |
| 33795 | alreadydone | feat(Topology/Sheaves): LocalPredicate prerequisite for étalé spaces | --- [](https://gitpod.io/from-referrer/) | t-topology merge-conflict | 418/143 | Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Topology/Sheaves/LocalPredicate.lean,Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Stalks.lean | 6 | 12 | ['adamtopaz', 'alreadydone', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts'] | adamtopaz | 13 days ago | 13 days ago | 34 days |
| 33810 | dupuisf | feat: add instances of `LawfulInv` | --- - [ ] depends on: #33441 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR merge-conflict | 187/22 | Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/Invertible.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/RingTheory/DividedPowers/Padic.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/ContinuousMap/Bounded/Basic.lean | 9 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 13 days ago | unknown | unknown |
| 34075 | eric-wieser | feat: add a typeclass for the continuum hypothesis | This allows a proof from the Archive to be promoted to mathlib itself. The proof strategy of `iff_exists_sierpinski_pathological_pred` was written almost entirely with public Gemini 3 Thinking, and then manually corrected. --- [](https://gitpod.io/from-referrer/) | t-set-theory awaiting-author merge-conflict | 200/58 | Counterexamples/Phillips.lean,Mathlib.lean,Mathlib/SetTheory/Cardinal/ContinuumHypothesis.lean | 3 | 21 | ['b-mehta', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] | nobody | 13 days ago | unknown | unknown |
| 34179 | alreadydone | refactor(Algebra): weaken NormalizationMonoid | This PR replaces the two fields ``` normUnit_mul : ∀ {a b}, a ≠ 0 → b ≠ 0 → normUnit (a * b) = normUnit a * normUnit b normUnit_coe_units : ∀ u : αˣ, normUnit u = u⁻¹ ``` in the definition of NormalizationMonoid by ``` normUnit_one : normUnit 1 = 1 normUnit_mul_units {a : α} (u : αˣ) : a ≠ 0 → normUnit (a * u) = u⁻¹ * normUnit a ``` and rename the old version to StrongNormalizationMonoid. The vast majority of API continue to hold under this weakened notion of NormalizationMonoid; only a handful requires the original notion. Every cancellative monoid with zero admits a weakened NormalizationMonoid structure, and every GCDMonoid admits a weakened NormalizedGCDMonoid structure. This allows us to generalize [Polynomial.normalizedGcdMonoid](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Polynomial/Content.html#Polynomial.normalizedGcdMonoid) to all GCDMonoids. --- [](https://gitpod.io/from-referrer/) | t-ring-theory t-algebra awaiting-author merge-conflict | 505/330 | Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean,Mathlib/Algebra/GCDMonoid/Multiset.lean,Mathlib/Algebra/GCDMonoid/Nat.lean,Mathlib/Algebra/GCDMonoid/PUnit.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/NumberTheory/FLT/Basic.lean,Mathlib/RingTheory/ChainOfDivisors.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Polynomial/Content.lean,Mathlib/RingTheory/Polynomial/GaussLemma.lean,Mathlib/RingTheory/PowerSeries/Inverse.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Finite.lean,Mathlib/RingTheory/UniqueFactorizationDomain/GCDMonoid.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicative.lean,Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean | 20 | 28 | ['alreadydone', 'erdOne', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | erdOne | 13 days ago | 31 days ago | 8 days |
| 34955 | thorimur | chore: test overlapping instances linter | This draft PR is intended to test-run the syntax version of the overlapping instances linter in [this PR](https://github.com/JovanGerb/mathlib4/pull/1). The two purposes are 1. benching 2. figuring out which violations we should exempt/fix This PR is not intended to be merged. --- [](https://gitpod.io/from-referrer/) | large-import merge-conflict | 515/14 | Mathlib.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/CategoryTheory/Shift/Pullback.lean,Mathlib/Init.lean,Mathlib/Lean/ContextInfo.lean,Mathlib/Lean/Elab/InfoTree.lean,Mathlib/Lean/LocalContext.lean,Mathlib/Lean/Message.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/OverlappingInstances.lean,MathlibTest/OverlappingInstances.lean | 14 | 8 | ['github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'thorimur'] | nobody | 13 days ago | unknown | unknown |
| 35088 | JovanGerb | perf: increase prio of `LinearOrder.toPartialOrder` | This is an experiment to see if this improves performance. Currently, type class will never actually use `LinearOrder.toPartialOrder`, but instead will go through some lattice type classes in between, hence creating overly complicated instances. --- [](https://gitpod.io/from-referrer/) | t-order awaiting-CI merge-conflict | 1/0 | Mathlib/Order/Defs/LinearOrder.lean | 1 | 4 | ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | nobody | 13 days ago | unknown | unknown |
| 35197 | j-loreaux | feat: Hölder framework for `lp` spaces | --- - [ ] depends on: #35152 - [ ] depends on: #35198 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-analysis merge-conflict | 647/66 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/l2Space.lean,Mathlib/Analysis/MeanInequalities.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/Data/Real/ConjExponents.lean | 8 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 13 days ago | unknown | unknown |
| 34245 | staroperator | feat(Data/Set): add `Set.Uncountable` | There are `Set` specialized shortcuts `Set.Finite`, `Set.Infinite` and `Set.Countable`, but lacking `Set.Uncountable`. I find this useful in #34246. --- [](https://gitpod.io/from-referrer/) | t-data awaiting-zulip | 82/4 | Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Data/Set/Countable.lean,Mathlib/SetTheory/Cardinal/Basic.lean | 3 | 16 | ['github-actions', 'joneugster', 'staroperator', 'vihdzp'] | joneugster | 13 days ago | 28 days ago | 12 days |
| 31449 | kim-em | feat(SemilocallySimplyConnected): definition and alternative formulation | Note: Proofs in this PR were developed with assistance from Claude. | t-topology awaiting-author | 266/0 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SemilocallySimplyConnected.lean,Mathlib/Topology/Path.lean | 5 | 17 | ['ADedecker', 'alreadydone', 'github-actions', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot'] | jcommelin | 13 days ago | 13 days ago | 64 days |
| 34557 | kim-em | feat(Topology/Homotopy): add Path.subpathOn for restricting paths to subintervals | This PR adds `Path.subpathOn`, which extracts a subpath from a path γ on an interval [a, b] ⊆ [0, 1] by reparametrizing via the affine map t ↦ a + t(b - a). ### Main results - `Path.subpathOn`: definition of the restricted path - `Path.subpathOn_trans`: composing subpaths is homotopic to the combined subpath - `Path.subpathOn_self`: the trivial subpath [a,a] is homotopic to the constant path - `Path.subpathOn_zero_one`: the full subpath [0,1] is homotopic to the original path - Quotient-level versions of these theorems This material is split out from https://github.com/leanprover-community/mathlib4/pull/31576 to allow independent review. PR #31576 will depend on this PR once merged. 🤖 Prepared with Claude Code | t-topology awaiting-author | 216/0 | Mathlib.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/UnitInterval.lean,Mathlib/Topology/UnitInterval/ConvexSpace.lean | 4 | 8 | ['github-actions', 'jcommelin'] | jcommelin | 13 days ago | 13 days ago | 17 days |
| 34551 | IlPreteRosso | refactor(Data.Finset.*Antidiagonal): rename defs to `set*Antidiagonal` and deprecate old names in namespace Finset | Main file is [Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html). Adds `Finset.HasMulAntidiagonal`, the multiplicative counterpart to `HasAntidiagonal`, linked via `@[to_additive existing]`. Split PR (current changes): This PR renames the set-based antidiagonal definitions to have a `set` prefix, distinguishing them from the typeclass-based API in `Prod.lean`. **Only definitions are renamed in this PR.** Theorem/lemma renames will follow in a subsequent PR. [MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean) - `mulAntidiagonal` → `setMulAntidiagonal` - `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`) [SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean) - `SMulAntidiagonal` → `setSMulAntidiagonal` - `VAddAntidiagonal` → `setVAddAntidiagonal` (via `@[to_additive]`) Propagates to: - `Mathlib/RingTheory/HahnSeries/Multiplication.lean` - `Mathlib/RingTheory/HahnSeries/Summable.lean` --- Added deprecation aliases for the renamed definitions. [Finset/MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean) ``` @[to_additive (attr := deprecated setAddAntidiagonal (since := "2026-01-31")), deprecated setMulAntidiagonal (since := "2026-01-31")] alias mulAntidiagonal := setMulAntidiagonal ``` [Finset/SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean) ``` @[to_additive (attr := deprecated setVAddAntidiagonal (since := "2026-01-31")), deprecated setSMulAntidiagonal (since := "2026-01-31")] alias smulAntidiagonal := setSMulAntidiagonal ``` Propagates: [PointwiseSMul.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finsupp/PointwiseSMul.lean) - updated to use Set.vaddAntidiagonal (the original Set name) --- Full changes to be made: For a monoid `M`, `mulAntidiagonal n` returns the finset of pairs `(i, j)` such that `i * j = n`. [MulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/MulAntidiagonal.html) - `mulAntidiagonal` → `setMulAntidiagonal` - `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`) - All related theorems renamed accordingly: - `mem_setMulAntidiagonal` - `setMulAntidiagonal_mono_left`/`setMulAntidiagonal_mono_right` - `swap_mem_setMulAntidiagonal` - `support_setMulAntidiagonal_subset_mul` - `isPWO_support_setMulAntidiagonal` - `setMulAntidiagonal_min_mul_min` [SMulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/SMulAntidiagonal.html) - `setSMulAntidiagonal` (lowercase `set` prefix) - `setVAddAntidiagonal` (via `@[to_additive setVAddAntidiagonal ...]`) - All related theorems use lowercase `set` prefix: - `mem_setSMulAntidiagonal` / `mem_setVAddAntidiagonal` - `setSMulAntidiagonal_mono_left`/`setSMulAntidiagonal_mono_right` / `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right` - `support_setSMulAntidiagonal_subset_smul` / `support_setVAddAntidiagonal_subset_vadd` - `isPWO_support_setSMulAntidiagonal` / `isPWO_support_setVAddAntidiagonal` - `setSMulAntidiagonal_min_smul_min` / `setVAddAntidiagonal_min_vadd_min` [Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html) - Added explicit `@[to_additive]` target names: - `@[to_additive antidiagonal_congr ...]` for `mulAntidiagonal_congr` - `@[to_additive (attr := ext) antidiagonal_subtype_ext ...]` for `mulAntidiagonal_subtype_ext` - `@[to_additive antidiagonal_congr' ...]` for `mulAntidiagonal_congr'` - `@[to_additive (attr := simps) sigmaAntidiagonalEquivProd ...]` for `sigmaMulAntidiagonalEquivProd` [Multiplication.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Multiplication.html) - Updated all VAdd antidiagonal references to use lowercase `set` prefix: - `setVAddAntidiagonal` - `mem_setVAddAntidiagonal` - `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right` - `isPWO_support_setVAddAntidiagonal` - `support_setVAddAntidiagonal_subset_vadd` - `setVAddAntidiagonal_min_vadd_min` - Updated all Add antidiagonal references: - `mem_setAddAntidiagonal` - `swap_mem_setAddAntidiagonal` [Summable.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Summable.html) - `setVAddAntidiagonal` references updated - `mem_setAddAntidiagonal` references updated [PowerSeries.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/PowerSeries.html) - `mem_addAntidiagonal` → `mem_setAddAntidiagonal` | t-algebra new-contributor awaiting-author | 67/47 | Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/Set/MulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/Summable.lean | 6 | 7 | ['IlPreteRosso', 'Ruben-VandeVelde', 'github-actions', 'jcommelin', 'kim-em', 'mathlib-merge-conflicts'] | jcommelin | 13 days ago | 13 days ago | 18 days |
| 34077 | kbuzzard | perf: increase priority of instSMulOfMul | #31040 deprecated `Mul.toSMul` in place of the core instance `instSMulOfMul`, which is at a lowered priority of 910. This PR undeprecates it and makes it a higher priority instance (1100) which seems better for mathlib. --- [](https://gitpod.io/from-referrer/) This PR follows the philosophy seen in Mathlib's `Algebra.id : Algebra R R`, which also has raised priority. The idea is the same as `Algebra.id`: if you're looking for an instance of `Algebra R S` with R not equal to S then `Algebra.id` is extremely likely to fail quickly in practice, and if you're looking for an instance of `Algebra R R` then `Algebra.id` is unambiguously the right answer so should be tried ASAP. However the instance is defined so early in mathlib that in in practice it is tried last unless the priority is raised. The same philosophy holds here; if you're looking for an instance of `SMul X X` then you absolutely want to try `Mul.toSMul` first and if you're looking for an instance of `SMul X Y` with Y not X then `Mul.toSMul` will in practice be quick to fail. This PR was inspired by #33908 (another "this should be quick to fail and if it fits then it's almost certainly what we want" prio change) which made an instance of `IsScalarTower R A A` high priority and gave a performance boost. This PR also gives a performance boost. Note that the performance in #31040 looks very bad but the radar output is incorrect; there was a hardware change between the two runs. In fact #31040 produced no changes in profiling, as one might expect. I don't know the correct way to change the priority of a core instance in mathlib, and I didn't know if just changing the priority naively would work repo-wide rather than just file-wide, which was why this PR introduces a second instance. Zulip discussion at [#mathlib4 > priority hacks](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/priority.20hacks/with/574353616) | t-algebra awaiting-zulip | 3/9 | Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/Units.lean | 2 | 25 | ['alreadydone', 'github-actions', 'kbuzzard', 'leanprover-radar'] | jcommelin | 13 days ago | 13 days ago | 14 hours |
| 26299 | adomani | perf: the `whitespace` linter only acts on modified files | Introduces an `IO.Ref` to allow the `commandStart` linter to only run on files that git considers modified with respect to `master`. The linter is also active on files that have had some error, as these are likely being modified! The PR should also mitigate the speed-up that the linter introduced: [#mathlib4 > A whitespace linter @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/A.20whitespace.20linter/near/525091877) Assuming that this goes well, a similar mechanism could be applied to several linters that do not need to run on all code, just on the modified code. Implementation detail: the linter is currently either on or off in "whole" files. It may be also a future development to make this more granular and only run the linter on "modifed commands in modified files", but this is not currently the plan for this modification! --- [](https://gitpod.io/from-referrer/) | t-linter awaiting-zulip awaiting-author | 55/7 | Mathlib/Tactic/Linter/Whitespace.lean | 1 | 19 | ['adomani', 'eric-wieser', 'github-actions', 'grunweg', 'joneugster', 'kim-em', 'leanprover-bot', 'leanprover-radar', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | grunweg | 13 days ago | 186 days ago | 66 days |
| 35345 | grunweg | feat(Linter.openClassical): also lint for Classical declarations as | …a local or scoped instance. Rebased and migrated version of #23763. --- [](https://gitpod.io/from-referrer/) | t-linter | 131/31 | Mathlib/RingTheory/Perfection.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean,MathlibTest/LintStyle.lean | 4 | 1 | ['github-actions'] | nobody | 13 days ago | unknown | unknown |
| 34674 | Citronhat | feat(Algebra/Order/Ring): replace ENNReal lemmas with WithTop versions | * Add `WithTop` versions of basic multiplicative order lemmas. * Use the new `WithTop` lemmas to replace `ENNReal` proofs and address six TODOs. * Fix a typo in the `pos_of_ne_zero` alias name. | new-contributor t-algebra merge-conflict | 46/15 | Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Data/ENNReal/Operations.lean | 3 | 5 | ['Citronhat', 'Ruben-VandeVelde', 'github-actions', 'mathlib-merge-conflicts'] | Ruben-VandeVelde | 13 days ago | 13 days ago | 16 days |
| 28582 | Thmoas-Guan | feat(Data): some lemmas about WithBot ENat | Add some lemma about withBot ENat discovered when dealing with `ringKrullDim` --- [](https://gitpod.io/from-referrer/) | t-data awaiting-author | 58/10 | Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean | 2 | 37 | ['Ruben-VandeVelde', 'Thmoas-Guan', 'YaelDillies', 'alreadydone', 'erdOne', 'github-actions', 'pechersky', 'urkud'] | pechersky | 13 days ago | 24 days ago | 66 days |
| 31892 | 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/) | blocked-by-other-PR t-euclidean-geometry | 424/7 | Mathlib.lean,Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean | 4 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 13 days ago | unknown | unknown |
| 31893 | jsm28 | feat(Geometry/Euclidean/Sphere/Tangent): characterize `tangentsFrom` | Add lemmas relating tangency to polars, and thereby characterizing `tangentsFrom`: empty for a point inside the sphere, a singleton for a point on the sphere and, in two dimensions, of cardinality two for a point outside the circle. --- - [ ] depends on: #31891 - [ ] depends on: #31892 - [ ] depends on: #32296 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-euclidean-geometry | 483/9 | Mathlib.lean,Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean | 4 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 13 days ago | unknown | unknown |
| 31981 | jsm28 | feat(Geometry/Euclidean/Incenter): `tangentSet` and `tangentsFrom` lemmas | Add lemmas relating the faces of a simplex to `tangentSet` and `tangentsFrom` for an exsphere, in particular for a triangle that any two side lines are the `tangentsFrom` their shared vertex to the insphere or any exsphere. --- - [ ] depends on: #31733 - [ ] depends on: #31891 - [ ] depends on: #31892 - [ ] depends on: #31893 - [x] depends on: #31978 - [ ] depends on: #31979 - [x] depends on: #31980 - [ ] depends on: #32296 [](https://gitpod.io/from-referrer/) | t-euclidean-geometry blocked-by-other-PR | 583/9 | Mathlib.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean | 5 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 13 days ago | 101 days ago | 9 minutes |
| 26214 | Thmoas-Guan | feat(Algebra): definition of depth | In this PR, we defined the depth of two modules as the minimal order of nonvanishing `Ext` and the `I-depth` for ideal `I` and some basic properties. Including the equivalence of the two in the condition of rees theorem. --- - [ ] depends on: #26212 - [ ] depends on: #32966 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR large-import | 628/24 | Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 5 | 7 | ['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 13 days ago | unknown | unknown |
| 26215 | Thmoas-Guan | feat(Algebra): Auslander–Buchsbaum theorem | This PR mainly proved the Auslander-Buchsbaum theorem stating for a noetherian local ring `R` and a finitely generated `R` module `M` , `proj.dim(M) + depth(M) = depth(R)`.
Co-authored-by: Yongle Hu |
t-algebra blocked-by-other-PR large-import | 1025/24 | Mathlib.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/AuslanderBuchsbaum.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 7 | 9 | ['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 13 days ago | unknown | unknown |
| 26216 | Thmoas-Guan | feat(Algebra): depth of QuotSMulTop | In this PR, we proved for a local ring `R` and a finitely generated `R` module `M N`, `IsSMulRegular M x` and `x ∈ Module.annihilator R N`, then `depth(N, M/xM) + 1 = depth(N, M)`, and its corollary for quotient regular seqence. --- - [ ] depends on: #26214 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR large-import | 914/24 | Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 5 | 7 | ['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 13 days ago | unknown | unknown |
| 35484 | harahu | chore(Geometry): fix markdown lists | --- [](https://gitpod.io/from-referrer/) | 39/35 | Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean | 2 | 1 | ['github-actions'] | nobody | 13 days ago | unknown | unknown | |
| 26217 | Thmoas-Guan | feat(Algebra): Ischebeck theorem | This PR mainly proved the Ischbecke theorem, stating that `depth(N,M)` is greater or equal to `depth(M) - dim(N)` for finitely generated module `N, M` over local ring. --- - [ ] depends on: #26214 - [ ] depends on: #32081 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR large-import | 904/24 | Mathlib.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 7 | 9 | ['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 13 days ago | unknown | unknown |
| 26218 | Thmoas-Guan | feat(Algebra): definition of cohen macaulay | In this PR, we added the definition of CM module, CM local ring (extending local ring), and CM ring. We also proved Theorem 30, Chater 6, _Commutative Algebra_, Matsumura. --- - [x] depends on: #26219 - [ ] depends on: #26217 - [ ] depends on: #26216 - [ ] depends on: #28582 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR large-import | 1830/34 | Mathlib.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 10 | 15 | ['Thmoas-Guan', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 13 days ago | unknown | unknown |
| 26957 | Thmoas-Guan | feat(Algebra): unmixed thm of Cohen-Macaulay ring | In this PR we proved for a (comm)ring `R`, `R` is Cohen-Macaulay ring iff the unmixed theorem holds (for every ideal `I` of height `r` generated by `r` elements, all associated primes of `R/I` have height `r` ) --- - [ ] depends on: #26245 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR large-import | 2400/34 | Mathlib.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Catenary.lean,Mathlib/RingTheory/CohenMacaulay/Unmixed.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 12 | 13 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 13 days ago | unknown | unknown |
| 35360 | vlad902 | chore: rename `cycleGraph_EulerianCircuit` to `cycleGraph.cycle` | Per [this](https://github.com/leanprover-community/mathlib4/pull/34797#discussion_r2807963752) review feedback, this definition is inappropriately named with an underscore and should be renamed. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 21/17 | Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean | 2 | 2 | ['github-actions', 'vlad902'] | nobody | 13 days ago | 16 days ago | 16 days |
| 26966 | vihdzp | feat: the Dedekind–MacNeille completion | We define the type of Dedekind cuts `DedekindCut α` as an abbreviation for `Concept α α (· ≤ ·)`. We prove that it's the smallest complete lattice containing a given partial order, in the sense that any embedding from `α` into a complete lattice factors through it. --- The idea here is that one should be able to work with Dedekind cuts without knowing what a concept lattice is; whence the abbreviation. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Dedekind-MacNeille.20completion.2E/near/528004148). - [ ] depends on: #30001 - [x] depends on: #29995 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-order | 485/111 | Mathlib.lean,Mathlib/Order/Completion.lean,Mathlib/Order/Concept.lean | 3 | 24 | ['YaelDillies', 'github-actions', 'leanprover-community-bot-assistant', 'linesthatinterlace', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vihdzp'] | nobody | 13 days ago | 236 days ago | 4 hours |
| 35472 | rao107 | feat(Probability): add `CharacteristicFunction` section to binomial distribution | Adds characteristic function, mgf, and cgf of the binomial distribution. Also adds Integrable lemmas for binomial. This commit based heavily off of the CharacteristicFunction section for the Gaussian distribution. This PR is an alteration of #34866 which would have added similar theorems and lemmas. However, this PR builds on top of the API that @YaelDillies wrote in #28248. To be forthcoming, I used Claude Code to help with the proofs of `complexMGF_id_binomialReal` and `integrable_exp_mul_binomialReal`. The proofs are structured how I would want them and I would vouch for them. Any comments or suggestions for improvements are very welcome, thanks! --- - [ ] depends on: #28248 [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability blocked-by-other-PR | 367/0 | Mathlib.lean,Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/Probability/Distributions/Binomial.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 13 days ago | 13 days ago | 4 seconds |
| 33252 | SnirBroshi | chore(Combinatorics/SimpleGraph/Coloring): use `IsIndepSet` instead of `IsAntichain` to spell "a color class is an independent set" | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 6/2 | Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Partition.lean | 2 | 1 | ['github-actions'] | b-mehta | 13 days ago | 25 days ago | 37 days |
| 31879 | Thmoas-Guan | feat(Algebra/Homology): Projective dimension in linear equiv | In this PR, we proved that projective dimension is stable under (semi-) linear equiv of general universe. --- - [ ] depends on: #32316 [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author | 123/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ProjectiveDimension.lean | 2 | 9 | ['Thmoas-Guan', 'dagurtomas', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | dagurtomas | 13 days ago | 33 days ago | 7 days |
| 28599 | Thmoas-Guan | feat(RingTheory): polynomial over CM ring is CM | polynomial over Cohen Macaulay ring is Cohen Macaulay --- - [ ] depends on: #26218 [](https://gitpod.io/from-referrer/) | t-ring-theory large-import blocked-by-other-PR | 2042/34 | Mathlib.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Polynomial.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 11 | 13 | ['Thmoas-Guan', 'erdOne', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | mariainesdff | 13 days ago | 13 days ago | 3 days |
| 35417 | joneugster | refactor(Cache): use module name for file hash instead of non-resolved file path | This PR continues the work from #21842. Original PR: https://github.com/leanprover-community/mathlib4/pull/21842 - [ ] depends on: #35415 - [ ] depends on: #35414 --- | CI t-meta blocked-by-other-PR merge-conflict | 149/263 | Cache/Hashing.lean,Cache/IO.lean,Cache/Main.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 13 days ago | unknown | unknown |
| 34193 | bwangpj | feat(Topology/Algebra/Ring): ContinuousAddEquiv.mulLeft, mulRight | The additive homeomorphism from a topological ring to itself, induced by left/right multiplication by a unit. From FLT. --- [](https://gitpod.io/from-referrer/) | t-topology FLT maintainer-merge | 25/0 | Mathlib/Topology/Algebra/Ring/Basic.lean | 1 | 10 | ['bwangpj', 'dagurtomas', 'eric-wieser', 'github-actions', 'riccardobrasca'] | dagurtomas | 12 days ago | 41 days ago | 41 days |
| 35521 | grunweg | feat: the unusedSetOptionIn linter (rebased) | Rebased version of #13653, adapted to current mathlib master. --- [](https://gitpod.io/from-referrer/) | WIP t-linter large-import | 209/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/UnnecessarySetOptionIn.lean,MathlibTest/UnnecessarySetOptionIn.lean | 6 | 2 | ['github-actions'] | nobody | 12 days ago | unknown | unknown |
| 32891 | felixpernegger | feat(Topology/EMetricSpace): Introduction of ```Weak(Pseudo)EMetricSpace``` | This PR introduces Weak(Pseudo)EMetric spaces, some basic properties and the fact that the One-Point Compactification of a Weak(Pseudo)EMetricSpace again has a Weak(Pseudo)EMetricSpace structure. This is inspired by discussion at [this](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/EMetricSpace.20is.20broken/near/530540916) and based on #27756. In short, types like ```ENNReal``` and ```ENat``` have a very "metric-like" structure, but are not yet a ```WeakPseudoEMetricSpace``` (which is the weakest form of a metric-like structure in mathlib). Therefore, the class```WeakEMetricSpace``` could be used to make more definitions applicable to ```ENNReal```, for instance EVartiationOn ([this](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/EMetricSpace/BoundedVariation.html#eVariationOn)). As of now, this PR is still missing important properties like products and induced (and therefore subtypes) of ```Weak(Pseudo)EMetricSpace```'s and instances ```ENNReal``` and ```ENat``` (which should be rather easy however with the one-point compactification property). | awaiting-author new-contributor t-topology merge-conflict | 453/10 | Mathlib.lean,Mathlib/Topology/EMetricSpace/Defs.lean,Mathlib/Topology/EMetricSpace/Weak.lean | 3 | 30 | ['felixpernegger', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'plp127'] | j-loreaux | 12 days ago | 42 days ago | 12 days |
| 33477 | mcdoll | refactor(Algebra): add type-classes for algebraic properties of `FunLike` | --- Zulip discussion: [#mathlib4 > Refactoring algebraic properties of bundled maps](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Refactoring.20algebraic.20properties.20of.20bundled.20maps/with/566142461) [](https://gitpod.io/from-referrer/) | large-import merge-conflict | 1782/897 | Counterexamples/CliffordAlgebraNotInjective.lean,Mathlib.lean,Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean,Mathlib/Algebra/Azumaya/Matrix.lean,Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Algebra/Category/Grp/Colimits.lean,Mathlib/Algebra/Category/Grp/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Differentials/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Semi.lean,Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean,Mathlib/Algebra/Central/End.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/Group/Finsupp.lean,Mathlib/Algebra/Group/Hom/Basic.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Hom/End.lean,Mathlib/Algebra/Group/Hom/Instances.lean,Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Hom.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/ExactSequences.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean,Mathlib/Algebra/Homology/ShortComplex/Ab.lean,Mathlib/Algebra/Lie/Abelian.lean,Mathlib/Algebra/Lie/BaseChange.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/Lie/Cochain.lean,Mathlib/Algebra/Lie/Derivation/AdjointAction.lean,Mathlib/Algebra/Lie/Derivation/Basic.lean,Mathlib/Algebra/Lie/EngelSubalgebra.lean,Mathlib/Algebra/Lie/Extension.lean,Mathlib/Algebra/Lie/InvariantForm.lean,Mathlib/Algebra/Lie/LieTheorem.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Lie/TensorProduct.lean,Mathlib/Algebra/Lie/TraceForm.lean,Mathlib/Algebra/Lie/Weights/Basic.lean,Mathlib/Algebra/Lie/Weights/Cartan.lean,Mathlib/Algebra/Lie/Weights/IsSimple.lean,Mathlib/Algebra/Lie/Weights/Killing.lean,Mathlib/Algebra/Module/CharacterModule.lean,Mathlib/Algebra/Module/End.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Module/Hom.lean,Mathlib/Algebra/Module/LinearMap/Basic.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Algebra/Module/Presentation/Basic.lean,Mathlib/Algebra/Module/Submodule/Bilinear.lean,Mathlib/Algebra/Module/Submodule/LinearMap.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Module/Submodule/Range.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/MonoidAlgebra/Division.lean,Mathlib/Algebra/MonoidAlgebra/MapDomain.lean,Mathlib/Algebra/MonoidAlgebra/Module.lean,Mathlib/Algebra/MvPolynomial/CommRing.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/MvPolynomial/Division.lean,Mathlib/Algebra/MvPolynomial/NoZeroDivisors.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Order/CauSeq/Completion.lean,Mathlib/Algebra/Order/Floor/Div.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Coeff.lean,Mathlib/Algebra/Polynomial/HasseDeriv.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Analytic/CPolynomialDef.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/Multiplier.lean,Mathlib/Analysis/CStarAlgebra/Unitization.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/Deriv/CompMul.lean,Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/Calculus/LagrangeMultipliers.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/Analysis/Complex/Conformal.lean | 266 | 7 | ['github-actions', 'leanprover-radar', 'mathlib4-merge-conflict-bot', 'mcdoll', 'plp127'] | nobody | 12 days ago | unknown | unknown |
| 35277 | marcelolynch | ci: remove outdated logic in workflows | Remove outdated code in workflows: - a step used in an investigation - should not be needed in any case with ephemeral runners - merge_group triggers: we don't use them anymore - outdated commented steps - stale.yml, an experimental unused pipeline | file-removed CI awaiting-author | 0/48 | .github/workflows/actionlint.yml,.github/workflows/build.yml,.github/workflows/build_template.yml,.github/workflows/stale.yml | 4 | 3 | ['bryangingechen', 'github-actions', 'joneugster'] | bryangingechen and joneugster | 12 days ago | unknown | unknown |
| 35216 | 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 awaiting-author enhancement | 241/3 | .claude/skills/to_dual/SKILL.md,Mathlib/Tactic/Translate/ToDual.lean | 2 | 29 | ['JovanGerb', 'MichaelStollBayreuth', 'github-actions', 'kim-em', 'vihdzp'] | JovanGerb | 12 days ago | 12 days ago | 6 days |
| 30666 | erdOne | feat(NumberTheory): every number field has a ramified prime | --- [](https://gitpod.io/from-referrer/) | t-number-theory awaiting-author t-algebra | 220/20 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/Action/TransferInstance.lean,Mathlib/Algebra/Ring/Int/Field.lean,Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/Discriminant/Different.lean,Mathlib/NumberTheory/NumberField/ExistsRamified.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean | 9 | 24 | ['erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'tb65536', 'xroblot'] | jcommelin | 12 days ago | 115 days ago | 13 days |
| 34954 | brianrabern | feat(Combinatorics/SimpleGraph/Acyclic): add colorable and chromaticN… | …umber bridges for acyclic and tree graphs Add thin bridge lemmas expressing that acyclic graphs (forests) and trees are 2-colorable, and that their chromatic number is at most 2, directly in terms of `Colorable` and `chromaticNumber`. The existing `IsAcyclic.isBipartite` already proves this via the definitional equality `IsBipartite = Colorable 2`, but these bridges improve discoverability for users who reason about `Colorable` or `chromaticNumber` without passing through `IsBipartite`. This is a first step toward building out the graph coloring API. New declarations: - `IsAcyclic.colorable_two` - `IsTree.colorable_two` - `IsAcyclic.chromaticNumber_le_two` - `IsTree.chromaticNumber_le_two` All are one-line proofs reusing existing results; no new imports needed. --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor | 16/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 1 | ['github-actions'] | b-mehta | 12 days ago | 24 days ago | 24 days |
| 33416 | vihdzp | chore(Order/GameAdd): add `elab_as_elim` attributes | This PR does three things: - Rename `GameAdd.fix` to the more illustrative `GameAdd.recursion` - Add `elab_as_elim` attributes on `GameAdd.recursion` - Deprecate the duplicate `GameAdd.induction` --- [](https://gitpod.io/from-referrer/) | t-order merge-conflict | 24/14 | Mathlib/Order/GameAdd.lean,Mathlib/SetTheory/PGame/Order.lean,Mathlib/SetTheory/ZFC/Ordinal.lean | 3 | 6 | ['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'ocfnash', 'vihdzp'] | alreadydone | 12 days ago | 12 days ago | 50 days |
| 35324 | harahu | chore: add H1 headers | This PR introduces a script that identifies lean files that don't have an H1 header. I've added a placeholder header to the identified files and will use this branch to develop smaller PRs. --- [](https://gitpod.io/from-referrer/) | WIP merge-conflict | 1749/0 | Archive/Wiedijk100Theorems/CubingACube.lean,Cache/Hashing.lean,Cache/IO.lean,Cache/Init.lean,Cache/Main.lean,Cache/Requests.lean,Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean,Counterexamples/IrrationalPowerOfIrrational.lean,Mathlib/Algebra/Algebra/Subalgebra/IsSimpleOrder.lean,Mathlib/Algebra/AlgebraicCard.lean,Mathlib/Algebra/ArithmeticGeometric.lean,Mathlib/Algebra/Category/Grp/FiniteGrp.lean,Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/CharP/Frobenius.lean,Mathlib/Algebra/GroupWithZero/Int.lean,Mathlib/Algebra/Homology/ComplexShapeSigns.lean,Mathlib/Algebra/Homology/HomologicalComplexBiprod.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomologicalFunctor.lean,Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean,Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean,Mathlib/Algebra/Homology/HomotopyCofiber.lean,Mathlib/Algebra/Homology/Localization.lean,Mathlib/Algebra/Homology/TotalComplexSymmetry.lean,Mathlib/Algebra/Lie/CartanMatrix.lean,Mathlib/Algebra/ModEq.lean,Mathlib/Algebra/Module/Submodule/Equiv.lean,Mathlib/Algebra/MvPolynomial/Counit.lean,Mathlib/Algebra/MvPolynomial/Expand.lean,Mathlib/Algebra/NoZeroSMulDivisors/Prod.lean,Mathlib/Algebra/Order/Archimedean/Hom.lean,Mathlib/Algebra/Order/Field/Defs.lean,Mathlib/Algebra/Order/Interval/Set/Group.lean,Mathlib/Algebra/Order/Module/Algebra.lean,Mathlib/Algebra/Order/Monoid/ToMulBot.lean,Mathlib/Algebra/Order/PartialSups.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Polynomial/Factors.lean,Mathlib/Algebra/QuadraticAlgebra.lean,Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean,Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean,Mathlib/AlgebraicTopology/DoldKan/EquivalenceAdditive.lean,Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean,Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean,Mathlib/AlgebraicTopology/MooreComplex.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented.lean,Mathlib/Analysis/Analytic/CPolynomialDef.lean,Mathlib/Analysis/Calculus/ContDiff/RestrictScalars.lean,Mathlib/Analysis/Calculus/Deriv/Shift.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/Distribution/FourierSchwartz.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/InnerProductSpace/Harmonic/Analytic.lean,Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Analysis/Matrix.lean,Mathlib/Analysis/Normed/Field/Ultra.lean,Mathlib/Analysis/Normed/Module/ENormedSpace.lean,Mathlib/Analysis/NormedSpace/Alternating/Basic.lean,Mathlib/Analysis/NormedSpace/Alternating/Curry.lean,Mathlib/Analysis/NormedSpace/Alternating/Uncurry/Fin.lean,Mathlib/Analysis/NormedSpace/BallAction.lean,Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean,Mathlib/Analysis/NormedSpace/Connected.lean,Mathlib/Analysis/NormedSpace/DualNumber.lean,Mathlib/Analysis/NormedSpace/ENormedSpace.lean,Mathlib/Analysis/NormedSpace/Extend.lean,Mathlib/Analysis/NormedSpace/Extr.lean,Mathlib/Analysis/NormedSpace/FunctionSeries.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean,Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean,Mathlib/Analysis/NormedSpace/HomeomorphBall.lean,Mathlib/Analysis/NormedSpace/IndicatorFunction.lean,Mathlib/Analysis/NormedSpace/Int.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/MultipliableUniformlyOn.lean,Mathlib/Analysis/NormedSpace/Normalize.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Asymptotics.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Analysis/NormedSpace/Pointwise.lean,Mathlib/Analysis/NormedSpace/RCLike.lean,Mathlib/Analysis/NormedSpace/Real.lean,Mathlib/Analysis/NormedSpace/RieszLemma.lean,Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean,Mathlib/Analysis/Real/Pi/Leibniz.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean,Mathlib/CategoryTheory/Adhesive.lean | 348 | 3 | ['github-actions', 'harahu', 'mathlib-merge-conflicts'] | nobody | 12 days ago | unknown | unknown |
| 34637 | mcdoll | feat(Analysis/Distribution): support | We define the support of distributions. The definition applies to both tempered and classical distributions, but for this PR we only prove some elementary statements for tempered distributions. --- [](https://gitpod.io/from-referrer/) | t-analysis | 241/0 | Mathlib.lean,Mathlib/Analysis/Distribution/Support.lean | 2 | 14 | ['github-actions', 'lauramonk', 'mcdoll', 'urkud'] | ADedecker | 12 days ago | 12 days ago | 27 days |
| 34240 | mcdoll | feat(Analysis/Distribution): additional properties of the support | --- - [x] depends on: #34593 - [x] depends on: #34595 - [ ] depends on: #34637 - [x] depends on: #34638 [](https://gitpod.io/from-referrer/) | WIP t-analysis merge-conflict blocked-by-other-PR | 494/2 | Mathlib/Analysis/Calculus/FDeriv/Const.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean,Mathlib/Analysis/Distribution/Support.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean | 6 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 12 days ago | unknown | unknown |
| 35558 | mcdoll | feat(Analysis/Distribution): algebraic properties of the support | --- - [ ] depends on: #34637 - [ ] depends on: #33477 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-analysis | 325/0 | Mathlib/Analysis/Distribution/Support.lean | 1 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 12 days ago | unknown | unknown |
| 34298 | CoolRmal | feat(MeasureTheory): Integral over Ioi tends to zero | This PR proves that if `f` is integrable on `Ioi a`, then `∫ x in Ioi (b i), f x ∂μ` tends to zero as `b i` tends to infinity. This is an easy corollary of `intervalIntegral_tendsto_integral_Ioi`. --- - [x] depends on #34197 - [x] depends on #34289 [](https://gitpod.io/from-referrer/) | t-measure-probability | 20/0 | Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean | 1 | 4 | ['CoolRmal', 'github-actions', 'mcdoll'] | thorimur | 12 days ago | 11 days ago | 39 days |
| 35473 | mike1729 | feat(Analysis/Normed/Module): Schauder bases, basic sequences, and the Eberlein–Šmulian theorem | This PR develops the theory of Schauder bases and basic sequences in Banach spaces, culminating in a proof of the **Eberlein–Šmulian theorem**: in a Banach space, a weakly countably compact set is weakly compact (and weakly sequentially compact). **Note:** This PR is too large to review in one go. It will be split into smaller parts and merged incrementally. The first part is already under review: The proof follows the basic-sequence approach of Pełczyński, as presented in Albiac–Kalton *Topics in Banach Space Theory* (2016). The main line of argument is: 1. Define generalized Schauder bases (indexed by arbitrary types with a summation filter) and the classical sequential Schauder basis as a special case. 2. Introduce basic sequences and their characterization via the Grünblum condition. 3. Prove the **selection principle**: extract basic sequences from sets where the weak and norm closures disagree (via a perturbation/finite-dimensional compactness argument in the dual). 4. Show that a bounded set containing no basic sequence has relatively weakly compact closure. 5. Combine these ingredients to prove both directions of the Eberlein–Šmulian theorem. ## Main definitions * `GeneralSchauderBasis β 𝕜 X L`: A Schauder basis for a normed space `X` over `𝕜`, indexed by a type `β` with a `SummationFilter L`. Unifies classical (sequential) and unconditional bases. * `BasicSequence 𝕜 X`: A bundled ℕ-indexed sequence forming a Schauder basis for its closed linear span. ## Main results * `isBasicSequence_of_Grunblum_with_bound`: A nonzero sequence satisfying the Grünblum condition is a basic sequence, with explicit basis constant bound. * `basic_sequence_selection_dual`: Extracts a basic sequence from a set that is weak*-dense near 0 but norm-separated from 0. * `exists_basicSequence_of_weakClosure_not_normClosure`: If 0 is in the weak closure of `S` but not its norm closure, then `S` contains a basic sequence. * `schauderBasisOfClosure`: Constructs a Schauder basis for the topological closure from a basis on a subspace. * `no_basic_sequence_implies_relatively_weakly_compact`: A bounded set with no basic sequence has weakly compact closure. * `eberlein_smulian_isSeqCompact`: A weakly countably compact set in a Banach space is weakly sequentially compact. * `eberlein_smulian`: **Eberlein–Šmulian theorem.** A weakly countably compact set in a Banach space is weakly compact. * `IsCompact.frechetUrysohnSpace`: Weakly compact subsets of a Banach space are Fréchet–Urysohn (angelic). ## References * [F. Albiac, N.J. Kalton, *Topics in Banach Space Theory*, Springer, 2016][albiac2016] * I. Singer, *Bases in Banach Spaces*, 1970. --- - [ ] depends on: #34209 - [ ] depends on: #35559 [](https://gitpod.io/from-referrer/) | t-analysis new-contributor blocked-by-other-PR | 2691/0 | Mathlib.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Basic.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequence.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequenceSelection.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Closure.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/CountablyCompact.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/EberleinSmulian.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/NoBasicSequence.lean | 8 | 6 | ['CoolRmal', 'github-actions', 'mathlib-dependent-issues', 'mike1729'] | nobody | 11 days ago | unknown | unknown |
| 26212 | Thmoas-Guan | feat(Algebra): the Rees theorem for depth | In this PR we proved the Rees theorem for depth.
Co-authored-by: Hu Yongle |
large-import t-ring-theory | 240/24 | Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 5 | 55 | ['Thmoas-Guan', 'alreadydone', 'chrisflav', 'dagurtomas', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | chrisflav | 11 days ago | 11 days ago | 79 days |
| 35561 | Thmoas-Guan | feat(RingTheory): power series over regular local ring | In this PR, we proved that power series over regular local ring is again regular local ring. Same for finite multivariable power series. --- - [ ] depends on: #28682 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR | 242/0 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/PowerSeries.lean | 8 | 3 | ['github-actions', 'mathlib-bors', 'mathlib-dependent-issues'] | nobody | 11 days ago | unknown | unknown |
| 35352 | themathqueen | feat(Analysis/CStarAlgebra): the norm of a positive linear functional `f` on a unital C*-algebra is `f 1` | --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author | 24/0 | Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean,Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean | 2 | 7 | ['github-actions', 'j-loreaux', 'themathqueen'] | j-loreaux | 11 days ago | 11 days ago | 4 days |
| 25989 | Multramate | feat(NumberTheory/EllipticDivisibilitySequence): add elliptic nets | This PR continues the work from #25030. Original PR: https://github.com/leanprover-community/mathlib4/pull/25030 | t-number-theory large-import awaiting-author | 254/39 | Mathlib/NumberTheory/EllipticDivisibilitySequence.lean | 1 | 27 | ['MichaelStollBayreuth', 'Multramate', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib4-merge-conflict-bot', 'tb65536'] | tb65536 | 11 days ago | 11 days ago | 10 days |
| 35411 | daniel-carranza | feat(CategoryTheory/Enriched/Limits): define cotensors in an enriched category | Defines the notion of cotensors in a `V`-category `C`, where `V` is a braided monoidal category. Proves that `V` itself has all cotensors when viewed as a category enriched in `V`. Also proves that if `C` has all cotensors and `V` is additionally symmetric then the cotensors form a `V`-functor from the enriched tensor product`V\op \times C` to `C`. --- This work originates from the infinity-cosmos project, where the dual theory of tensors was formalized by @arnoudvanderleer . The current version of this code introduces an `abbrev` definition `Ehom V C x y` for the hom-object C(x, y) in V. The intention is to make the code easier to both to write and read; the existing notation `x \hom[V] y` throws an error when instantiated at `C` = `V` (`ambiguous term;` `Possible interpretations:` `(ihom x).obj y : V` `x ⟶[V] y : V`). A possibly related issue is there are a few calls to `erw` that stem from a failure to identify `(ihom x).obj : V` with `Ehom V V x y`. Any help with these issues, or any other assistance, is greatly appreciated! - [ ] depends on: #35144 [required to prove `V`-functoriality of cotensors] - [ ] depends on: #35436 [required to prove that `V` admits all cotensors by itself] [](https://gitpod.io/from-referrer/) | WIP t-category-theory infinity-cosmos blocked-by-other-PR | 822/0 | Mathlib.lean,Mathlib/CategoryTheory/Enriched/Limits/Cotensors.lean,Mathlib/CategoryTheory/Enriched/TensorProductCategory.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/InternalCurrying.lean | 5 | 3 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 11 days ago | unknown | unknown |
| 35545 | joelriou | feat(Algebra/Category/ModuleCat): the internal hom for presheaves of modules | --- [](https://gitpod.io/from-referrer/) | t-algebra WIP | 141/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/InternalHom.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean | 3 | 1 | ['github-actions'] | nobody | 11 days ago | unknown | unknown |
| 28246 | Sebi-Kumar | feat(AlgebraicTopology/FundamentalGroupoid): the n-sphere is simply connected for n > 1 | Prove that the `n`-dimensional sphere (i.e., the unit sphere centered at the origin in `(n + 1)`-dimensional real Euclidean space) is a simply connected space for `n > 1`. This proof follows Hatcher's "Algebraic Topology"; we first prove a general lemma about decomposing loops and then exploit the fact that non-surjective loops in the sphere are homotopically trivial. Note: To get this file to build, I edited `Mathlib/Tactic/Linter/DirectoryDependency.lean` to remove the restrictions on AlgebraicTopology files importing Geometry, NumberTheory, and FieldTheory files. Thank you to those who shared their expertise [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Warning.20that.20AlgebraicTopology.20can't.20import.20SetTheory/with/533833638). As I understand it, this is just a short-term solution, so I would appreciate feedback on what to do about this situation. Note: I am unsure where exactly the file `SimplyConnectedSphere.lean` should go or whether that is an appropriate name for the file, so feedback there would be appreciated. --- To provide additional context, this code was written as a part of the Fields Undergraduate Summer Research Program at the University of Western Ontario under the supervision of Chris Kapulkin and Daniel Carranza. - [x] depends on: #28208 - [x] depends on: #28198 - [x] depends on: #28185 [](https://gitpod.io/from-referrer/) | t-algebraic-topology new-contributor awaiting-author | 343/3 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnectedSphere.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 3 | 17 | ['dagurtomas', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | robin-carlier | 11 days ago | 11 days ago | 13 days |
| 29533 | Thmoas-Guan | feat(Algebra): maximal Cohen Macaulay module | In this PR, we defined the concept of maximal Cohen Macaulay module, and proved that finitely generated maximal Cohen Macaulay module over regular local ring is free. --- - [ ] depends on: #28683 - [ ] depends on: #26218 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-algebra | 2548/34 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Maximal.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean | 18 | 11 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 29557 | Thmoas-Guan | feat(Algebra): finite projective dimension of regular | In this PR, we proved every finitely generated module over regular local ring has finite projective dimension. With this and Auslander Buchsbaum theorem, we can obtain the global dimension of regular local ring is equal to its krull dimension. --- - [ ] depends on: #29533 - [ ] depends on: #26215 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-algebra | 3020/34 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Maximal.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/AuslanderBuchsbaum.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/GlobalDimension.lean | 20 | 11 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 31611 | thorimur | feat(Meta): `withPlural` wrapper for more readable messages in source | This small PR introduces a thin wrapper `withPlural` for Lean's textual datatypes so that we can write ``` "foo".withPlural "foos" count ``` instead of ``` if count = 1 then "foo" else "foos" ``` The dot notation here is chosen so that the singular version of the word appears at the start of the syntax, as opposed to buried in an `if/then`. This makes dynamically pluralizing a word in `MessageData` (which is a relatively common occurrence) a bit easier to read in source, especially when multiple pluralizations are needed close to one another. --- Am I handling the copyright header correctly? My reasoning is that the file was devoid of content, and so this is ultimately a new file. But I'm not sure this is technically what should happen here. [](https://gitpod.io/from-referrer/) | t-meta awaiting-author merge-conflict | 63/5 | Mathlib/Lean/Message.lean | 1 | 21 | ['adomani', 'github-actions', 'grunweg', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'thorimur'] | nobody | 11 days ago | 88 days ago | 20 days |
| 35568 | goliath-klein | refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): switch NormedSpace instance to `projectiveSeminorm` | We switch the `NormedSpace` instance on `PiTensorProduct`s from `injectiveSeminorm` to `projectiveSeminorm` and update all follow-up results. The signature of `norm_eval_le_projectiveSeminorm` is changed to match the one of `norm_eval_le_injectiveSeminorm`. This is the second in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633). --- - [ ] depends on: #35567 Co-authored-by: Davood H. H. Tehrani [](https://gitpod.io/from-referrer/) | blocked-by-other-PR new-contributor | 108/173 | Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 11 days ago | 11 days ago | 14 minutes |
| 31697 | Thmoas-Guan | feat(Homology): bijection between `Ext` | For `F : C ⥤ D` fully faithful functor between abelian category, if one of the following 1: `C` has enough projectives and `F` preserve projective object 2: `D` has enough injectives and `F` preserve injective object The induced map `Ext X Y n → Ext F(X) F(Y) n` is bijective. --- - [ ] depends on: #31046 - [x] depends on: #31696 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR t-category-theory | 365/1 | Mathlib.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Bijection.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean | 6 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 31768 | Thmoas-Guan | feat(Homology): `Ext` commute with ulift functor | 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. --- - [ ] depends on: #31697 - [ ] depends on: #31706 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR t-category-theory | 559/1 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Ulift.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Bijection.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean | 7 | 6 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 31851 | Thmoas-Guan | feat(Algebra/Homology): Injective dimension in linear equiv | In this PR, we proved that injective dimension is preserved under (semi-) linear equiv for general universe level. --- - [ ] depends on: #31768 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR | 798/1 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Ulift.lean,Mathlib/Algebra/Category/ModuleCat/InjectiveDimension.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Bijection.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean | 9 | 6 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 35524 | grunweg | feat: text-based linter against \t followed by tactic mode | Wait for the zulip discussion to converge. **If** there is consensus in favour of this change, summarise the motivation here. [zulip discuss](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/proposal.3A.20no.20more.20use.20of.20.60.E2.96.B8.60.20in.20Mathlib.3F/with/574680826) --- There are currently 80 remaining exceptions in mathlib: ideally, these would get fixed before merging this. Works best when combined with #35523. [](https://gitpod.io/from-referrer/) | t-linter awaiting-zulip | 23/2 | Mathlib/Tactic/Linter/TextBased.lean | 1 | 4 | ['github-actions', 'grunweg', 'joneugster', 'vihdzp'] | nobody | 11 days ago | unknown | unknown |
| 31219 | Thmoas-Guan | feat(Algebra): lemma about `IsBaseChange` under exact sequence | In this lemma, we proved cokernel preserve `IsBaseChange S` and kernel preserve `IsBaseChange S` when `S` is flat.
Co-authored-by: Wang Jingting |
t-ring-theory awaiting-author | 105/0 | Mathlib.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean | 2 | 9 | ['Thmoas-Guan', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 11 days ago | 101 days ago | 16 days |
| 31222 | 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 |
blocked-by-other-PR large-import t-algebra | 154/0 | Mathlib.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean | 3 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 33369 | Thmoas-Guan | feat(Homology): `Ext` commute with flat base change | In this PR, using the linear map `Ext(M,N) => Ext(F(M), F(N))` when `F` is exact functor, we prove that `Ext` commute with flat base change if the ring is noetherian and two modules are finitely generated, stated using `IsBaseChange`. --- - [ ] depends on: #31046 - [ ] depends on: #31222 - [ ] depends on: #32316 [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR t-topology | 847/1 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ext/BaseChange.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean | 8 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | 64 days ago | 8 minutes |
| 35547 | Ruben-VandeVelde | chore: tidy various files | --- As usual, `simp`s didn't seem slow. [](https://gitpod.io/from-referrer/) | awaiting-author | 83/117 | Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/LinearRecurrence.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/AlgebraicGeometry/AffineScheme.lean,Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean,Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/AlgebraicGeometry/ZariskisMainTheorem.lean,Mathlib/Analysis/Complex/CoveringMap.lean,Mathlib/Analysis/Complex/MeanValue.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Data/Set/Dissipate.lean,Mathlib/Data/Set/PowersetCard.lean,Mathlib/Geometry/Euclidean/Angle/Bisector.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/JordanChevalley.lean,Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/MeasureTheory/Measure/SubFinite.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/Order/ConditionallyCompletePartialOrder/Indexed.lean,Mathlib/Probability/Distributions/Cauchy.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Polynomial/Subring.lean,Mathlib/RingTheory/Smooth/IntegralClosure.lean,Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean,Mathlib/RingTheory/Unramified/LocalStructure.lean,Mathlib/RingTheory/ZariskisMainTheorem.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Majorized.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean,Mathlib/Topology/Algebra/MulAction.lean | 32 | 13 | ['github-actions', 'grunweg', 'vihdzp'] | nobody | 11 days ago | 11 days ago | 18 hours |
| 34249 | xyzw12345 | feat(GroupTheory/GroupAction/Hom): connect existing definitions `MulDistribMulActionHom` and `DistribMulActionHom` using `to_additive` | In this PR, we defined `MulDistribMulActionHom` corresponding to `DistribMulActionHom`, which will be used in the multiplicative version of non-Abelian group cohomology. --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 174/69 | Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean | 2 | 7 | ['github-actions', 'mathlib-bors', 'ocfnash'] | ocfnash | 11 days ago | 11 days ago | 29 days |
| 34119 | themathqueen | feat(LinearAlgebra/Matrix/WithConv): `Matrix.toLin'` as a star-algebra equivalence between their convolutive rings | `WithConv (Matrix m n α)` is ⋆-algebraically equivalent to `WithConv ((n → α) →ₗ m → α)`. In particular, the convolutive product on linear maps corresponds to the Hadamard product on matrices and the intrinsic star on linear maps corresponds to taking the star of each element in the matrix. --- - [x] depends on: #30880 - [x] depends on: #34111 - [x] depends on: #34312 - [x] depends on: #34600 - [ ] depends on: #34601 - [x] depends on: #34945 - [x] depends on: #34997 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR large-import | 88/1 | Mathlib/Algebra/Star/LinearMap.lean,Mathlib/Algebra/WithConv.lean,Mathlib/LinearAlgebra/Matrix/WithConv.lean,docs/references.bib | 4 | 63 | ['eric-wieser', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'themathqueen'] | ocfnash | 11 days ago | 35 days ago | 6 days |
| 35421 | farmanb | feat(CategoryTheory): preradicals in abelian categories | Following Stenström's development, define preradicals on an abelian category, together with the quotient and colon constructions, and characterize radical preradicals via vanishing on quotients. This provides infrastructure for torsion theories in abelian categories. --- [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor awaiting-author | 463/0 | Mathlib.lean,Mathlib/CategoryTheory/Preradical/Basic.lean,Mathlib/CategoryTheory/Preradical/CokernelConstruction.lean,Mathlib/CategoryTheory/Preradical/Colon.lean,Mathlib/CategoryTheory/Preradical/Radical.lean | 5 | 11 | ['farmanb', 'github-actions', 'joelriou'] | nobody | 11 days ago | 13 days ago | 11 hours |
| 35578 | Shreyas4991 | fix: writer monad should use an additive logging type | The Writer monad's w type is supposed to be additive, not multiplicative. This is how it is conceptually used in Haskell (as a logging type). Haskell uses `Monoid` because it doesn't make a distinction between `AddMonoid` and `Monoid`. [#mathlib4 > Writer should use an additive monoid @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Writer.20should.20use.20an.20additive.20monoid/near/574990415) --- [](https://gitpod.io/from-referrer/) | t-data awaiting-zulip | 10/10 | Mathlib/Control/Monad/Cont.lean,Mathlib/Control/Monad/Writer.lean | 2 | 4 | ['Shreyas4991', 'eric-wieser', 'github-actions'] | nobody | 11 days ago | 11 days ago | 5 hours |
| 35591 | JovanGerb | draft: `gsimp` tactic | This is a draft PR for exploring a potential `gsimp` tactic. It would be able to do some things that the current `grw` tactic cannot do. --- [](https://gitpod.io/from-referrer/) | t-meta | 1233/0 | Mathlib/Tactic/GSimp/Core.lean,Mathlib/Tactic/GSimp/Elab.lean,Mathlib/Tactic/GSimp/GSimpTheorems.lean,Mathlib/Tactic/GSimp/Rewrite.lean,Mathlib/Tactic/GSimp/Types.lean | 5 | 3 | ['github-actions', 'mathlib-bors'] | nobody | 11 days ago | unknown | unknown |
| 35510 | chrisflav | feat(RingTheory): weakly étale algebras | From Proetale. --- - [x] depends on: #35455 - [ ] depends on: #35590 [](https://gitpod.io/from-referrer/) | WIP t-ring-theory blocked-by-other-PR | 416/1 | Mathlib.lean,Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Weakly.lean,Mathlib/RingTheory/RingHom/Flat.lean | 6 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 11 days ago | unknown | unknown |
| 30077 | agjftucker | feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfBivariate | Two specializations of the implicit function theorem, one applying to an uncurried bivariate function and one applying to a curried bivariate function. --- This PR is a synthesis of material from others which failed to make progress. But there seems always to have been a different reason for it, so I'm afraid I keep trying where maybe I shouldn't. #26985 reviewed by j-loreaux and later on by winstonyin. #16743 and #26300 reviewed by sgouezel. [Zulip chat](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Inverse.20function.20theorem.20and.20ContinuousLinearEquiv/with/567586606) with Yury Kudryashov. There are certain changes agreed upon in those PRs, e.g. to existing names, that are doubtless good but that I have excised from this PR to avoid distraction. [](https://gitpod.io/from-referrer/) | t-analysis | 311/2 | Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/Partial.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitFunction/Bivariate.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean | 5 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | ADedecker | 11 days ago | 14 days ago | 29 days |
| 35441 | harahu | chore(NumberTheory): fix indentation in markdown lists | Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. --- [](https://gitpod.io/from-referrer/) | t-number-theory | 16/16 | Mathlib/NumberTheory/ClassNumber/FunctionField.lean,Mathlib/NumberTheory/ModularForms/DedekindEta.lean,Mathlib/NumberTheory/NumberField/ClassNumber.lean,Mathlib/NumberTheory/NumberField/FractionalIdeal.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/NumberTheory/SiegelsLemma.lean | 7 | 1 | ['github-actions'] | alexjbest | 11 days ago | 14 days ago | 14 days |
| 35447 | themathqueen | feat(LinearAlgebra/UnitaryGroup): the transpose and conjugate of a unitary matrix as a unitary matrix | --- [](https://gitpod.io/from-referrer/) | t-algebra | 35/0 | Mathlib/LinearAlgebra/UnitaryGroup.lean | 1 | 1 | ['github-actions'] | kim-em | 11 days ago | 14 days ago | 14 days |
| 35451 | samueloettl | feat(MeasureTheory.Function): compMeasurePreserving_iterate | --- These are useful for dynamics/ergodic theory. Possibly some of these could be simp lemmas but I'm not confident enough to say that they are so I didn't mark them as such. [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 32/0 | Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean | 2 | 2 | ['github-actions'] | RemyDegenne | 11 days ago | 14 days ago | 14 days |
| 35458 | harahu | chore(Algebra): fix indentation in markdown lists | Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. --- [](https://gitpod.io/from-referrer/) | t-algebra | 51/51 | Mathlib/Algebra/BigOperators/Group/Finset/Gaps.lean,Mathlib/Algebra/Homology/BifunctorShift.lean,Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/TStructure.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Homology/Linear.lean,Mathlib/Algebra/Homology/ShortComplex/Ab.lean,Mathlib/Algebra/Lie/Derivation/AdjointAction.lean,Mathlib/Algebra/Lie/Derivation/Basic.lean,Mathlib/Algebra/Lie/Derivation/Killing.lean,Mathlib/Algebra/Module/CharacterModule.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/Module/Submodule/Union.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/MvPolynomial/CommRing.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/PDeriv.lean,Mathlib/Algebra/MvPolynomial/Rename.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Ring/Semireal/Defs.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean | 22 | 1 | ['github-actions'] | kim-em | 11 days ago | 14 days ago | 14 days |
| 33121 | SnirBroshi | feat(Combinatorics/SimpleGraph/Hasse): paths in a graph are isomorphic to path graphs | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 43/1 | Mathlib/Combinatorics/SimpleGraph/Hasse.lean | 1 | 23 | ['MrQubo', 'SnirBroshi', 'erdOne', 'github-actions', 'jcommelin', 'mitchell-horner'] | b-mehta | 11 days ago | 11 days ago | 69 days |
| 34054 | YellPika | feat(Order/OmegaCompletePartialOrder): OmegaCompletePartialOrder instance for `Sigma` with basic `ωScottContinuous` lemmas | This PR adds an `OmegaCompletePartialOrder` instance for `Sigma` along with `ωScottContinuous` lemmas for basic operations (`mk`, `fst`, `snd`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sigma`s. --- - [x] depends on: #33941 [](https://gitpod.io/from-referrer/) | new-contributor t-order please-merge-master awaiting-author | 172/0 | Mathlib/Data/Sigma/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean | 2 | 28 | ['Vierkantor', 'YellPika', 'github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | grunweg | 11 days ago | 11 days ago | 16 days |
| 34859 | wwylele | feat(MeasureTheory): WithLp 2 (U × V) → U × V is measure preserving | Intermediate lemmas towards #34826, and analogue to three existing lemma in the same file: ``` theorem EuclideanSpace.volume_preserving_symm_measurableEquiv_toLp : MeasurePreserving (MeasurableEquiv.toLp 2 (ι → ℝ)).symm := by theorem PiLp.volume_preserving_ofLp : MeasurePreserving (@ofLp 2 (ι → ℝ)) := theorem PiLp.volume_preserving_toLp : MeasurePreserving (@toLp 2 (ι → ℝ)) := ``` --- I am not very good at working with measure theory directly, so this implementation just reduces the problem to known lemmas, but it is pretty cumbersome. Golfing is welcome! [](https://gitpod.io/from-referrer/) | t-measure-probability | 58/0 | Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean | 1 | 6 | ['b-mehta', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] | RemyDegenne | 11 days ago | 27 days ago | 27 days |
| 33292 | SnirBroshi | feat(Combinatorics/SimpleGraph/LineGraph): lift copies/isomorphisms to line-graph | Non-injective homomorphisms (`G →g G'`) cannot be lifted to a homomorphism on line-graphs (`G.lineGraph →g G'.lineGraph`) because e.g. `∀ k > 1` there is a homomorphism from `pathGraph k` to `G'` iff `G'` has an edge, and `∀ n > 0, (pathGraph (n + 1)).lineGraph ≃ pathGraph n`, but there is no homomorphism from `pathGraph k` to `pathGraph 1` because it has no edges. So for `G := pathGraph 3` and `G' := pathGraph 2` there is a `G →g G'` but no `G.lineGraph →g G'.lineGraph`. But we can lift `Copy`/`Embedding`/`Iso`. --- [](https://gitpod.io/from-referrer/) | large-import t-combinatorics | 45/4 | Mathlib/Combinatorics/SimpleGraph/LineGraph.lean,Mathlib/Data/Sym/Sym2.lean | 2 | 6 | ['SnirBroshi', 'github-actions', 'tb65536'] | b-mehta | 11 days ago | 11 days ago | 64 days |
| 31884 | Thmoas-Guan | feat(RingTheory): definition of Gorenstein local ring | In this PR, we gave basic definition of Gorenstein local ring and Gorestein ring and prove that they are stable under ring equiv. --- - [ ] depends on: #31851 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-ring-theory | 885/1 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Ulift.lean,Mathlib/Algebra/Category/ModuleCat/InjectiveDimension.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Bijection.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/RingTheory/Gorenstein/Defs.lean | 10 | 6 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 32098 | Thmoas-Guan | feat(RingTheory): injective dimension of quotSMulTop | In this PR, we proved for finitely generated module `M` over noetherian ring `R`, if `x` in maximal ideal being both `R`-regular and `M`-regular, `injdim_R (M/xM) + 1 = injdim_{R/(x)} (M)`. --- - [ ] depends on: #31046 - [ ] depends on: #32058 - [ ] depends on: #32081 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-ring-theory | 969/11 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/Regular/InjectiveDimension.lean | 9 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | 98 days ago | 4 minutes |
| 33377 | Thmoas-Guan | feat(RingTheory): polynomial over Gorenstein ring is Gorenstein | In this PR, we prove that polynomial over Gorenstein ring is Gorenstein. --- - [ ] depends on: #33369 - [ ] depends on: #31884 - [ ] depends on: #32098 [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR t-ring-theory | 2354/11 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Ext/BaseChange.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Ulift.lean,Mathlib/Algebra/Category/ModuleCat/InjectiveDimension.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Bijection.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean,Mathlib/RingTheory/Gorenstein/Defs.lean,Mathlib/RingTheory/Gorenstein/Polynomial.lean,Mathlib/RingTheory/Regular/InjectiveDimension.lean | 17 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 33379 | Thmoas-Guan | feat(RingTheory): Gorenstein local ring is Cohen Macaulay | In this PR, we give the definition of Gorenstein local ring and proved it is Cohen--Macaulay. --- - [ ] depends on: #31884 - [ ] depends on: #26218 - [ ] depends on: #32098 - [ ] depends on: #31644 - [ ] depends on: #33369 [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR t-ring-theory | 4849/35 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Ext/BaseChange.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Ulift.lean,Mathlib/Algebra/Category/ModuleCat/InjectiveDimension.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Bijection.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean,Mathlib/RingTheory/Gorenstein/CohenMacaulay.lean,Mathlib/RingTheory/Gorenstein/Defs.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/InjectiveDimension.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/ProjectiveDimension.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 26 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 33380 | Thmoas-Guan | feat(RingTheory): Gorenstein local ring is Cohen--Macaulay local ring of type one | In this PR, we formalized Theorem 18.1 of _Commutaive Ring Theory_ Matsumura. This gives a full characterization of `Ext(k, R)` for Gorenstein local ring and implies that it is equivalent to Cohen--Macaulay local ring of type 1. --- - [ ] depends on: #26245 - [ ] depends on: #33379 [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR t-ring-theory | 5799/35 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Ext/BaseChange.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Ulift.lean,Mathlib/Algebra/Category/ModuleCat/InjectiveDimension.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Bijection.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Catenary.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean,Mathlib/RingTheory/Gorenstein/CohenMacaulay.lean,Mathlib/RingTheory/Gorenstein/Defs.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/InjectiveDimension.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/ProjectiveDimension.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 27 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 days ago | unknown | unknown |
| 35588 | eric-wieser | chore(Util/Qq): remove `meta` | These are wrappers of existing functions which are also not marked meta. --- [](https://gitpod.io/from-referrer/) | t-meta awaiting-CI | 1/1 | Mathlib/Util/Qq.lean | 1 | 1 | ['github-actions'] | nobody | 10 days ago | unknown | unknown |
| 35285 | SnirBroshi | feat(Algebra/LinearRecurrence): define a standard basis for the solution space of a linear recurrence | Also `mkSol` is injective. --- The hard work was already done by the existing equivalence `toInit`; this defines the basis that the equivalence provides and uses it to simplify a couple of proofs. [](https://gitpod.io/from-referrer/) | t-algebra | 24/12 | Mathlib/Algebra/LinearRecurrence.lean | 1 | 1 | ['github-actions'] | Vierkantor | 10 days ago | 18 days ago | 18 days |
| 34315 | LessnessRandomness | feat(Combinatorics/SimpleGraph/Bipartite): Prove upper bound of edge set cardinality of bipartite graph | Two ways to express upper bound of the edge set of bipartite graph: 1) If the cardinalities of both parts/sets, that make bipartite graph, are known, then the upper bound is equal to product of the cardinalities of both parts; 2) Four times of the cardinality of the edge set is less or equal to squared cardinality of vertex set. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 53/0 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean | 1 | 55 | ['LessnessRandomness', 'SnirBroshi', 'b-mehta', 'github-actions', 'vlad902'] | awainverse | 10 days ago | 10 days ago | 34 days |
| 34464 | Komyyy | refactor(Topology/Order/LowerUpperTopology): use `to_dual` | --- Many files should be also dualized for this file... - [x] depends on: #33964 - [x] depends on: #34465 - [ ] depends on: #34640 [](https://gitpod.io/from-referrer/) | t-topology t-order | 42/50 | Mathlib/Topology/Order/LowerUpperTopology.lean | 1 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 10 days ago | unknown | unknown |
| 29203 | Hagb | feat(RingTheory/MvPolynomial/Groebner): add Gröbner basis | This PR adds some definitions and theorems of Gröbner basis theory. Definitions: - `MonomialOrder.IsRemainder` - `MonomialOrder.IsGroebnerBasis` Main theorems: * `MonomialOrder.remainder_eq_zero_iff_mem_ideal_of_isGroebnerBasis`: Given a remainder of a polynomial on division by a Gröbner basis of an ideal, the remainder is 0 if and only if the polynomial is in the ideal. * `MonomialOrder.isGroebnerBasis_iff_subset_ideal_and_isRemainder_zero`: A finite set of polynomials is a Gröbner basis of an ideal if and only if it is a subset of this ideal and 0 is a remainder of each member of this ideal on division by this finite set. * `MonomialOrder.existsUnique_isRemainder_of_isGroebnerBasis`: Remainder of any polynomial on division by a Gröbner basis exists and is unique. * `MonomialOrder.ideal_eq_span_of_isGroebnerBasis`: Gröbner basis of any ideal spans the ideal. * `MonomialOrder.isGroebnerBasis_iff_isRemainder_sPolynomial_zero` (Buchberger Criterion): a basis of an ideal is a Gröbner basis of it if and only if 0 is a remainder of echo sPolynomial between two polynomials on the basis. The previous `Mathlib/RingTheory/MvPolynomial/Groebner.lean` is moved to `Mathlib/RingTheory/MvPolynomial/Groebner/Division.lean`, and used by `Mathlib/RingTheory/MvPolynomial/Groebner/Remainder.lean` for the proof of remainder's existence. The PR is upstreamized from https://github.com/WuProver/groebner_proj. Co-authored-by: Hao Shen [3118181069@qq.com](mailto:3118181069@qq.com) --- CC @tsuki8 TODO / WIP: - [x] clean up some proofs - [x] split lemmas - [x] squeeze Non-terminal `simp`s - [x] add comments to explain the proof of Buchberger Criterion. - [x] refactor something with `WithBot (σ →₀ ℕ)` variant of `MonomialOrder.degree` (`MonomialOrder.withBotDegree`, #34759). - [x] refactor to use namespaces `MonomialOrder.{IsGroebnerBasis,IsRemainder}` instead of `*_of_{isGroebnerBasis,isRemainder}` in theorem names. - [ ] reduced Groebner Basis (done, not yet submitted) - [x] refactor to avoid too many `IsUnit` or `nonZeroDivisors` - [x] split `IsRemainder` and `IsGroebnerBasis` - [ ] embedding of monomial order (done, not yet submitted), and properties about it and Groebner basis. - [ ] some theorems can be generalized to avoid requiring `IsUnit` Dependencies: - [x] depends on: #26039 - [ ] depends on: #34759 S-polynomial and other lemmas in other files are split from this PR, leaving only changes of `Mathlib/RingTheory/MvPolynomial/Groebner{.lean,/*.lean}` in this PR. The following are PRs split from this PR. - [x] depends on: #32336 - [x] depends on: #32344 - [x] depends on: #32780 - [x] depends on: #32787 - [x] depends on: #32788 - [x] depends on: #32801 - [x] depends on: #32876 - [x] depends on: #32877 - [ ] depends on: #34873 [](https://gitpod.io/from-referrer/) | t-ring-theory large-import blocked-by-other-PR WIP merge-conflict | 2126/263 | Mathlib.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Combinatorics/Matroid/Closure.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Logic/Basic.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPolynomial/Groebner/Division.lean,Mathlib/RingTheory/MvPolynomial/Groebner/Groebner.lean,Mathlib/RingTheory/MvPolynomial/Groebner/Remainder.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean,docs/references.bib | 13 | 21 | ['Hagb', 'SnirBroshi', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | alreadydone and erdOne | 10 days ago | 74 days ago | 3 days |
| 34873 | Hagb | feat(RingTheory/MvPolynomial/Groebner/Remainder): polynomial remainder used with Gröbner basis | Definition and properties of remainder on division of a multivariate polynomial by a set of multivariate polynomials. Some lemmas are for formalization of properties of Gröbner basis. The previous `Mathlib/RingTheory/MvPolynomial/Groebner.lean` is moved to `Mathlib/RingTheory/MvPolynomial/Groebner/Division.lean`, and used by `Mathlib/RingTheory/MvPolynomial/Groebner/Remainder.lean` for the proof of remainder's existence. The PR is upstreamized from https://github.com/WuProver/groebner_proj. Co-authored-by: Hao Shen [3118181069@qq.com](mailto:3118181069@qq.com) --- CC @tsuki8 - [ ] depends on: #34759 - [ ] depends on: #34872 todo: - [ ] some theorems can be generalized to avoid requiring `IsUnit` [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR t-ring-theory WIP merge-conflict | 1324/262 | Mathlib.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Combinatorics/Matroid/Closure.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Logic/Basic.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPolynomial/Groebner/Division.lean,Mathlib/RingTheory/MvPolynomial/Groebner/Remainder.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean,docs/references.bib | 11 | 4 | ['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 10 days ago | unknown | unknown |
| 35600 | yisiox | Add implementation of Kleene's algorithm to show each regular language has a regex matching it | This PR adds a proof that every regular language has some regular expression matching it. This was achieved by the following constructions and proofs of their correctness - Define `toSingleεNFA` to transform any epsilon-NFA to an equivalent one with only a single start and accept state (and the type is `ExtendedState`) - Define a bijection between `ExtendedState` and `Fin (FinEnum.card (ExtendedState σ))` to index the states - Define `pathRegex` which implements Kleene's algorithm - Define `toRegex` which takes an epsilon-NFA, applies `toSingleεNFA` on it, and computes the corresponding regex using `pathRegex` The proofs of correctness chain together to yield `(toRegex M).matches' = M.accepts` which asserts the direction of Kleene's theorem required. --- [](https://gitpod.io/from-referrer/) | t-computability new-contributor | 495/0 | Mathlib/Computability/EpsilonNFA.lean | 1 | 2 | ['github-actions'] | nobody | 10 days ago | unknown | unknown |
| 34966 | Deep0Thinking | feat(MeasureTheory): add `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` and `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` | This PR proves: - `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` - `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` - `integral_Ioi_sub_Ioi`, `integral_Ioi_sub_Ioi'`, `integral_Iio_sub_Iio`, `integral_Iio_sub_Iio'` - `Ioi_diff_Ioc` --- [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 125/1 | Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean | 3 | 14 | ['CoolRmal', 'Deep0Thinking', 'github-actions'] | RemyDegenne | 10 days ago | 10 days ago | 22 days |
| 34144 | IvanRenison | feat(Data/ENat): add lemma `ENat.iInf_eq_coe_iff` | Co-authored-by: SnirBroshi <26556598+SnirBroshi@users.noreply.github.com> --- [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/ENat.2EiInf_eq_nat_iff/with/568699219) [](https://gitpod.io/from-referrer/) | t-data | 21/0 | Mathlib/Data/ENat/Lattice.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean | 3 | 16 | ['IvanRenison', 'Ruben-VandeVelde', 'SnirBroshi', 'eric-wieser', 'github-actions', 'tb65536'] | TwoFX | 10 days ago | 10 days ago | 38 days |
| 35615 | SnirBroshi | feat(Combinatorics/SimpleGraph/Maps): lemmas about support | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 41/0 | Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean | 2 | 1 | ['github-actions'] | nobody | 10 days ago | 10 days ago | 10 days |
| 35616 | SnirBroshi | feat(Combinatorics/SimpleGraph/Copy): `IsContained` and `IsIndContained` are preorders | --- This makes `calc` work and provides `Std.Refl` and `IsTrans` instances. `grw` still doesn't work and mixing the two predicates in `calc` (to prove `IsContained`) also doesn't work. [](https://gitpod.io/from-referrer/) | t-combinatorics | 20/0 | Mathlib/Combinatorics/SimpleGraph/Copy.lean | 1 | 1 | ['github-actions'] | nobody | 10 days ago | 10 days ago | 10 days |
| 35613 | SnirBroshi | feat(Combinatorics/SimpleGraph/Clique): use `IsContained` instead of an explicit embedding from top | This makes theorems require only a proof that a `Copy` exists rather than provide an explicit `Embedding`. Also tag monotonicity lemmas with `@[gcongr]`. --- This isn't a generalization per-se since one could use choice plus `Copy.topEmbedding` to upgrade the `IsContained` to an embedding, but `IsContained` makes more sense in theorems. [](https://gitpod.io/from-referrer/) | t-combinatorics | 37/36 | Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean | 3 | 1 | ['github-actions'] | nobody | 10 days ago | 10 days ago | 10 days |
| 35619 | SnirBroshi | feat(Combinatorics/SimpleGraph/Clique): intersection and union of cliques | Plus a couple of lemmas. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 29/0 | Mathlib/Combinatorics/SimpleGraph/Clique.lean | 1 | 1 | ['github-actions'] | nobody | 10 days ago | 10 days ago | 10 days |
| 30526 | SnirBroshi | chore(Logic/Relation): use `≤` to spell subrelation | Replace every `∀ x y, r x y → r' x y` with `r ≤ r'` --- [](https://gitpod.io/from-referrer/) | t-logic | 161/136 | Mathlib.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/ConnectedComponents.lean,Mathlib/CategoryTheory/Filtered/Connected.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean,Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/TMConfig.lean,Mathlib/Data/PFunctor/Multivariate/M.lean,Mathlib/Data/Quot.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Defs/Prop.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/Topology/Gluing.lean | 25 | 14 | ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] | thorimur | 10 days ago | 10 days ago | 39 days |
| 35312 | Komyyy | feat(Order/Filter/Pointwise): `((∀ᶠ|∃ᶠ) x in op f, p x) ↔ ((∀ᶠ|∃ᶠ) x in f, p (op x))` | This lemma is required when I prove that $z \mapsto \sin^{-1} z^{-1}$ is not meromorphic at $0$:
```lean4
@[simp]
lemma Filter.frequently_inv {α : Type*} [Inv α] {f : Filter α} {p : α → Prop} :
(∃ᶠ a in f⁻¹, p a) ↔ (∃ᶠ a in f, p a⁻¹) :=
frequently_map
example : ¬(∀ᶠ z in 𝓝[≠] (0 : ℂ), sin⁻¹ z⁻¹ = 0) ↔ (∃ᶠ z in cobounded ℂ, sin z ≠ 0) := by
simp [← inv_cobounded₀]
```
So I added the simp lemmas of `(∀ᶠ|∃ᶠ) x in op f, p x` for unary operations `op` (`-f`, `f⁻¹` & `a • f`).
While I was at it, I also added the simp lemmas of `∃ᶠ x in pure a, p x` & `∃ᶠ x in (0|1), p x`, which previously existed only for the `∀ᶠ` versions.
Binary operation versions will be added if necessary.
Appendix: Full proof of that $z \mapsto \sin^{-1} z^{-1}$ is not meromorphic at $0$```lean4 module import Mathlib.Analysis.Meromorphic.Basic import Mathlib.Analysis.SpecialFunctions.Trigonometric.Complex import Mathlib.Analysis.SpecialFunctions.Trigonometric.Deriv import Mathlib.Analysis.SpecificLimits.RCLike open Complex Filter Bornology open scoped Real Topology Pointwise @[simp] lemma Filter.frequently_inv {α : Type*} [Inv α] {f : Filter α} {p : α → Prop} : (∃ᶠ a in f⁻¹, p a) ↔ (∃ᶠ a in f, p a⁻¹) := frequently_map example : ¬MeromorphicAt (fun z => sin⁻¹ z⁻¹) 0 := by apply mt MeromorphicAt.eventually_eq_zero_or_eventually_ne_zero conv => equals (∃ᶠ z in cobounded ℂ, sin z ≠ 0) ∧ (∃ᶠ z in cobounded ℂ, sin z = 0) => simp [← inv_cobounded₀] constructor case left => have ht : Tendsto (fun x : ℝ ↦ ↑x * I) (cobounded ℝ) (cobounded ℂ) := by have ht₁ : Tendsto ((↑) : ℝ → ℂ) (cobounded ℝ) (cobounded ℂ) := RCLike.tendsto_ofReal_cobounded_cobounded ℂ have ht₂ : Tendsto (fun z : ℂ ↦ z * I) (cobounded ℂ) (cobounded ℂ) := tendsto_mul_right_cobounded (by simp) exact ht₂.comp ht₁ refine ht.frequently_map _ (fun x ↦ mt ?_) (eventually_ne_cobounded 0).frequently rw [sin_eq_zero_iff] rintro ⟨n, hn⟩ simpa using congr_arg im hn case right => suffices ht : Tendsto (fun n : ℤ ↦ (↑n * ↑π : ℂ)) atTop (cobounded ℂ) by apply ht.frequently; simp [sin_int_mul_pi, atTop_neBot] have ht₁ : Tendsto ((↑) : ℤ → ℝ) atTop (cobounded ℝ) := tendsto_intCast_atTop_cobounded have ht₂ : Tendsto ((↑) : ℝ → ℂ) (cobounded ℝ) (cobounded ℂ) := RCLike.tendsto_ofReal_cobounded_cobounded ℂ have ht₃ : Tendsto (fun z : ℂ ↦ z * ↑π) (cobounded ℂ) (cobounded ℂ) := tendsto_mul_right_cobounded (by simp) exact ht₃.comp <| ht₂.comp ht₁ ``` |
t-order | 24/0 | Mathlib/Order/Filter/Map.lean,Mathlib/Order/Filter/Pointwise.lean | 2 | 1 | ['github-actions'] | Vierkantor | 10 days ago | 17 days ago | 17 days |
| 35554 | vihdzp | refactor: deprecate `Trunc` in favor of `Squash` | The [`Squash.lift`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Squash.lift) lemma in core is less general than [`Trunc.lift`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Quot.html#Trunc.lift). As such, we reimplement the Mathlib version as `Squash.lift'`. In the future, we probably want to rename `Squash.lift` → `Squash.liftOnSubsingleton` and `Squash.lift'` → `Squash.lift`. --- [](https://gitpod.io/from-referrer/) | t-data awaiting-CI | 305/77 | Mathlib/Data/DFinsupp/Defs.lean,Mathlib/Data/Fintype/Basic.lean,Mathlib/Data/Fintype/EquivFin.lean,Mathlib/Data/Fintype/Quotient.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Semiquot.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/Logic/Encodable/Pi.lean,Mathlib/Logic/Equiv/List.lean | 10 | 1 | ['github-actions'] | nobody | 10 days ago | unknown | unknown |
| 12933 | grunweg | chore: replace some use of > or ≥ by < or ≤ | These were flagged by the linter in #12879: it is easy to simple avoid > or ≥ in hypotheses or `have`s. --- - [x] depends on: #35346 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 123/123 | Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1962Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2011Q5.lean,Archive/Imo/Imo2019Q4.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Star/CHSH.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Nat/Dist.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Parity.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/UInt.lean,Mathlib/GroupTheory/Coxeter/Length.lean,Mathlib/MeasureTheory/Constructions/Polish.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Covering/Vitali.lean,Mathlib/MeasureTheory/Covering/VitaliFamily.lean,Mathlib/MeasureTheory/Integral/Layercake.lean,Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/NumberTheory/Padics/PadicNorm.lean,Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Rayleigh.lean,Mathlib/Probability/Process/Stopping.lean,Mathlib/Tactic/CancelDenoms/Core.lean,Mathlib/Tactic/IntervalCases.lean,Mathlib/Tactic/Linarith/Lemmas.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/NormNum/GCD.lean,Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Topology/Category/Profinite/Nobeling.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean,Mathlib/Topology/MetricSpace/CauSeqFilter.lean,Mathlib/Topology/Sequences.lean,test/LibrarySearch/basic.lean,test/Use.lean,test/cancel_denoms.lean,test/linarith.lean,test/norm_cast.lean | 64 | 7 | ['YaelDillies', 'github-actions', 'grunweg', 'mathlib-dependent-issues'] | nobody | 10 days ago | unknown | unknown |
| 35620 | inaciovasquez2020 | feat(Fintype): choose element from nonempty finite type | This PR adds a noncomputable choice function for finite types with nonzero cardinality. * `Fintype.chooseOfCardNeZero` provides a witness of `α` from `[Fintype α]` assuming `Fintype.card α ≠ 0`. * A regression test is included in `MathlibTest/Fintype/ChooseOfCardNeZero.lean`. The construction follows existing mathlib choice patterns and is explicitly marked `noncomputable`. | t-data new-contributor | 21/0 | Mathlib.lean,Mathlib/Data/Fintype/Choose.lean,MathlibTest/Fintype/ChooseOfCardNeZero.lean | 3 | 4 | ['github-actions', 'plp127', 'vihdzp'] | nobody | 10 days ago | unknown | unknown |
| 35043 | winstonyin | refactor(Analysis/ODE): restate existence and uniqueness using integral curve API | * Create `Mathlib/Analysis/ODE/ExistUnique.lean` to collect existence and uniqueness results for ODEs stated in terms of the integral curve API (`IsIntegralCurve`, `IsIntegralCurveOn`, `IsIntegralCurveAt`). * Move and restate the Picard-Lindelöf existence theorems from `PicardLindelof.lean` and the $C^1$ vector field results using `IsIntegralCurveOn`/`IsIntegralCurveAt` instead of raw `HasDerivWithinAt`/`HasDerivAt`. * Move and restate the Grönwall-based uniqueness theorems from `Gronwall.lean` using `IsIntegralCurveOn` with half-open intervals (`Ico`/`Ioc`) instead of `HasDerivWithinAt … (Ici t)`/`HasDerivWithinAt … (Iic t)`. * Rename uniqueness theorems to use dot notation on the integral curve types (e.g. `ODE_solution_unique_of_mem_Icc_right` becomes `IsIntegralCurveOn.eqOn_Icc_right`). * Add `IsIntegralCurveOn.eqOn_inter`: if two integral curves on preconnected sets `I` and `J` agree at a point in both sets, they agree on `I ∩ J`. * Add deprecation aliases for all renamed lemmas. - [ ] depends on: #29186 --- [](https://gitpod.io/from-referrer/) | blocked-by-other-PR | 730/330 | Mathlib.lean,Mathlib/Analysis/ODE/Basic.lean,Mathlib/Analysis/ODE/ExistUnique.lean,Mathlib/Analysis/ODE/Gronwall.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean,docs/1000.yaml,docs/undergrad.yaml | 11 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 9 days ago | unknown | unknown |
| 35638 | vihdzp | chore(Topology/Order/OrderClosed): use `to_dual` | --- - [ ] depends on: #35637 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR | 156/306 | Mathlib/Order/ConditionallyCompletePartialOrder/Defs.lean,Mathlib/Order/Cover.lean,Mathlib/Order/Filter/Defs.lean,Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Tactic/Translate/ToDual.lean,Mathlib/Topology/Order/LeftRight.lean,Mathlib/Topology/Order/OrderClosed.lean | 7 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 9 days ago | unknown | unknown |
| 35622 | SnirBroshi | feat(Logic/Function/Basic): `onFun` and `swap` preserve relation properties | --- [](https://gitpod.io/from-referrer/) | t-logic | 105/1 | Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Function/Defs.lean,Mathlib/Order/Defs/Unbundled.lean | 3 | 4 | ['SnirBroshi', 'github-actions', 'vihdzp'] | nobody | 9 days ago | 9 days ago | 10 days |
| 34941 | urkud | feat(FDeriv/Prod): generalize to TVS | --- Doesn't work yet - [ ] depends on: #34867 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-analysis | 326/178 | Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean,Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/FDeriv/CompCLM.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousAlternatingMap.lean,Mathlib/Analysis/Calculus/FDeriv/Linear.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean,Mathlib/Analysis/Calculus/FDeriv/Prod.lean,Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean,Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean | 10 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 9 days ago | unknown | unknown |
| 34937 | tannerduve | feat(Computability): semilattice instance on Turing degrees | This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory. The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows ``` turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g ``` and prove it is a least upper bound: * `left_le_join`, `right_le_join` * `join_le` * monotonicity and congruence lemmas (`join_mono`, `join_congr`) We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le` ``` instance : SemilatticeSup TuringDegree ``` **New additions to `RecursiveIn.lean`:** - `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`. - `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`. - `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable - `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set. Small addition to `Partrec` we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond` ## TODO Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library by essentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec` ## Note: AI Usage [Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files | t-computability new-contributor large-import | 644/63 | Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean | 3 | 14 | ['eric-wieser', 'github-actions', 'plp127', 'tannerduve', 'vihdzp'] | nobody | 9 days ago | 9 days ago | 23 days |
| 35295 | Rida-Hamadani | feat(SimpleGraph): `dropLast` of a cycle is a path | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 18/1 | Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 2 | 6 | ['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'vlad902'] | nobody | 9 days ago | 9 days ago | 10 days |
| 35655 | Rida-Hamadani | feat(SimpleGraph): strongly regular graphs have diameter 2 | A strongly regular graph with positive `μ` must have diameter 2, as long as the vertex set is nontrivial and it is not complete. --- - [ ] depends on: #35657 This statement is useful in the literature, I wanted to add it after seeing it being used in the proof of the Hoffman-Singleton theorem. [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-combinatorics | 54/0 | Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean,Mathlib/Data/ENat/Basic.lean | 3 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 9 days ago | 9 days ago | 10 minutes |
| 32941 | kim-em | feat(GroupTheory/Artin): add braid groups as Artin groups of type A | This PR defines braid groups as Artin groups of type A. - `BraidGroup n`: the braid group B_n on n strands - `BraidGroup.σ`: the standard Artin generators - `BraidGroup.toPermHom`: the canonical surjection B_n → S_n - `BraidGroup.braidGroupTwoEquivInt`: B_2 ≃* ℤ - [ ] depends on: #35219 🤖 Prepared with Claude Code | t-group-theory blocked-by-other-PR | 580/0 | Mathlib.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Artin/Basic.lean,Mathlib/GroupTheory/Artin/Braid.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/GroupTheory/Coxeter/Perm.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/PresentedGroup.lean | 10 | 25 | ['eric-wieser', 'github-actions', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier', 'tb65536', 'themathqueen'] | tb65536 | 9 days ago | 19 days ago | 13 days |
| 31576 | kim-em | feat: in a semilocally simply connected, locally path-connected space, the quotient of paths by homotopy has the discrete topology | This is closely related to, but not quite the same, as the quotient path space with fixed initial point being an even covering (under the endpoint map). Depends on - [ ] #31449 - [x] #31525 - [x] #31574 - [x] #31575 - [ ] #34557 - [ ] #34558 Claude wrote most of the text, under my prompting. | 1574/1 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SemilocallySimplyConnected.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/Path.lean,Mathlib/Topology/UnitInterval.lean | 8 | 6 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 9 days ago | unknown | unknown | |
| 22366 | kim-em | feat: `check_equalities` tactic for diagnosing defeq problems | The `check_equalities` tactic, which checks the typing of equalities in the goal, reporting discrepancies between the implicit type argument of the equality, and the inferred types of the left and right hand sides, at "instances and reducible" transparency. Reports from this tactic do not necessarily indicate a problem, although typically `simp` should reduce rather than increase the reported discrepancies. `check_equalities` may be useful in diagnosing uses of `erw`. | delegated t-meta | 123/4 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/CheckCompositions.lean,Mathlib/Tactic/CheckEqualities.lean,Mathlib/Tactic/Common.lean,MathlibTest/check_equalities.lean | 7 | 19 | ['adomani', 'b-mehta', 'eric-wieser', 'github-actions', 'grunweg', 'kim-em', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | nobody | 9 days ago | unknown | unknown |
| 35504 | 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 | 9 days ago | 12 days ago | 13 days |
| 27953 | CoolRmal | feat(ProbabilityTheory): Conditional Jensen's Inequality | This PR adds conditional Jensen's inequality. I made some changes to Mathlib/Analysis/Convex/Approximation.lean because I need the sequence of affine functions to be bouneded above at each point. --- - [x] depends on: #31411 - [x] depends on: #31399 [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 137/20 | Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean | 4 | 8 | ['CoolRmal', 'EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | sgouezel | 9 days ago | 10 days ago | 32 days |
| 33746 | ster-oc | feat(Algebra/Module/ZLattice): align `ZSpan.floor` to `Int.floor` API | This PR adds some of the existent lemmas about `Int.floor`, `Int.ceil` and `Int.fract` to the `ZSpan` namespace. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor merge-conflict | 353/145 | Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Topology/Algebra/Order/Floor.lean | 3 | 8 | ['github-actions', 'joelriou', 'mathlib-merge-conflicts', 'ster-oc'] | joelriou | 8 days ago | 8 days ago | 30 days |
| 35011 | whocares-abt | feat(Combinatorics/SimpleGraph/Copy): add degree of copy less than original | add two theorems relating degree of a graph and it's copy | t-combinatorics new-contributor | 17/0 | Mathlib/Combinatorics/SimpleGraph/Copy.lean | 1 | 12 | ['SnirBroshi', 'github-actions', 'themathqueen', 'vihdzp'] | nobody | 8 days ago | 8 days ago | 22 days |
| 35635 | vihdzp | chore(Order/Interval/Set/LinearOrder): use `to_dual` | --- - [x] depends on: #35636 It was hard to decide what got `to_dual none` and what got a proper dual. A lot of the duals generated in this file have "unnatural" statements - stuff like `Ioo b c ∪ Ioo a b`, where `Ioo a b ∪ Ioo b c` would be more sensible. My general rule of thumb was to make any "unnatural" duals private, except for those that were tagged `simp`, since those would at least strengthen the `simp` set. [](https://gitpod.io/from-referrer/) | t-order awaiting-CI | 114/118 | Mathlib/Order/Interval/Set/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean | 2 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 8 days ago | unknown | unknown |
| 35178 | grunweg | chore: split `T%` elaborator into its own file and move to `Topology` | TODO: this currently breaks the tangentspace case, need to rewrite it to avoid match_expr! --- - [ ] depends on: #35176 - [ ] depends on: #30463 [](https://gitpod.io/from-referrer/) | WIP merge-conflict | 764/87 | Mathlib.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/Topology/VectorBundle/Notation.lean,MathlibTest/DifferentialGeometry/Notation.lean,MathlibTest/DifferentialGeometry/NotationAdvanced.lean,MathlibTest/DifferentialGeometry/NotationSphere.lean | 6 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 8 days ago | unknown | unknown |
| 31580 | grunweg | feat: towards `ContMDiff` support in fun_prop | Create a `find_model` tactic for solving `ModelWithCorners k E H` goals, and a #find_model command to simplify testing it. (Both implementations are a bit hacky right now.) next step: extend the tactic, test that it works well then try to hook it up to fun_prop --- - [ ] depends on: #30463 [](https://gitpod.io/from-referrer/) | WIP t-differential-geometry merge-conflict t-meta | 1254/64 | Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/Geometry/Manifold/TestFunPropM.lean,MathlibTest/DifferentialGeometry/Notation.lean,MathlibTest/DifferentialGeometry/NotationAdvanced.lean,mathlib-immersions | 6 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 8 days ago | unknown | unknown |
| 28291 | vasnesterov | feat(Tactic): tactic for computing asymptotics of real functions | It's an auxiliary PR which implements the entire `compute_asymptotics` tactic. I am spliting it into multiple small PRs. --- Tactic description: https://vasnesterov.github.io/compute_asymptotics Zulip announcement: [#announce > New tactic: `compute_asymptotics`](https://leanprover.zulipchat.com/#narrow/channel/113486-announce/topic/New.20tactic.3A.20.60compute_asymptotics.60/with/538639418) In this PR I implement the `compute_asymptotics` tactic. Its purpose is to compute asymptotics of functions from `ℝ` to `ℝ`. So far it is able to compute the limit of any function constructed using arithmetic operations (`+`, `-`, `*`, `/`, inversion), powers, logarithms, and exponents. ```lean import Mathlib.Tactic.ComputeAsymptotics open Real Filter Topology Asymptotics example : Tendsto (fun (x : ℝ) ↦ (1 + 6 * x⁻¹) ^ (7 * x)) atTop (𝓝 (exp 42)) := by compute_asymptotics example : (fun x ↦ x - 1 - log x) ~[𝓝[≠] 1] (fun x ↦ (x - 1) ^ 2 / 2) := by compute_asymptotics example (a b : ℝ) (h : a < b) : (fun x ↦ (x + x * log x) ^ a) =O[atTop] (fun x ↦ (x / log x) ^ b) := by compute_asymptotics example : (fun x ↦ log x) =o[𝓝[>] 0] (fun x ↦ Real.pi / (exp (Real.log 2 * x) - 1)) := by compute_asymptotics ``` For more examples see `compute_asymptotics.lean` in tests. ### TODO * Different domains in `compute_limit` as well. * Trigonometric functions and Gamma-function. ### References I am basically implementing [this article](https://www21.in.tum.de/~eberlm/pdfs/real_asymp.pdf) about computing asymptotics in Isabelle by Manuel Eberl. ### Small PRs Here's a few smaller PRs coming from this one, ordered by importance: - [ ] depends on: #34922 - [ ] depends on: #35072 - [x] depends on: #34356 - [x] depends on: #34422 - [x] depends on: #34403 - [x] depends on: #34311 [](https://gitpod.io/from-referrer/) | WIP t-analysis t-meta large-import blocked-by-other-PR | 12797/70 | Mathlib.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean,Mathlib/Analysis/Normed/Operator/Basic.lean,Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/BasisM.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/CompareMS.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/CompareReal.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/ConstSimp.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/ConstSimpAttribute.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/ConvertDomain.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/Exp.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/LeadingTerm.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/Log.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/MS.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/Misc.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/Normalization.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/Trimming.lean,Mathlib/Tactic/ComputeAsymptotics/Meta/ZeroOracle.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basis.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/LeadingTerm.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/LogBasis.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Operations.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Operations/Add.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Operations/Basic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Operations/Exp.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Operations/Inv.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Operations/Log.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Operations/Mul.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Operations/Pow.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Operations/Powser.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Term.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Trimming.lean,Mathlib/Topology/Basic.lean,MathlibTest/compute_asymptotics.lean | 42 | 18 | ['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'ocfnash', 'vasnesterov'] | nobody | 8 days ago | unknown | unknown |
| 35671 | CoolRmal | feat: APIs for semifinite measures | This PR introduces the definition of a semifinite measure. The main theorems shown in this file are: - Sigma finite measures are semifinite. - `measure_eq_zero_of_measure_inter_finite_eq_zero`: Let `s` be a measurable set such that its intersection with any set of finite measure is null. Then `s` is null. Consequently, in order to check whether a proposition holds almost everywhere, it suffices to check it holds almost everywhere in every set with finite measure. - A measure is semifinite iff it equals to its semifinite part. --- [](https://gitpod.io/from-referrer/) | WIP t-measure-probability | 107/0 | Mathlib/MeasureTheory/Measure/Typeclasses/Semifinite.lean | 1 | 4 | ['CoolRmal', 'RemyDegenne', 'github-actions'] | nobody | 8 days ago | unknown | unknown |
| 35666 | urkud | chore(Calculus/FDeriv/Pi): migrate to TVS | --- - [ ] depends on: #35663 - [ ] depends on: #34941 - [ ] depends on: #34867 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR | 330/179 | Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean,Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/FDeriv/CompCLM.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousAlternatingMap.lean,Mathlib/Analysis/Calculus/FDeriv/Linear.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean,Mathlib/Analysis/Calculus/FDeriv/Pi.lean,Mathlib/Analysis/Calculus/FDeriv/Prod.lean,Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean,Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean | 11 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 8 days ago | 9 days ago | 2 minutes |
| 33972 | YuvalFilmus | feat(Analysis/Polynomial/Order): polynomial has fixed sign beyond largest root | We prove that a polynomial has fixed sign beyond its largest root. One could also prove similar results about the smallest root, but they will be more awkward since they will depend on the parity of the (natural) degree; suggestions welcome (perhaps for a future PR). --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-zulip | 134/0 | Mathlib.lean,Mathlib/Analysis/Polynomial/Order.lean | 2 | 13 | ['YuvalFilmus', 'artie2000', 'github-actions', 'mathlib-merge-conflicts', 'urkud', 'vihdzp'] | ADedecker and urkud | 8 days ago | 8 days ago | 38 days |
| 35548 | gasparattila | fix(fun_prop): do not unfold semireducible definitions in the presence of projections | --- [](https://gitpod.io/from-referrer/) | 151/108 | Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Condensed/TopCatAdjunction.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean,Mathlib/Tactic/DefEqTransformations.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Mor.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/FunProp/Types.lean,Mathlib/Topology/Algebra/AffineSubspace.lean,Mathlib/Topology/Algebra/ContinuousAffineEquiv.lean,Mathlib/Topology/Algebra/Field.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Algebra/Module/WeakBilin.lean,Mathlib/Topology/Category/TopCat/Limits/Basic.lean,Mathlib/Topology/Constructions/SumProd.lean,Mathlib/Topology/Homeomorph/Defs.lean,Mathlib/Topology/Instances/Matrix.lean,Mathlib/Topology/Path.lean,MathlibTest/DefEqTransformations.lean,MathlibTest/fun_prop_dev.lean | 22 | 5 | ['DavidLedvinka', 'JovanGerb', 'github-actions', 'j-loreaux', 'lecopivo'] | nobody | 8 days ago | unknown | unknown | |
| 35136 | joelriou | feat(AlgebraicGeometry): points of the small étale site | The main definition in this PR is `Scheme.pointSmallEtale`. Given a morphism `Spec (.of Ω) ⟶ S` where `Ω` is a separably closed field, we define the corresponding point of the small étale site of `S`. We show that these points form a conservative family. (This PR also removes the definition `Scheme.geometricFiber` which was not correct.) --- - [ ] depends on: #35141 - [ ] depends on: #35175 - [ ] depends on: #35240 - [ ] depends on: #34976 - [ ] depends on: #33958 [](https://gitpod.io/from-referrer/) | WIP t-algebraic-geometry blocked-by-other-PR large-import merge-conflict | 1632/73 | Mathlib.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/AlgebraicGeometry/Fiber.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Sites/AffineEtale.lean,Mathlib/AlgebraicGeometry/Sites/Etale.lean,Mathlib/AlgebraicGeometry/Sites/EtalePoint.lean,Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean,Mathlib/CategoryTheory/Elements.lean,Mathlib/CategoryTheory/EssentialImage.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Jointly.lean,Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean,Mathlib/CategoryTheory/Limits/FinallySmall.lean,Mathlib/CategoryTheory/Limits/MorphismProperty.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean,Mathlib/CategoryTheory/ShrinkYoneda.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean,Mathlib/CategoryTheory/Sites/Descent/DescentData.lean,Mathlib/CategoryTheory/Sites/Descent/Precoverage.lean,Mathlib/CategoryTheory/Sites/LocallySurjective.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean,Mathlib/CategoryTheory/Sites/SheafOfTypes.lean,Mathlib/CategoryTheory/Sites/Types.lean,Mathlib/CategoryTheory/Types/Epimorphisms.lean,Mathlib/Topology/Sheaves/Points.lean,Mathlib/Topology/Sheaves/Sheaf.lean | 29 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 8 days ago | unknown | unknown |
| 34830 | parabamoghv | feat(CategoryTheory/Monoidal): add definition of categorical groups | This PR defines of categorical groups, also known as coherent 2-groups, in mathlib. Motivation: Categorical groups are well-studied structures in monoidal category theory, but are not currently available in mathlib. The definitions in this PR follow the existing design patterns used for Category, MonoidalCategory, and BraidedCategory. This PR focuses on setting up the core structure and notation. Basic lemmas and further developments will be provided in a subsequent PR. --- [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor WIP | 163/0 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/CategoricalGroups/Basic.lean | 2 | 26 | ['dagurtomas', 'github-actions', 'parabamoghv', 'robin-carlier'] | robin-carlier | 8 days ago | 11 days ago | 5 days |
| 33688 | Citronhat | feat(PMF): add expectation lemmas for Poisson PMF | This PR adds some basic results about the Poisson distribution, its `PMF`, and its expectation. **New lemmas:** * `poissonPMF_apply` — an unfolding lemma for `poissonPMF`. * `poissonPMFReal_mul_eq_succ_mul` — the standard recursion identity for the Poisson mass function. * `poissonPMFReal_hasSum_nmul` — shows that `fun n ↦ poissonPMFReal r n * n` has sum `r`. * `poissonPMF_tsum_nmul` — the corresponding identity at the level of the `PMF`. * `poissonPMF_coe_tsum_nmul` — the same result after coercion to `ℝ`. Both `ℝ`-valued and `ℝ≥0∞`-valued formulations are included so that these results can be used conveniently in both Lebesgue and Bochner integration contexts. | new-contributor t-measure-probability awaiting-author | 21/0 | Mathlib/Probability/Distributions/Poisson.lean | 1 | 10 | ['Citronhat', 'DavidLedvinka', 'github-actions', 'urkud'] | urkud | 8 days ago | 8 days ago | 47 days |
| 31766 | SuccessMoses | feat(Topology/EMetricSpace): continuity of arc length | fixes half of #31751 --- [](https://gitpod.io/from-referrer/) | new-contributor t-topology awaiting-author merge-conflict | 396/0 | Mathlib.lean,Mathlib/Topology/EMetricSpace/ArcLength.lean,Mathlib/Topology/EMetricSpace/BoundedVariation.lean | 3 | 40 | ['SnirBroshi', 'SuccessMoses', 'alreadydone', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts'] | nobody | 8 days ago | 84 days ago | 2 days |
| 35682 | chenson2018 | chore(Computability/Partrec): remove `linter.flexible` exceptions | This removes all `set_option linter.flexible false` from this module. Some proofs simply required moving around the usage of `simp`. For others I used `grind`, which is permitted to follow flexible tactics. In all cases I prioritized leaving the structure of the proof either mostly as-is or slightly improving readability. --- [](https://gitpod.io/from-referrer/) | t-computability maintainer-merge | 23/41 | Mathlib/Computability/Partrec.lean | 1 | 6 | ['chenson2018', 'github-actions', 'grunweg'] | nobody | 8 days ago | 8 days ago | 8 days |
| 33143 | wwylele | feat(PowerSeries): pentagonal number theorem | The proof is split in two files: `Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean` for the algebraic part, and `Mathlib/RingTheory/PowerSeries/Pentagonal.lean` for the summability part. In the near future, I also plan to prove the real/complex version that branches off from the algebraic part. --- - [ ] depends on: #30436 [](https://gitpod.io/from-referrer/) | t-algebra | 332/1 | Mathlib.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml | 4 | 21 | ['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib4-dependent-issues-bot', 'urkud', 'vihdzp', 'wwylele'] | kex-y | 8 days ago | 8 days ago | 57 days |
| 35697 | gasparattila | chore: call `dsimp` in the default tactics of `Homeomorph` fields | --- - [ ] depends on: #35607 - [ ] depends on: #35683 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR | 120/127 | Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Tactic/DefEqTransformations.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/Constructions.lean,Mathlib/Topology/Algebra/Constructions/DomMulAct.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Constructions/SumProd.lean,Mathlib/Topology/Homeomorph/Defs.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,MathlibTest/DefEqTransformations.lean,MathlibTest/fun_prop_dev.lean | 16 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 8 days ago | unknown | unknown |
| 33257 | NickAdfor | feat(Combinatorics/SimpleGraph/Bipartite): Odd Cycle Theorem (A Solution to TODO) | Prove bipartite iff all cycles are even
This PR formalizes the classical graph theory theorem: a graph is bipartite if and only if all its cycles have even length.
Co-authored-by: Nick Adfor |
t-combinatorics new-contributor | 164/8 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean | 2 | 70 | ['IvanRenison', 'NickAdfor', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'kmill', 'mitchell-horner', 'vihdzp', 'vlad902'] | kmill | 8 days ago | 24 days ago | 32 days |
| 34599 | cameronfreer | feat(Logic/Equiv/Fintype): generalize toCompl and exists_extending_pair to finite source | Generalize the Equiv subtype-extension API so it only needs finiteness of
the source subtype, then use that to drastically simplify
`Equiv.Perm.isMultiplyPretransitive`.
### Changes to `Logic/Equiv/Fintype.lean`
* **`Equiv.toCompl`**: generalize from `[Finite α]` to `[Finite {x | p x}]`.
New proof (due to tb65536) uses finset symmetric differences to avoid
needing finiteness of the ambient type.
* **`Equiv.extendSubtype`** and related lemmas: adapt to `[Finite {x | p x}]`.
* **`Equiv.Perm.exists_extending_pair`**: strengthen from `[Finite β]` to
`[Finite α]`. Given two injective functions `f, g : α → β` where `α` is
finite, there exists `σ : Perm β` with `σ ∘ f = g`. The target `β` can
now be infinite.
### Changes to `MultipleTransitivity.lean`
* **`Equiv.Perm.isMultiplyPretransitive`**: replace ~70-line manual
bijectivity construction with a two-line proof via
`exists_smul_eq_embedding`.
* **`exists_smul_eq_embedding`**: rewire to use `exists_extending_pair`
directly (removing the old cardinal-arithmetic proof
`exists_extending_pair_of_finite_source`).
### Application
Used in formalizing de Finetti's theorem (exchangeability ⇒ contractability):
https://github.com/cameronfreer/exchangeability/blob/03a854a2/Exchangeability/Contractability.lean#L459
Co-authored-by: tb65536 |
t-group-theory new-contributor | 49/77 | Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/Logic/Equiv/Fintype.lean | 2 | 24 | ['LLaurance', 'cameronfreer', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] | mattrobball | 8 days ago | 8 days ago | 17 days |
| 35440 | harahu | chore(Order): fix indentation in markdown lists | Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. --- [](https://gitpod.io/from-referrer/) | t-order | 11/11 | Mathlib/Order/BourbakiWitt.lean,Mathlib/Order/GameAdd.lean,Mathlib/Order/Interval/Finset/Gaps.lean,Mathlib/Order/PrimeSeparator.lean | 4 | 1 | ['github-actions'] | Vierkantor | 8 days ago | 14 days ago | 14 days |
| 35549 | JovanGerb | fix(Translate): don't look in arguments of free variables in `shouldTranslate` | This PR addresses a `to_additive` limitation reported at [#mathlib4 > #35179 breaks to_additive call in FLT](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.2335179.20breaks.20to_additive.20call.20in.20FLT/with/574823087) by making sure `shouldTranslate` doesn't looks at the arguments of free variable applications This PR refactors `shouldTranslate` in a few ways - The monad is changed from `OptionT` to `ExceptT`, with the underlying type changing from `Option Expr` to `ExceptT Expr Unit`. Although this is technically a bit less efficient, it makes the program shorter and more intuitive, because a failure now actually corresponds to a monadic failure instead of a monadic success. - When visiting a `Expr.app` node, we now loop through the whole application at once, instead of doing this step by step and checking the cache at each step. This allows us to detect when the head is a free variable, and skip its arguments. It also lets us deal with `ignoreArgsAttr` more naturally. - This change removes the need for the `inApp : Bool` argument that used to be passed around in order to tell whether a constant was in an application. --- [](https://gitpod.io/from-referrer/) | t-meta | 44/39 | Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Tactic/Translate/ToDual.lean,MathlibTest/toAdditive.lean | 4 | 5 | ['JovanGerb', 'github-actions', 'leanprover-radar'] | dwrensha | 8 days ago | 12 days ago | 12 days |
| 30982 | jsm28 | feat(Geometry/Euclidean/Angle/Incenter): angle bisection and the incenter | Add lemmas relating the incenter and excenters of a simplex to angle bisection, both generally for a simplex and more specifically with oriented angles for a triangle. More specific lemmas for a simplex (identifying exactly which excenter corresponds to which bisectors) will require various additional API for bisectors of angles betweeen oriented affine subspaces (but for the most common applications to typical plane geometry problems, I expect the triangle lemmas with oriented angles to be more useful). --- - [ ] depends on: #30474 - [ ] depends on: #30477 - [ ] depends on: #30600 - [ ] depends on: #30703 - [ ] depends on: #30938 - [ ] depends on: #30981 [](https://gitpod.io/from-referrer/) | t-euclidean-geometry | 269/0 | Mathlib.lean,Mathlib/Geometry/Euclidean/Angle/Incenter.lean | 2 | 6 | ['Parcly-Taxel', 'github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] | JovanGerb | 8 days ago | 8 days ago | 21 days |
| 32294 | 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 blocked-by-other-PR | 458/0 | Mathlib.lean,Mathlib/Geometry/Euclidean/Angle/Incenter.lean | 2 | 5 | ['github-actions', 'jsm28', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'peakpoint'] | nobody | 8 days ago | unknown | unknown |
| 34717 | CoolRmal | feat: add more APIs for the first derivative test | --- [](https://gitpod.io/from-referrer/) | WIP | 417/31 | Mathlib/Analysis/Calculus/DerivativeTest.lean,Mathlib/Topology/Order/OrderClosedExtr.lean | 2 | 2 | ['CoolRmal', 'github-actions'] | nobody | 8 days ago | unknown | unknown |
| 33691 | kim-em | feat(scripts): add find-ci-errors.sh to diagnose widespread CI failures | This PR adds a script that searches through recent failed CI workflow runs to find open PRs whose current CI contains a specific error string. Useful for diagnosing widespread CI issues affecting multiple PRs (e.g., infrastructure problems, toolchain bugs). **Usage:** ```bash # Find all PRs currently failing with a specific error ./scripts/find-ci-errors.sh "Error parsing args: cannot parse arguments" # Find PRs and automatically add please-merge-master label to trigger rebuilds ./scripts/find-ci-errors.sh --please-merge-master "cannot parse arguments" ``` The `--please-merge-master` flag skips PRs with merge conflicts, and the label is automatically removed by CI once the build completes. 🤖 Prepared with Claude Code | CI delegated merge-conflict | 196/0 | scripts/README.md,scripts/find-ci-errors.sh | 2 | 6 | ['bryangingechen', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 7 days ago | 56 days ago | 1 hour |
| 35642 | SnirBroshi | feat(SimpleGraph/Walks/Operations): `p.dropLast.length` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 12/1 | Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 1 | 1 | ['github-actions', 'vlad902'] | nobody | 7 days ago | 9 days ago | 9 days |
| 35555 | JovanGerb | perf: add `AddMonoid` shortcut instance for linear maps | The hierarchy of classes is such that `AddCommMonoid` is not a direct parent of `AddCommGroup`. This means that when unifying an instance that comes from `AddCommMonoid` with one that comes from `AddCommGroup`, we end up having to go through the shared parent `AddMonoid`. Hence, it can be beneficial to have a separately defined `AddMonoid` instance. It might be worth it to try to switch up the order of the parents of `AddCommGroup`/`CommGroup` in the `extends` clause, and see if that has beneficial effects. Though this will affect many things, and in particular won't interact well with the `backward.respectTransparency` mess that is going on at the moment. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 23/7 | Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean | 4 | 5 | ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | robin-carlier | 7 days ago | 7 days ago | 4 days |
| 35680 | joelriou | feat(CategoryTheory/Sites): alternative constructor for points | --- [](https://gitpod.io/from-referrer/) | WIP t-category-theory | 286/0 | Mathlib.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Map.lean,Mathlib/CategoryTheory/Sites/Point/OfIsCofiltered.lean | 4 | 1 | ['github-actions'] | nobody | 7 days ago | unknown | unknown |
| 31046 | Thmoas-Guan | feat(Homology) : compatibility of map between `Ext` | In this PR, we proved the compatibility of map between `Ext` induced by exact functor with 1: `mk_0` 2: `comp` 3: `extClass` --- - [x] depends on: #31707 [](https://gitpod.io/from-referrer/) | t-category-theory | 232/1 | Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean | 4 | 20 | ['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] | eric-wieser | 7 days ago | 7 days ago | 16 days |
| 31644 | Thmoas-Guan | feat(Algebra): projective dimension of quotient regular sequence | In this PR, we proved that for finitely generated module over Noetherian local ring, quotient by regular sequence increase the projective dimension by exactly its length. --- - [ ] depends on: #28582 [](https://gitpod.io/from-referrer/) | awaiting-author t-ring-theory blocked-by-other-PR | 313/10 | Mathlib.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/Regular/ProjectiveDimension.lean | 5 | 28 | ['Thmoas-Guan', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 7 days ago | 108 days ago | 5 hours |
| 35150 | JovanGerb | chore(Order/OrderDual): move material on `OrderDual` | This PR moves material about `OrderDual` from `Mathlib.Order.Synonym` to `Mathlib.Order.OrderDual`, so that these two files become independent. This way, `Mathlib.Order.Synonym` will not be on the long pole. Note: it seems that the file `Mathlib.Order.Synonym` used to define `OrderDual`. Maybe that file should now be renamed to `Order.Lex`? --- [](https://gitpod.io/from-referrer/) | large-import t-order | 75/76 | Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Order/Group/Synonym.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Nat/Cast/Synonym.lean,Mathlib/Data/PSigma/Order.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Sigma/Order.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/Compare.lean,Mathlib/Order/Max.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/Order/OrderDual.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/Synonym.lean | 14 | 3 | ['MichaelStollBayreuth', 'bryangingechen', 'github-actions'] | Vierkantor | 7 days ago | 20 days ago | 20 days |
| 29776 | yuanyi-350 | chore: refactor `ContinuousLinearMap.isOpenMap` by separating it into sublemmas | The open mapping theorem in mathlib proves A ⇒ C by first proving A ⇒ B and then B ⇒ C in one theorem. In my PR, I separated it into two theorems: A ⇒ B and B ⇒ C. And now B ⇒ C is more general, with weaker assumptions than A ⇒ C. The [open mapping theorem](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Operator/Banach.html#ContinuousLinearMap.isOpenMap) in mathlib need `f` to be surjective. However, this can be weakened to the condition `h : ∃ (n : ℕ) (x : _), x ∈ interior (closure (f '' ball 0 n))` . I need this stronger formulation to prove the closed range theorem c.f. *Rudin Functional Analysis Thm 4.13* [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/refactor.20.60ContinuousLinearMap.2EisOpenMap.60) --- [](https://gitpod.io/from-referrer/) | WIP t-analysis | 53/33 | Mathlib/Analysis/Normed/Operator/Banach.lean | 1 | 17 | ['faenuccio', 'github-actions', 'kckennylau', 'leanprover-bot', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'themathqueen', 'yuanyi-350'] | faenuccio | 7 days ago | 164 days ago | 9 hours |
| 35631 | SnirBroshi | feat(SimpleGraph/Walks/Operations): `p.dropLast.support` lemmas | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 9/0 | Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 1 | 2 | ['github-actions', 'vlad902'] | nobody | 7 days ago | 7 days ago | 9 days |
| 34913 | Thmoas-Guan | feat(RingTheory): Definition of complete intersection local ring | feat(RingTheory): Definition of Complete intersection ring In this PR we give the definition of complete intersection local ring by `epsilon_1(R)+ dim(R)` equal to span rank of its maximal ideal. We also proved for quotient of regular local ring, it is CI iff the ideal being quotient out is generated by regular sequence. --- - [ ] depends on: #26245 - [ ] depends on: #29533 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import | 5749/101 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/CategoryTheory/Abelian/Ext.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basis.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/AdicCompletion/LocalRing.lean,Mathlib/RingTheory/AdicCompletion/Noetherian.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Catenary.lean,Mathlib/RingTheory/CohenMacaulay/Maximal.lean,Mathlib/RingTheory/CohenStructureTheorem.lean,Mathlib/RingTheory/CompleteIntersection/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/KoszulComplex/Cocomplex.lean,Mathlib/RingTheory/KoszulComplex/Complex.lean,Mathlib/RingTheory/KoszulComplex/Dual.lean,Mathlib/RingTheory/KoszulComplex/Homotopy.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/PowerSeries.lean,Mathlib/RingTheory/RingHom/Smooth.lean,Mathlib/RingTheory/Smooth/Quotient.lean | 33 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 days ago | unknown | unknown |
| 33864 | Timeroot | feat(Computability/Primrec): Proving several Nat arithmetic functions are primrec | Prove that gcd, lcm, coprimality, divisiblity, primality, factorial, descending factorial, powers, and various logarithms are all primitive recursive. Co-authored-by: Aristotle Harmonic <[aristotle-harmonic@harmonic.fun](mailto:aristotle-harmonic@harmonic.fun)> | large-import t-computability | 196/5 | Mathlib.lean,Mathlib/Computability/Primrec.lean,Mathlib/Computability/Primrec/List.lean,Mathlib/Computability/Primrec/Nat.lean,Mathlib/Data/Nat/Log.lean | 5 | 6 | ['eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | JovanGerb | 7 days ago | 25 days ago | 25 days |
| 35494 | Timeroot | feat(Topology/Perfect): simp frontier_singleton | Add simp lemma ``` theorem frontier_singleton {X : Type*} [TopologicalSpace X] [T1Space X] [PerfectSpace X] (p : X) : frontier {p} = {p} ``` --- [](https://gitpod.io/from-referrer/) | t-topology awaiting-author | 4/0 | Mathlib/Topology/Perfect.lean | 1 | 4 | ['Timeroot', 'github-actions', 'urkud', 'vihdzp'] | urkud | 7 days ago | 8 days ago | 5 days |
| 35493 | xroblot | feat(RamificationInertia): add `ramificationIdx_algebra_tower'` | The result [Ideal.ramificationIdx_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.ramificationIdx_algebra_tower) is stated in a very general situation whereas most of its applications should be when there is a tower of prime ideals like in [Ideal.inertiaDeg_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.inertiaDeg_algebra_tower). This PR adds a version of `Ideal.ramificationIdx_algebra_tower` specialized to this case. The instances needed are stronger but there is no side condition. I believe that this corresponds to the more useful situation and thus I replaced all the use of `Ideal.ramificationIdx_algebra_tower` by the new version even if that means having to adjust the hypotheses. --- [](https://gitpod.io/from-referrer/) | t-number-theory | 37/24 | Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/RingTheory/Localization/AtPrime/Extension.lean | 4 | 3 | ['MichaelStollBayreuth', 'github-actions', 'xroblot'] | MichaelStollBayreuth | 7 days ago | 7 days ago | 7 days |
| 34848 | bjornsolheim | feat(Analysis/Convex/Cone): min and max tensor products are equal when one factor is simplicial and generating | Prove that min and max tensor products are equal when one factor is simplicial and generating. Add theorems: minTensorProduct_eq_max_of_simplicial_generating_left minTensorProduct_eq_max_of_simplicial_generating_right --- - [ ] depends on: #32355 [new file simplicial.lean] [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author | 166/0 | Mathlib.lean,Mathlib/Analysis/Convex/Cone/TensorProduct.lean | 2 | 6 | ['github-actions', 'j-loreaux', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | j-loreaux | 7 days ago | 7 days ago | 9 days |
| 34867 | urkud | feat(FDeriv/Comp): migrate to TVS | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #34832 | t-analysis awaiting-author | 94/91 | Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousAlternatingMap.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean | 3 | 20 | ['eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-radar', 'mathlib-bors', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'urkud'] | j-loreaux | 7 days ago | 7 days ago | 15 days |
| 34419 | ster-oc | feat(RCLike): add `Continuous.re` and similar | This PR adds dot notation for `re`, `im`, `conj` and `ofReal` for `Continuous`, `LipschitzWith` and `Memℓp`. Given `hf : Continuous f` it allows to use `hf.re` to express `Continuous (fun x ↦ (f x).re)`, similarly to the usual `hf.add hg`. I also can add the same features for `Summable` but I am not sure where to place them, suggestions are appreciated! --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor awaiting-author | 186/41 | Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/RCLike/Basic.lean | 3 | 14 | ['github-actions', 'j-loreaux', 'ster-oc'] | j-loreaux | 7 days ago | 7 days ago | 8 days |
| 35664 | Rida-Hamadani | feat(SimpleGraph): the adjacency matrix of empty and complete graphs | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 11/0 | Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean | 1 | 2 | ['IvanRenison', 'github-actions'] | nobody | 7 days ago | 7 days ago | 9 days |
| 26479 | thefundamentaltheor3m | feat(Analysis/Complex/CauchyIntegral): Cauchy–Goursat for Unbounded Rectangles | In this PR, we prove versions of the Cauchy-Goursat theorem where the contours in question are rectangular and unbounded (ie, where the contours look like the $\bigsqcup$ symbol). I am not sure if I have formalised these in the best way, or if `Analysis.Complex.CauchyIntegral` is the best place for them (it might be prudent to reorganise the file into multiple files at some point), but I believe this is a useful result. Suggestions welcome. --- [](https://gitpod.io/from-referrer/) | new-contributor t-analysis sphere-packing awaiting-author | 205/0 | Mathlib/Analysis/Complex/CauchyIntegral.lean | 1 | 6 | ['github-actions', 'j-loreaux', 'loefflerd', 'mathlib4-merge-conflict-bot', 'thefundamentaltheor3m', 'wwylele'] | urkud | 7 days ago | 7 days ago | 34 days |
| 35582 | nielsvoss | feat(Analysis/InnerProductSpace): add theorems about the adjoint, kernel, range, and orthogonal complement | Add theorems about the interaction between the adjoint, kernel, range, and orthogonal complement from Linear Algebra Done Right 4th edition. This includes theorems from the singular value decomposition section which are needed for #33731. - `LinearMap.orthogonal_ker` and `LinearMap.orthogonal_range` are inherited from the `ContinuousLinearMap` versions. - `ker_adjoint_comp_self` and `adjoint_comp_self_injective_iff` are new theorems for both `ContinuousLinearMap` and finite-dimensional `LinearMap`. - `LinearMap.range_adjoint_comp_self` and `LinearMap.finrank_range_adjoint` apply to only finite-dimensional `LinearMap`. --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor awaiting-author | 52/0 | Mathlib/Analysis/InnerProductSpace/Adjoint.lean | 1 | 7 | ['github-actions', 'j-loreaux', 'themathqueen'] | j-loreaux | 7 days ago | 7 days ago | 4 days |
| 33247 | sun123zxy | feat(Mathlib/RingTheory/Ideal/Cotangent): dimension of cotangent spaces | It is shown that the span rank of the maximal ideal of a local ring equals the dimension of the cotangent space if the maximal ideal is finitely generated. To avoid unnecessary imports, the original `Mathlib/RingTheory/Nakayama` is now moved to `Mathlib/RingTheory/Nakayama/Basic`. --- - [ ] depends on: #33359 - [ ] depends on: #33361 - [ ] depends on: #35651 [](https://gitpod.io/from-referrer/) | file-removed new-contributor t-ring-theory WIP blocked-by-other-PR merge-conflict | 140/27 | Mathlib.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/LocalRing/Module.lean,Mathlib/RingTheory/LocalRing/Quotient.lean,Mathlib/RingTheory/Nakayama/Basic.lean,Mathlib/RingTheory/Nakayama/SpanRank.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/Support.lean | 10 | 13 | ['erdOne', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sun123zxy'] | nobody | 7 days ago | 66 days ago | 3 days |
| 33501 | SnirBroshi | feat(Combinatorics/SimpleGraph/Finite): degrees for infinite graphs | - Redefine degrees using `Set.ncard` to avoid `Fintype` and enable talking about degrees in infinite graphs. - Define `ENat` versions of `degree`/`minDegree`/`maxDegree` called `edegree`/`eminDegree`/`emaxDegree` respectively. - Remove `LocallyFinite` assumption from `IsRegularOfDegree`, and change it to use `edegree = k` instead of `degree = k` to retain the meaning of the case `k = 0`. --- The `e` prefix matches the existing `edist` and `ediam`. To make reviewing easier, this PR intentionally does not: - Add theorems about the new definitions - Reorder theorems to avoid `omit`s - Move theorems to a new `Degree.lean` file This is so that the diff shows the old/new versions side-by-side, and to avoid a bigger PR. Consequently a few proofs are a bit longer, but that'll be fixed after this PR by adding API lemmas for the new definitions (e.g. `edegree ≠ ⊤ → edegree = degree`). Regarding computability: If computability of degrees is useful, we can introduce a separate `findegree` in the future (similar to `neighborSet` vs `neighborFinset`), but I think degrees are a basic graph definition that should be defined for any `SimpleGraph`. As for theorems, such a `findegree` can use a lemma `findegree = degree` to access all the degree theorems, instead of duplicating everything to both versions. This PR was motivated by wanting to talk about infinite graphs with a finite max-degree. [](https://gitpod.io/from-referrer/) | large-import t-combinatorics awaiting-author | 352/259 | Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Counterexamples/HeawoodUnitDistance.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/Data/Set/Card.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean | 22 | 24 | ['SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vlad902'] | YaelDillies | 7 days ago | 30 days ago | 14 days |
| 34466 | Komyyy | perf: modulize tests (N/N) | --- Privately imports are intentional. - [ ] Await the release of leanprover/lean4#12198 - [x] depends on: #34970 - [x] depends on: #35288 [](https://gitpod.io/from-referrer/) | blocked-by-core-release CI merge-conflict | 370/46 | MathlibTest/AssertImported.lean,MathlibTest/Bound/attribute.lean,MathlibTest/Bound/bound.lean,MathlibTest/CalcQuestionMark.lean,MathlibTest/CategoryTheory/Bicategory/Normalize.lean,MathlibTest/CategoryTheory/Elementwise.lean,MathlibTest/CategoryTheory/Monoidal/Normalize.lean,MathlibTest/CategoryTheory/PrettyPrinting.lean,MathlibTest/Clean.lean,MathlibTest/DFinsuppMultiLinear.lean,MathlibTest/FBinop.lean,MathlibTest/LibrarySuggestions/sineQuaNon.lean,MathlibTest/Nat/log.lean,MathlibTest/Real.lean,MathlibTest/RefinedDiscrTree.lean,MathlibTest/Replace.lean,MathlibTest/Rify.lean,MathlibTest/Use.lean,MathlibTest/choose.lean,MathlibTest/fail_if_no_progress.lean,MathlibTest/fast_instance.lean,MathlibTest/grind/field.lean,MathlibTest/grind/grobner.lean,MathlibTest/grind/linarith.lean,MathlibTest/grind/lint.lean,MathlibTest/grind/pairwise_disjoint.lean,MathlibTest/grind/set.lean,MathlibTest/grind/trig.lean,MathlibTest/hintAll.lean,MathlibTest/peel.lean,MathlibTest/slow_simp.lean,lakefile.lean,not_modulized_modules.txt,scripts/check_modulized_tests.lean | 34 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 days ago | unknown | unknown |
| 34734 | FLDutchmann | refactor(Tactic): change `ring` to allow for coefficients in a variable type | Add a parameter to the `ring` normal form that allows for the coefficients to be represented by a custom `BaseType`. `ring` (roughly) sets `BaseType` to be `Rat` and implements addition/multiplication/etc. using `norm_num`. The changes should not be noticeable to users. Care was taken to change as little of the implementation details as possible. This refactor is made in preparation of the `algebra` tactic proposed in #31508. In particular `algebra` will (roughly) set `BaseType` to `Ring.ExSum`. This will allow `algebra` to share much of its internals with `ring`. --- - [x] depends on: #34837 [](https://gitpod.io/from-referrer/) | t-meta delegated merge-conflict | 1106/658 | Mathlib/Tactic/Ring/Basic.lean,Mathlib/Tactic/Ring/Common.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Tactic/Ring/RingNF.lean,MathlibTest/ring.lean,scripts/noshake.json | 6 | 60 | ['FLDutchmann', 'Vierkantor', 'eric-wieser', 'github-actions', 'leanprover-radar', 'mathlib-bors', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | Vierkantor | 7 days ago | 22 days ago | 3 days |
| 34759 | 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). --- - [ ] depends on: #34755 - [ ] depends on: #34756 - [ ] depends on: #34758 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-ring-theory merge-conflict | 346/3 | Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Combinatorics/Matroid/Closure.lean,Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Logic/Basic.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean | 5 | 5 | ['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 days ago | unknown | unknown |
| 34805 | DavidLedvinka | feat(Tactic): generalize ofScientific NormNum extension to `DivisionSemiring` | Co-authored-by: @hrmacbeth | t-meta awaiting-author merge-conflict | 68/20 | Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/OfScientific.lean,MathlibTest/norm_num.lean | 3 | 25 | ['DavidLedvinka', 'JovanGerb', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'thorimur'] | JovanGerb | 7 days ago | 7 days ago | 20 days |
| 34853 | GrigorenkoPV | feat(Combinatorics/Enumerative/Catalan): ratio of subsequent Catalan numbers | --- Should I split this into 2 PRs? Otherwise it'll get squashed & be less concise. UPD: ok, I've opened #34854 [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict | 305/195 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/Combinatorics/Enumerative/Catalan/Basic.lean,Mathlib/Combinatorics/Enumerative/Catalan/Ratio.lean,Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean | 7 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | nobody | 7 days ago | 25 days ago | 1 day |
| 34854 | GrigorenkoPV | chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` | --- Split off from #34853 [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict | 228/195 | Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/Combinatorics/Enumerative/Catalan/Basic.lean,Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean | 6 | 5 | ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | thorimur | 7 days ago | 13 days ago | 13 days |
| 33731 | nielsvoss | feat(Analysis/InnerProductSpace): definition of singular values for finite-dimensional inner product spaces | This PR defines the singular values for linear maps between finite-dimensional inner product spaces. The API is designed in a way that allows it to be generalized to the approximation numbers, as defined in #32126. See the discussion on Zulip: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Singular.20Value.20Decomposition/with/558914024 --- - [x] depends on: #34362 - [x] depends on: #34660 - [ ] depends on: #35174 - [x] depends on: #35236 - [ ] depends on: #35582 [](https://gitpod.io/from-referrer/) | t-analysis new-contributor WIP blocked-by-other-PR | 267/0 | Mathlib/Analysis/InnerProductSpace/SingularValues.lean,docs/references.bib | 2 | 23 | ['b-mehta', 'dupuisf', 'eric-wieser', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'nielsvoss', 'themathqueen'] | nobody | 7 days ago | unknown | unknown |
| 35292 | Rida-Hamadani | feat(SimpleGraph): taking twice from a walk equals taking the minimum | this is an analogue to `List.take_take`. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 5/0 | Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean | 1 | 2 | ['SnirBroshi', 'github-actions'] | nobody | 7 days ago | 17 days ago | 17 days |
| 35696 | GrigorenkoPV | fix(Data/Rel): change what `image_eq_cod_of_dom_subset` states | It used to be identical to its neighbor, `preimage_eq_dom_of_cod_subset`. Both lemmas seem to have been introduced in #25587. --- I think this is technically a breaking change? Not sure what has to be done here. [](https://gitpod.io/from-referrer/) | t-data new-contributor | 1/1 | Mathlib/Data/Rel.lean | 1 | 2 | ['github-actions', 'vihdzp'] | nobody | 7 days ago | unknown | unknown |
| 28248 | YaelDillies | feat: binomial random variables | Define the binomial distribution and compute the expectation, variance, conditional variance of a binomial random variable. From MiscYD --- - [x] depends on: #31908 - [x] depends on: #31910 - [x] depends on: #31942 - [x] depends on: #31947 - [x] depends on: #34367 - [x] depends on: #34370 - [x] depends on: #34374 [](https://gitpod.io/from-referrer/) | t-measure-probability | 232/0 | Mathlib.lean,Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/Probability/Distributions/Binomial.lean | 3 | 64 | ['DavidLedvinka', 'RemyDegenne', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'kex-y', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'pfaffelh', 'themathqueen'] | kex-y | 7 days ago | 15 days ago | 36 days |
| 33985 | YellPika | feat(Order/OmegaCompletePartialOrder): `OmegaCompletePartialOrder` instance for `Sum` with basic `ωScottContinuous` lemmas | This PR adds an `OmegaCompletePartialOrder` instance for `Sum`, along with `ωScottContinuous` lemmas for basic operations (`inl`, `inr`, `elim`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sum`s (e.g. see the proof of `Sum.ωScottContinuous_map`). --- - [x] depends on: #33941 [](https://gitpod.io/from-referrer/) | new-contributor large-import t-order | 191/1 | Mathlib/Data/Sum/Basic.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/ScottContinuity.lean | 4 | 20 | ['Vierkantor', 'YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | bryangingechen | 7 days ago | 15 days ago | 27 days |
| 34697 | wwylele | feat(Geometry/Euclidean): the Euclidean volume measure | This PR starts a series to set up volume measure for Euclidean geometry, so it can be used in formalizing problems involving area and volume. This PR only introduce the basic definition and properties. Some future PR will also include - Integral along an affine subspace to calculate the volume of an object - Define volume of a simplex using the base * height / n formula (not assuming measurability) - Show that the defined volume matches the measure of the interior (see the draft #34826 for the target lemma) - More specialized formula for the area of triangles. --- Zulip thread: [#Is there code for X? > Measure on affine space](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Measure.20on.20affine.20space/with/570193872) [](https://gitpod.io/from-referrer/) | t-euclidean-geometry t-measure-probability | 165/0 | Mathlib.lean,Mathlib/Geometry/Euclidean/Volume/Measure.lean | 2 | 11 | ['copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] | urkud | 7 days ago | 27 days ago | 30 days |
| 35042 | JovanGerb | chore: remove `meta` form `import Mathlib.Tactic...` | This PR cleans up some imports of the form `import Mathlib.Tactic...`, by either removing them entirely, or removing the `meta` keyword. It should never be necessary to `meta import` a file from `Mathlib.Tactic`, because the relevant definitions should already have been marked as `meta`. The motivation is to reduce the amount of files that are `meta` imported when writing e.g. `import Mathlib`, hence reducing the amount of stuff that needs to be loaded. There are more other `meta import`s that need to be removed, but this PR is a good start. --- [](https://gitpod.io/from-referrer/) | large-import | 61/142 | Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/Group/Action/Hom.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/CategoryTheory/Functor/Basic.lean,Mathlib/Data/List/ChainOfFn.lean,Mathlib/Dynamics/OmegaLimit.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean,Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/ApplyFun.lean,Mathlib/Tactic/ArithMult.lean,Mathlib/Tactic/Bound.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Normalize.lean,Mathlib/Tactic/CategoryTheory/Bicategory/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/CheckCompositions.lean,Mathlib/Tactic/CategoryTheory/Coherence/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/Elementwise.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Tactic/Choose.lean,Mathlib/Tactic/DeclarationNames.lean,Mathlib/Tactic/DefEqTransformations.lean,Mathlib/Tactic/DeriveCountable.lean,Mathlib/Tactic/DeriveFintype.lean,Mathlib/Tactic/DeriveTraversable.lean,Mathlib/Tactic/ENatToNat.lean,Mathlib/Tactic/Explode.lean,Mathlib/Tactic/Explode/Pretty.lean,Mathlib/Tactic/FinCases.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Attr.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/FunProp/Types.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Elab.lean,Mathlib/Tactic/Group.lean,Mathlib/Tactic/IrreducibleDef.lean,Mathlib/Tactic/Lift.lean,Mathlib/Tactic/Linarith.lean,Mathlib/Tactic/Linarith/Lemmas.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Gauss.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Preprocessing.lean,Mathlib/Tactic/Linarith/Verification.lean,Mathlib/Tactic/LinearCombination/Lemmas.lean,Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean,Mathlib/Tactic/Linter/DocPrime.lean,Mathlib/Tactic/Linter/DocString.lean,Mathlib/Tactic/Linter/EmptyLine.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/Linter/GlobalAttributeIn.lean,Mathlib/Tactic/Linter/HashCommandLinter.lean,Mathlib/Tactic/Linter/Multigoal.lean,Mathlib/Tactic/Linter/OldObtain.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,Mathlib/Tactic/Linter/UnusedTacticExtension.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/NormNum/DivMod.lean,Mathlib/Tactic/NormNum/Ineq.lean,Mathlib/Tactic/NormNum/Prime.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/Order/CollectFacts.lean,Mathlib/Tactic/Order/Graph/Tarjan.lean,Mathlib/Tactic/PNatToNat.lean,Mathlib/Tactic/Peel.lean,Mathlib/Tactic/ProdAssoc.lean,Mathlib/Tactic/ProxyType.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/Qify.lean,Mathlib/Tactic/RSuffices.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Tactic/Ring/Common.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Tactic/Ring/PNat.lean,Mathlib/Tactic/Simproc/Divisors.lean,Mathlib/Tactic/Simproc/FinsetInterval.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Subsingleton.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,Mathlib/Tactic/TautoSet.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/TagUnfoldBoundary.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CommDiag.lean,Mathlib/Tactic/Widget/CongrM.lean | 107 | 7 | ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | dupuisf | 7 days ago | 10 days ago | 14 days |
| 35273 | grunweg | chore: replace `continuity` -> `fun_prop` in remaining auto-parameters | Resurrected version of #13994. Let's look at the current fall-out and performance effect. --- - [x] depends on: #35278 [](https://gitpod.io/from-referrer/) | t-topology | 23/16 | Mathlib/Analysis/Convex/PathConnected.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/SpecialFunctions/Arcosh.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean,Mathlib/Topology/Algebra/ContinuousMonoidHom.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,Mathlib/Topology/Category/TopCat/ULift.lean,Mathlib/Topology/ContinuousMap/Basic.lean,Mathlib/Topology/ContinuousMap/Defs.lean,Mathlib/Topology/FiberPartition.lean | 14 | 4 | ['github-actions', 'grunweg', 'leanprover-radar', 'mathlib-dependent-issues'] | urkud | 7 days ago | 13 days ago | 13 days |
| 35481 | FrankieeW | chore(NumberTheory/Zsqrtd): inline duplicated order lemmas into instances | This PR follows reviewer feedback by removing duplicated order/additive wrapper theorems in `Zsqrtd` and inlining the proofs into the corresponding typeclass instances. Changes include: - remove redundant wrappers such as `Zsqrtd.le_total`, `Zsqrtd.add_le_add_left`, `Zsqrtd.le_of_add_le_add_left`, `Zsqrtd.add_lt_add_left`, and `Zsqrtd.le_antisymm` - keep the canonical API through `LinearOrder` / ordered additive structure fields - update downstream use in `PellMatiyasevic` to the canonical theorem (`_root_.le_antisymm`) This reduces namespace-level duplicate APIs and keeps proofs aligned with standard typeclass lemmas. --- [](https://gitpod.io/from-referrer/) | new-contributor t-number-theory | 26/10 | Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean | 2 | 8 | ['FrankieeW', 'github-actions', 'vihdzp'] | MichaelStollBayreuth | 7 days ago | 10 days ago | 13 days |
| 35565 | felixpernegger | feat(Topology): sequentially T2 spaces | Adds typeclass for topoligcal spaces where convergent sequences have a unique limit. This lies between T2 and T1 and is occassionally useful when T2 is not strictly required. An example of a non T2 space with unique limit is the one point compactification of Q. There are some more implications not in this PR, see https://topology.pi-base.org/properties/P000099 In particular, (countably) compact sets are closed in sequentially T2 spaces. | t-topology | 135/0 | Mathlib.lean,Mathlib/Topology/SequentiallyHausdorff.lean | 2 | 1 | ['github-actions'] | urkud | 7 days ago | 11 days ago | 11 days |
| 35590 | chrisflav | feat(Algebra): add `AlgHom.ulift` | --- [](https://gitpod.io/from-referrer/) | t-algebra | 71/3 | Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Ring/ULift.lean | 3 | 4 | ['chrisflav', 'github-actions', 'wwylele'] | kim-em | 7 days ago | 10 days ago | 11 days |
| 35735 | mkaratarakis | feat(NumberTheory): analytical properties and lower bounds for Gelfond-Schneider auxiliary function | This PR is the third component in the formalization of the Gelfond-Schneider Theorem (Hilbert's Seventh Problem). It connects the algebraically constructed auxiliary function `R(x)` to its analytical properties, establishing the exact order of vanishing and the fundamental lower bound on the norm of its non-zero derivative evaluation. Following the argument in Loo-Keng Hua's *Introduction to Number Theory* (Chapter 17.9, equations (4) and (5)), we define the minimal non-vanishing derivative order $r$ and scale the evaluation to an algebraic integer to compute its norm. 1. (`iteratedkDeriv_R_eq_zero` & `order_geq_n`): We verify that the coefficient vector $\eta$ (chosen via Siegel's lemma in the previous PR) forces the first $n$ derivatives of the auxiliary function $R(x)$ to vanish at the points $x \in \{1, 2, \dots, m\}$. Consequently, the analytical order of $R(x)$ at these points is at least $n$. 2. We extract $r$, the exact minimal order of vanishing of $R(x)$ among all points $1 \le l \le m$, and prove that $n \le r$. 3. We define the non-zero algebraic number $\rho = (\log \alpha)^{-r} R^{(r)}(l_0)$. 4. We prove the crucial textbook step that scaling $\rho$ by $c_1^{r+2mq}$ (formalized here as `cρ`) results in an algebraic integer in $\mathcal{O}_K$. 5. Because $c_1^{r+2mq} \rho$ is a non-zero algebraic integer, the absolute value of its norm is at least $1$. We use this to formally prove the strict lower bound on the absolute norm of the unscaled $\rho$: $|N(\rho)| > c_1^{-h(r+2mq)} > c_5^{-r}$. --- - [ ] depends on: #35734 [optional extra text] [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor blocked-by-other-PR | 1141/0 | Mathlib.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlgSetup.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainOrder.lean | 4 | 3 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 7 days ago | unknown | unknown |
| 35744 | mkaratarakis | feat(NumberTheory): non-vanishing derivative and algebraic lower bound for Gelfond-Schneider | This PR continues the formalization of the **Gelfond-Schneider Theorem** (Hilbert's Seventh Problem). It establishes the critical algebraic lower bound for the auxiliary function's evaluation by isolating its first non-vanishing derivative and scaling it to a non-zero algebraic integer. Following the contradiction argument in Loo-Keng Hua's *Introduction to Number Theory* (Chapter 17.9, Equation 5), we extract the minimal non-vanishing derivative order $r$ and prove the integrality of its scaled evaluation to establish a strict analytical lower bound. 1) Confirms that by our previous choice of coefficients $\eta$, the first $n$ derivatives of the auxiliary function $R(x)$ vanish at the evaluation points $1, \dots, m$. 2) Extracts the exact minimal order of vanishing $r$ among all points $l_0 + 1$, explicitly proving the textbook assertion that $n \le r$. 3) Defines the non-zero algebraic number $\rho = (\log \alpha)^{-r} R^{(r)}(l_0)$. 4) Formalizes the crucial algebraic step that scaling the evaluated system coefficients by $c_1^{r+2mq}$ (formalized here as `cρ`) clears all denominators, resulting in an algebraic integer strictly within $\mathcal{O}_K$. 5) Concludes that because the scaled $\rho$ is a non-zero algebraic integer, its absolute norm is strictly bounded below by $1$. This establishes the algebraic foundation for the absolute lower bound $|N(\rho)| > c_5^{-r}$, which will directly oppose the complex analytic upper bound via Cauchy's integral formula in the final contradiction step. --- - [ ] depends on: #35316 - [ ] depends on: #35743 - [ ] depends on: #35315 [](https://gitpod.io/from-referrer/) | t-number-theory blocked-by-other-PR | 2028/0 | Mathlib.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlgSetup.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAnalytic.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainOrder.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainPostAnalytic.lean | 6 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 7 days ago | unknown | unknown |
| 35743 | mkaratarakis | feat(NumberTheory): non-vanishing derivative and norm lower bounds for Gelfond-Schneider | This PR continues the formalization of the Gelfond-Schneider Theorem (Hilbert's Seventh Problem). It establishes the critical algebraic foundation for the lower bound of the auxiliary function's evaluation by isolating its first non-vanishing derivative and proving its scaled norm is strictly bounded below. Following the contradiction argument in Loo-Keng Hua's *Introduction to Number Theory* (Chapter 17.9), we verify that the evaluation at the minimal non-vanishing order $r$ yields a strictly non-zero algebraic integer when appropriately scaled. 1) Confirms that the $r$-th derivative of the auxiliary function $R(x)$ at $l_0 + 1$ is strictly non-zero, and formally translates this into the non-zero algebraic element $\rho$. 2) Formalizes the crucial algebraic step that scaling the evaluated system coefficients by $c_1^{r+2mq}$ (formalized as `cρ`) clears all denominators, resulting in a strictly non-zero algebraic integer within $\mathcal{O}_K$. 3) Concludes that because the scaled $\rho$ is a non-zero algebraic integer, its absolute norm is strictly bounded below by 1. This formalizes the core Diophantine principle that non-zero integers cannot be arbitrarily small, establishing the algebraic foundation required to oppose the complex analytic upper bound in the final contradiction step. --- - [ ] depends on: #35735 [](https://gitpod.io/from-referrer/) | t-number-theory blocked-by-other-PR | 1650/0 | Mathlib.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlgSetup.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAnalytic.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainOrder.lean | 5 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 7 days ago | unknown | unknown |
| 35280 | khwilson | feat(Mathlib/Analysis/Polynomial/MahlerMeasure): Mahler Measure estimate in terms of supNorm | The Mahler measure of a polynomial is bounded above by `√(p.natDegree + 1) * p.supNorm`. This is a tighter estimate than `(p.natDegree + 1) * p.supNorm`, which is implied by `mahlerMeasure_le_sum_norm_coeff`. AI Usage: Claude Code (Opus 4.6) provided first drafts for several sorries in the main calc block. Gemini Pro was used for one-off looks ups of lemma names like `ae_restrict_iff'`. The final code was edited by me. [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 67/0 | Mathlib/Analysis/Polynomial/MahlerMeasure.lean | 1 | 12 | ['github-actions', 'j-loreaux', 'khwilson', 'mathlib-merge-conflicts'] | j-loreaux | 7 days ago | 7 days ago | 17 days |
| 35718 | Parcly-Taxel | chore: remove some `respectTransparency` options | Cf. [#general > backward.isDefEq.respectTransparency @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/backward.2EisDefEq.2ErespectTransparency/near/575565028) | awaiting-author | 9/22 | Mathlib/Data/Finset/Fin.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/List/OfFn.lean,Mathlib/Data/Nat/Count.lean,Mathlib/Data/Nat/Factorization/PrimePow.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Logic/Equiv/Set.lean | 7 | 4 | ['github-actions', 'kim-em', 'matthewjasper', 'wwylele'] | nobody | 7 days ago | unknown | unknown |
| 34728 | j-loreaux | feat: continuous linear equivalence between continuous `ℝ`- and `𝕜`-linear functionals, when equipped with the weak⋆-topology | This realizes the map `StrongDual.extendRCLikeₗ`, after pre- and post-composing so that it is an equivalence between the weak duals, as a *continuous* linear equivalence. --- - [ ] depends on: #34543 The placement in `Analysis/Normed/Module/WeakDual` seems suboptimal because this has nothing to do with the norm. This is because `WeakDual.toStrongDual` is already in this file, which should probably be moved to `Topology/Algebra/Module/WeakDual`. However, even if that moves, the declarations added in this PR cannot easily go with it because they involve `RCLike`. Potentially, they could move to `Analysis/RCLike/Extend` if that file gained the `Topology/Algebra/Module/WeakDual` import. --- [](https://gitpod.io/from-referrer/) | t-analysis merge-conflict | 184/114 | Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/Normed/Module/RCLike/Extend.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/RCLike/Extend.lean | 5 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 days ago | 29 days ago | 8 minutes |
| 33364 | BoltonBailey | feat(Analysis/Convex/SimplicialComplex): add AbstractSimplicialComplex + constructions | This adds the concept of [abstract simplicial complex](https://en.wikipedia.org/wiki/Abstract_simplicial_complex) (and refactors SimplicialComplex in terms of it). It also adds constructions that makes it easy to define a simplicial complex for any index family of points which is downward closed and which is affinely independent. I also include a construction of (abstract and geometric) simplicial complexes associated with a SimpleGraph, where vertices become 0-faces and edges become 1-faces, which could be useful later in defining the topological notion of a graph embedding. Co-authored-by: Claude Opus 4.5 --- - [x] depends on: #35115 [](https://gitpod.io/from-referrer/) | t-analysis t-algebraic-topology maintainer-merge | 440/16 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialComplex/Basic.lean,Mathlib/Analysis/Convex/SimplicialComplex/AffineIndependentUnion.lean,Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/LinearAlgebra/AffineSpace/Independent.lean,Mathlib/Order/UpperLower/Relative.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 8 | 30 | ['BoltonBailey', 'denisgorod', 'eric-wieser', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'peabrainiac'] | j-loreaux | 7 days ago | 7 days ago | 18 days |
| 34558 | kim-em | feat(Topology): add StrictMono finite partition lemmas and path partitioning | This PR adds: **In `UnitInterval.lean`:** - `exists_strictMono_Icc_subset_open_cover_Icc`: finite partition with strictly monotone points indexed by `Fin (n + 1)` for general closed intervals - `exists_strictMono_Icc_subset_open_cover_unitInterval`: the unit interval version - `continuous_convexCombo`: continuity of convex combinations **In `Path.lean`:** - `Path.exists_partition_in_cover`: Lebesgue partition lemma for paths - any open cover of a path's range can be refined to a finite partition - `Path.exists_partition_with_property`: neighborhood version - if every point on a path has a neighborhood with property P, get a partition with each segment in such a neighborhood These are useful for path homotopy arguments where a finite, strict partition is needed. This is split out from https://github.com/leanprover-community/mathlib4/pull/31576 to allow independent review. 🤖 Prepared with Claude Code | t-topology awaiting-author | 174/0 | Mathlib/Topology/Path.lean,Mathlib/Topology/UnitInterval.lean | 2 | 16 | ['botbaki-review', 'github-actions', 'jcommelin', 'kim-em'] | jcommelin | 6 days ago | 6 days ago | 26 days |
| 29458 | LiamSchilling | feat(MvPolynomial/WeightedHomogenous): relate `weightedTotalDegree` to `degrees` and `degreeOf` | `weightedTotalDegree` is the most general notion of multivariate degree in mathlib. These theorems show that it specializes to `degrees` and `degreeOf` with specialized weights. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-ring-theory new-contributor | 17/0 | Mathlib/RingTheory/MvPolynomial/Homogeneous.lean | 1 | 7 | ['LiamSchilling', 'chrisflav', 'github-actions'] | chrisflav | 6 days ago | 161 days ago | 2 days |
| 35755 | Vilin97 | feat(Analysis/ODE): forward Euler method convergence | ## Summary - Define the forward Euler method (`ODE.EulerMethod.step`, `point`, `slope`, `path`, `deriv`) in `Analysis/ODE/EulerMethod.lean`. - Prove the local truncation error bound `dist_deriv_le`: `dist(deriv(t), v(t, path(t))) ≤ h*(L + K*M)`. - Prove the global error bound `dist_path_le` via Gronwall's inequality. - Prove convergence `tendsto_path`: `path(v, h, t₀, y₀, t) → sol(t)` as `h → 0⁺`. ## Motivation The forward Euler method is the simplest numerical method for ODEs and a natural complement to the existing Gronwall inequality (`Mathlib.Analysis.ODE.Gronwall`) and Picard-Lindelöf theorem (`Mathlib.Analysis.ODE.PicardLindelof`). This formalization is based on the [forward_euler](https://github.com/Vilin97/forward_euler) project. Depends on #35753. --- The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was then iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code (Claude Opus 4.6). | new-contributor WIP | 297/0 | Mathlib.lean,Mathlib/Analysis/ODE/EulerMethod.lean,Mathlib/Topology/Algebra/Order/Floor.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean | 4 | 3 | ['github-actions'] | nobody | 6 days ago | unknown | unknown |
| 34364 | YuvalFilmus | feat(Chebyshev/RootsExtrema): bound iterated derivatives of Chebyshev T on [-1, 1] | --- [](https://gitpod.io/from-referrer/) | t-analysis | 72/4 | Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean,Mathlib/RingTheory/Polynomial/Chebyshev.lean | 2 | 16 | ['YuvalFilmus', 'eric-wieser', 'github-actions', 'j-loreaux'] | eric-wieser | 6 days ago | 6 days ago | 38 days |
| 35738 | GrigorenkoPV | perf: remove some `aesop`s and `grind`s | --- Based on top of #35696. Needs benchmarking. After that I can split it into several smaller portions, if needed. [](https://gitpod.io/from-referrer/) | new-contributor awaiting-author | 236/92 | Mathlib/Data/Finset/Card.lean,Mathlib/Data/Rel.lean,Mathlib/Data/Set/Lattice/Image.lean,Mathlib/Data/Set/Prod.lean,Mathlib/Logic/Equiv/Prod.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/SupIndep.lean | 8 | 6 | ['github-actions', 'themathqueen', 'vihdzp'] | nobody | 6 days ago | 6 days ago | 11 hours |
| 35296 | Rida-Hamadani | feat(SimpleGraph): taking or droping from a cycle results in a path | --- - [x] depends on: #33249 - [ ] depends on: #35295 - [ ] depends on: #35292 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-combinatorics merge-conflict | 80/0 | Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean,Mathlib/Data/List/Infix.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 6 days ago | unknown | unknown |
| 33466 | Shreyas4991 | refactor(Combinatorics/Digraph): add vertex sets | --- [](https://gitpod.io/from-referrer/) | t-combinatorics awaiting-author please-adopt | 444/55 | Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/Digraph/Orientation.lean | 2 | 78 | ['IvanRenison', 'Shreyas4991', 'SnirBroshi', 'YaelDillies', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp', 'vlad902'] | awainverse | 6 days ago | 24 days ago | 24 days |
| 25834 | Rida-Hamadani | feat(SimpleGraph): girth-diameter inequality | This is a useful inequality that comes up in proofs related to Moore graphs, cages, SRGs, and so on. --- - [x] depends on: #26380 - [x] depends on: #25650 - [x] depends on: #26614 - [x] depends on: #33249 - [ ] depends on: #33506 - [ ] depends on: #35296 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-combinatorics | 31/6 | Mathlib/Combinatorics/SimpleGraph/Girth.lean | 1 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 days ago | unknown | unknown |
| 21342 | YaelDillies | refactor(Normed/Group/Quotient): generalise to non-abelian groups | The goal is to apply this to free groups, whose multiplication in either argument is an isometry, but isn't commutative. --- - [x] depends on: #21341 - [ ] depends on: #35037 [](https://gitpod.io/from-referrer/) | t-analysis | 99/69 | Mathlib/Analysis/Normed/Group/Quotient.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/Group/Quotient.lean,Mathlib/Topology/Bornology/BoundedOperation.lean | 6 | 11 | ['YaelDillies', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 6 days ago | 7 days ago | 11 days |
| 34871 | zhuyizheng | feat(Calculus): Taylor with integral remainder | This PR proves Taylor's theorem with the integral remainder. It provides two versions: 1. based on $f^{(n)}$ is absolutely continuous 2. based on $f \in C^{(n+1)}$ It also weakens the hypotheses `(hx : x₀ < x)` to `(hx : x₀ ≠ x)` in the following theorems: - `taylor_mean_remainder` - `taylor_mean_remainder_lagrange` - `taylor_mean_remainder_lagrange_iteratedDeriv` - `taylor_mean_remainder_cauchy` --- [](https://gitpod.io/from-referrer/) | large-import t-analysis | 215/71 | Mathlib/Analysis/Calculus/ContDiff/Deriv.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/Probability/Moments/MGFAnalytic.lean,Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean,docs/undergrad.yaml | 7 | 7 | ['Komyyy', 'b-mehta', 'github-actions', 'joneugster', 'mathlib-merge-conflicts', 'zhuyizheng'] | sgouezel | 6 days ago | 6 days ago | 22 days |
| 33662 | Pjotr5 | feat(Algebra/Order/BigOperators/Expect): add lemmas and strict variants | ### Summary - Combine `le_expect_nonempty_of_subadditive` and `le_expect_of_subadditive` into a single lemma `le_expect_of_subadditive`. The extra assumptions `(hs : s.Nonempty)` and `(h_zero : m 0 = 0)` are unnecessary (since `m 0 = 0` follows from `h_div`). This requires a small downstream update to `Mathlib/Analysis/RCLike/Basic.lean` (`norm_expect_le`). - Add strict-inequality variants: `expect_lt_expect`, `expect_lt`, `lt_expect`. - Add existence lemmas: `exists_le_of_expect_le_expect`, `exists_le_of_le_expect`, `exists_le_of_expect_le`, and `exists_lt_of_expect_lt_expect`. --- [](https://gitpod.io/from-referrer/) | new-contributor t-algebra | 46/16 | Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Analysis/RCLike/Basic.lean | 2 | 1 | ['github-actions'] | thorimur | 6 days ago | 6 days ago | 56 days |
| 30505 | mariainesdff | feat(NumberTheory/RatFunc/Ostrowski): prove Ostrowski's theorem for K(X) | We prove Ostrowski's theorem for the field of rational functions `K(X)`, where `K` is any field. Co-authored-by: @xgenereux --- - [x] depends on: #30404 [](https://gitpod.io/from-referrer/) | t-algebra t-number-theory | 338/13 | Mathlib.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/FieldTheory/RatFunc/Degree.lean,Mathlib/NumberTheory/FunctionField.lean,Mathlib/NumberTheory/RatFunc/Ostrowski.lean | 5 | 38 | ['MichaelStollBayreuth', 'alreadydone', 'github-actions', 'mariainesdff', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | MichaelStollBayreuth | 6 days ago | 6 days ago | 9 days |
| 35239 | JohnnyTeutonic | feat(Logic/Function): add Lawvere fixed-point theorem | Adds Lawvere's fixed-point theorem. This is the classical diagonal argument that generalizes \cantor_surjective\ and \cantor_injective\ (both already in Mathlib). The proof is a two-line term-mode construction. | t-logic awaiting-author merge-conflict | 12/3 | Mathlib/Logic/Function/Basic.lean | 1 | 8 | ['JohnnyTeutonic', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier', 'vihdzp'] | nobody | 6 days ago | 18 days ago | 8 hours |
| 34154 | euprunin | chore: golf using `grind` (and add four supporting `grind` annotations) | The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `Orientation.nonneg_inner_and_areaForm_eq_zero_iff_sameRay`: 311 ms before, 284 ms after 🎉 * `UV.compression_self`: 29 ms before, 19 ms after 🎉 * `IsSepClosed.exists_root_C_mul_X_pow_add_C_mul_X_add_C`: 405 ms before, 291 ms after 🎉 * `InnerProductGeometry.norm_add_eq_add_norm_iff_angle_eq_zero`: 425 ms before, 309 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 9/30 | Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Analysis/InnerProductSpace/TwoDim.lean,Mathlib/Combinatorics/SetFamily/Compression/UV.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean | 6 | 13 | ['Parcly-Taxel', 'euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'tb65536'] | kim-em | 6 days ago | 6 days ago | 34 days | |
| 35263 | astrainfinita | refactor: use `OrderSupInfSet` | --- - [ ] depends on: #35297 - [ ] depends on: #35328 - [ ] depends on: #35774 - [ ] depends on: #35674 [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F/with/573799342) [](https://gitpod.io/from-referrer/) | t-order large-import blocked-by-other-PR merge-conflict | 952/701 | Mathlib/Algebra/Group/Submonoid/Basic.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/Algebra/Order/Nonneg/Lattice.lean,Mathlib/Algebra/Tropical/Lattice.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/CategoryTheory/Category/Pairwise.lean,Mathlib/CategoryTheory/Limits/Lattice.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/CategoryTheory/Subfunctor/Basic.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Int/ConditionallyCompleteOrder.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Data/Set/BooleanAlgebra.lean,Mathlib/Geometry/Convex/Cone/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/Bounds/Defs.lean,Mathlib/Order/Bounds/Image.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/CompleteBooleanAlgebra.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/CompleteLattice/Lemmas.lean,Mathlib/Order/CompleteLattice/PiLex.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/Concept.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/Copy.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Hom/Order.lean,Mathlib/Order/Interval/Basic.lean,Mathlib/Order/LiminfLimsup.lean,Mathlib/Order/Nucleus.lean,Mathlib/Order/ScottContinuity/Prod.lean,Mathlib/Order/SupClosed.lean,Mathlib/Probability/Process/Filtration.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/Topology/Algebra/Group/GroupTopology.lean,Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean,Mathlib/Topology/Algebra/Ring/Basic.lean,Mathlib/Topology/Order/HullKernel.lean,Mathlib/Topology/UniformSpace/Basic.lean | 58 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 6 days ago | unknown | unknown |
| 32282 | 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 blocked-by-other-PR | 367/0 | Mathlib.lean,Mathlib/Geometry/Euclidean/Angle/Incenter.lean | 2 | 6 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 days ago | unknown | unknown |
| 32295 | jsm28 | feat(Archive/Imo/Imo2024Q4): IMO 2024 Q4 | Add a formalization of IMO 2024 problem 4, so completing the formalizations of all six IMO 2024 problems. --- - [ ] depends on: #30981 - [ ] depends on: #30982 - [ ] depends on: #31057 - [ ] depends on: #31205 - [ ] depends on: #31452 - [ ] depends on: #31495 - [ ] depends on: #31733 - [ ] depends on: #31891 - [ ] depends on: #31892 - [ ] depends on: #31893 - [ ] depends on: #31979 - [ ] depends on: #31981 - [ ] depends on: #32004 - [ ] depends on: #32019 - [ ] depends on: #32021 - [ ] depends on: #32023 - [ ] depends on: #32259 - [ ] depends on: #32260 - [ ] depends on: #32270 - [ ] depends on: #32273 - [ ] depends on: #32278 - [ ] depends on: #32282 - [ ] depends on: #32290 - [ ] depends on: #32294 - [ ] depends on: #32296 [](https://gitpod.io/from-referrer/) | IMO blocked-by-other-PR | 1728/9 | Archive.lean,Archive/Imo/Imo2024Q4.lean,Mathlib.lean,Mathlib/Geometry/Euclidean/Angle/Incenter.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean | 8 | 6 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 days ago | unknown | unknown |
| 35287 | arnoudvanderleer | feat(AlgebraicTopology/SimplicialSet): define isomorphisms in simplicial sets, and the coherent isomorphism simplicial set | show that any edge in a simplicial set, that is the image of the forward edge of the coherent isomorphism under a simplicial set morphism, is an isomorphism. --- [](https://gitpod.io/from-referrer/) | t-algebraic-topology new-contributor infinity-cosmos awaiting-author | 339/3 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CoherentIso.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean | 4 | 61 | ['arnoudvanderleer', 'github-actions', 'joelriou', 'robin-carlier'] | nobody | 6 days ago | 7 days ago | 2 days |
| 33543 | JovanGerb | feat: use `to_dual` for `HeytingAlgebra` | This PR adds `to_dual` for `HeytingAlgebra`, `BiheytingAlgebra`, `GeneralizedHeytingAlgebra`. I am a bit worried about the fact that the complement operation is self-dual in a `BooleanAlgebra`, because that means that, depending on the context, `compl` needs to be translated to `hnot` or `compl`. So if we want to dualize lemmas about `BooleanAlgebra` and `compl`, we will not be able to. But I hope that the number of such lemmas is small and that they aren't often used in places that can get a `to_dual` tag (e.g. when specialized to sets, they don't need a `to_dual` tag). Aligning the `Heyting` and `Coheyting` API is kind of awkward, because they are unfortunately quite different. One reason is that the arguments of `sup`/`inf` are often swapped in the dual version, which is not compatible with `to_dual`. I've worked around this with extensive use of `to_dual none`. There are quite some lemmas that in my eyes seem unnecessary, such as `le_sup_sdiff_sup_sdiff`, but I haven't removed any in this PR. --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 195/371 | Mathlib/Combinatorics/SetFamily/Kleitman.lean,Mathlib/Order/Basic.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Notation.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Tactic/Translate/ToDual.lean | 8 | 13 | ['JovanGerb', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp'] | bryangingechen and mattrobball | 6 days ago | 10 days ago | 17 days |
| 35740 | LLaurance | chore(SimpleGraph/Basic): clean up and shorten | Clean up and shorten some proofs --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 43/50 | Mathlib/Combinatorics/SimpleGraph/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 6 days ago | 6 days ago | 6 days |
| 35783 | IvanRenison | refactor(Combinatorics): move `Dart` from `SimpleGraph` to `HasAdj` | --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445 - [ ] depends on: #35776 [](https://gitpod.io/from-referrer/) | WIP t-combinatorics blocked-by-other-PR | 226/93 | Mathlib.lean,Mathlib/Combinatorics/Digraph/HasAdj.lean,Mathlib/Combinatorics/HasAdj/Basic.lean,Mathlib/Combinatorics/HasAdj/Dart.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Dart.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/HasAdj.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Traversal.lean | 14 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 6 days ago | unknown | unknown |
| 34760 | astrainfinita | chore: use `RelHomClass` in `IsChain.image` | --- [](https://gitpod.io/from-referrer/) | t-order | 24/24 | Counterexamples/AharoniKorman.lean,Mathlib/Order/Height.lean,Mathlib/Order/Preorder/Chain.lean | 3 | 5 | ['Vierkantor', 'astrainfinita', 'github-actions'] | Vierkantor | 6 days ago | 6 days ago | 16 days |
| 35402 | samueloettl | feat(Dynamics/BirkhoffSum): birkhoffAverage const | --- I think this might be useful. My feeling tells me that one of these should be a simp lemma. I'm not really sure if I got the naming of the theorems correct. When generalizing to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252 [](https://gitpod.io/from-referrer/) | t-dynamics new-contributor | 22/0 | Mathlib/Dynamics/BirkhoffSum/Average.lean | 1 | 2 | ['github-actions'] | urkud | 6 days ago | 9 days ago | 15 days |
| 31595 | astrainfinita | chore: redefine `Ideal.IsPrime` | Redefine `Ideal.IsPrime` to make it correct for non-commutative cases --- [](https://gitpod.io/from-referrer/) | t-algebra | 333/100 | Mathlib/Algebra/Order/Ring/Ordering/Defs.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Noetherian.lean,Mathlib/RingTheory/Ideal/Oka.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Ideal/Prime.lean,Mathlib/RingTheory/Ideal/Prod.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/IsPrimary.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/Localization/Ideal.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean,Mathlib/RingTheory/Valuation/Basic.lean | 22 | 32 | ['alreadydone', 'artie2000', 'astrainfinita', 'erdOne', 'github-actions', 'leanprover-bot', 'leanprover-radar', 'mathlib4-merge-conflict-bot'] | alreadydone | 6 days ago | 6 days ago | 34 days |
| 33329 | mcdoll | feat(Analysis): Fourier-based Sobolev spaces | We define Sobolev spaces (or Bessel potential spaces). --- - [x] depends on: #33242 - [x] depends on: #32769 - [x] depends on: #33404 - [x] depends on: #33597 - [x] depends on: #33636 - [x] depends on: #33741 - [x] depends on: #33751 - [x] depends on: #33752 - [x] depends on: #33776 - [x] depends on: #33859 - [x] depends on: #34027 - [ ] depends on: #34099 - [x] depends on: #34100 - [x] depends on: #34294 [](https://gitpod.io/from-referrer/) | WIP t-analysis blocked-by-other-PR | 694/0 | Mathlib/Analysis/Distribution/FourierMultiplier.lean,Mathlib/Analysis/Distribution/Sobolev.lean,Mathlib/Analysis/Distribution/TemperedDistribution.lean | 3 | 7 | ['CoolRmal', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 days ago | unknown | unknown |
| 33443 | sahanwijetunga | feat: Define Isometries of Bilinear Spaces | --- We define Isometries of Bilinear Spaces, closely following the implementation of isometries of quadratic spaces. [](https://gitpod.io/from-referrer/) | t-algebra new-contributor awaiting-author | 279/0 | Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/Isometry.lean,Mathlib/LinearAlgebra/BilinearForm/IsometryEquiv.lean | 3 | 16 | ['github-actions', 'robin-carlier', 'sahanwijetunga'] | mattrobball | 5 days ago | 18 days ago | 42 days |
| 35530 | xroblot | feat(RingTheory): add the class `HasFiniteQuotients` | As discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Rings.20with.20finite.20quotients/with/574554760), this PR add the class of commutative rings `R` such that, for all nonzero ideals `I` of `R`, the quotient `R ⧸ I` is finite and prove several results including: - If `R` has finite quotients then it has dimension ≤ 1 - If `R` has finite quotients then it is a Noetherian ring - Assume that `R` a finite quotients and that `S` is a domain and a finite `R`-module. Then `S` has finite quotients - A domain that is also a finite `ℤ`-module has finite quotients. Also add two instances: - Assume that `S` is a finite `R`-module and that `S ⧸ J` is a `(R ⧸ I)`-module with `I`, resp. `J`, an ideal of `R`, resp. `S`, then `S ⧸ J` is a finite `(R ⧸ I)`-module. - For nonzero `n` , `ℤ ⧸ Ideal.span {n}` is finite. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 121/0 | Mathlib.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean | 5 | 4 | ['github-actions', 'leanprover-radar', 'tb65536', 'xroblot'] | chrisflav | 5 days ago | unknown | unknown |
| 35686 | harahu | chore: run docstrings through mdformat | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 10872/6465 | Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/RestrictScalars.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/Algebra/Spectrum/Quasispectrum.lean,Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Azumaya/Basic.lean,Mathlib/Algebra/Azumaya/Defs.lean,Mathlib/Algebra/Azumaya/Matrix.lean,Mathlib/Algebra/BigOperators/Expect.lean,Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/BigOperators/Group/Finset/Gaps.lean,Mathlib/Algebra/BigOperators/Group/Finset/Indicator.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean,Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Algebra/BrauerGroup/Defs.lean,Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean,Mathlib/Algebra/Category/FGModuleCat/Limits.lean,Mathlib/Algebra/Category/Grp/AB.lean,Mathlib/Algebra/Category/Grp/Basic.lean,Mathlib/Algebra/Category/Grp/EpiMono.lean,Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean,Mathlib/Algebra/Category/Grp/Limits.lean,Mathlib/Algebra/Category/Grp/Ulift.lean,Mathlib/Algebra/Category/ModuleCat/AB.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Free.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/Category/ModuleCat/Projective.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Stalk.lean,Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean,Mathlib/Algebra/Category/MonCat/Basic.lean,Mathlib/Algebra/Category/MonCat/Colimits.lean,Mathlib/Algebra/Category/Ring/Adjunctions.lean,Mathlib/Algebra/Category/Ring/Basic.lean,Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/Algebra/Category/Ring/Epi.lean,Mathlib/Algebra/Category/Ring/Topology.lean,Mathlib/Algebra/Category/Semigrp/Basic.lean,Mathlib/Algebra/Central/Basic.lean,Mathlib/Algebra/Central/Defs.lean,Mathlib/Algebra/Central/TensorProduct.lean,Mathlib/Algebra/CharP/Algebra.lean,Mathlib/Algebra/CharP/Basic.lean,Mathlib/Algebra/CharP/CharAndCard.lean,Mathlib/Algebra/CharP/Defs.lean,Mathlib/Algebra/CharP/LinearMaps.lean,Mathlib/Algebra/CharP/MixedCharZero.lean,Mathlib/Algebra/CharP/Subring.lean,Mathlib/Algebra/CharZero/Defs.lean,Mathlib/Algebra/ContinuedFractions/Basic.lean,Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean,Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean,Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/DirectSum/Finsupp.lean,Mathlib/Algebra/DirectSum/Idempotents.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/Divisibility/Basic.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/EuclideanDomain/Field.lean,Mathlib/Algebra/EuclideanDomain/Int.lean,Mathlib/Algebra/Exact.lean,Mathlib/Algebra/Field/Periodic.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/Field/Subfield/Defs.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/FreeNonUnitalNonAssocAlgebra.lean,Mathlib/Algebra/GCDMonoid/Nat.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/End.lean,Mathlib/Algebra/Group/Action/Pretransitive.lean,Mathlib/Algebra/Group/Action/Prod.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/Group/Center.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Equiv/Basic.lean,Mathlib/Algebra/Group/Equiv/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Finsupp.lean,Mathlib/Algebra/Group/ForwardDiff.lean,Mathlib/Algebra/Group/Hom/CompTypeclasses.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Hom/Instances.lean | 2727 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 5 days ago | unknown | unknown |
| 20238 | 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. [](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'] | nobody | 5 days ago | unknown | unknown |
| 22361 | rudynicolop | feat(Computability/NFA): nfa closure properties | Add the closure properties union, intersection and reversal for NFA. --- [](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'] | nobody | 5 days ago | unknown | unknown |
| 26735 | Raph-DG | feat(AlgebraicGeometry): The codimension of a point of a scheme is equal to the krull dimension of the stalk | In this PR we show that the codimension of a point in a scheme is equal to the krull dimension of the local ring at that point, as in stacks 02IZ. --- The proof of the main result `stalk_dim_eq_coheight` is currently a bit long for my (and I suspect the broader community's) tastes. That said, I'm not quite sure the best way to break it into pieces, any comments would be very much appreciated! - [x] depends on: #26204 [For the notion of codimension, here we are using the coheight in the specialization order. ] - [x] depends on: #26225 [](https://gitpod.io/from-referrer/) | t-algebraic-geometry | 171/0 | Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Sets/Closeds.lean | 4 | 54 | ['Raph-DG', 'chrisflav', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] | erdOne | 5 days ago | 5 days ago | 42 days |
| 33780 | ooovi | feat(Geometry/Convex/Cone): lineality space of pointed cones | Define the lineality space `PointedCone.lineal` as the submodule `C ⊓ -C`. Prove that it is the largest submodule of the cone, which is sometimes used as an alternative definition. Co-authored-by: Martin Winter --- dependency of #33664 - [x] depends on #33761 [](https://gitpod.io/from-referrer/) | t-convex-geometry | 42/1 | Mathlib/Geometry/Convex/Cone/Pointed.lean | 1 | 19 | ['artie2000', 'eric-wieser', 'github-actions', 'martinwintermath', 'mathlib4-merge-conflict-bot', 'ooovi', 'vihdzp'] | nobody | 5 days ago | 5 days ago | 17 days |
| 33479 | zcyemi | feat(Geometry/Euclidean/Sphere/Power): Add theorem about cospherical points on two intersecting lines | --- Add `cospherical_of_mul_dist_eq_mul_dist_of_angle_eq_pi`. ~~This theorem is the converse of `EuclideanGeometry.mul_dist_eq_mul_dist_of_cospherical_of_angle_eq_pi`. However, the ambient type is required to be two-dimensional, i.e. `Fact (finrank ℝ V = 2)`. I don‘t think (not entirely sure) that lifting the ambient space from dimension 2 to arbitrary dimension is reasonable for this theorem, since the proof is entirely carried out in a two-dimensional plane. Therefore, I place this theorem in `Euclidean/Angle/Sphere` rather than `Euclidean/Sphere/Power`.~~ Deps: - [ ] depends on: #33365 | large-import t-euclidean-geometry delegated | 109/4 | Mathlib/Geometry/Euclidean/Sphere/Basic.lean,Mathlib/Geometry/Euclidean/Sphere/Power.lean | 2 | 18 | ['github-actions', 'jsm28', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'ocfnash', 'zcyemi'] | JovanGerb | 5 days ago | 5 days ago | 8 days |
| 32825 | erdOne | perf(RingTheory): `attribute [irreducible] KaehlerDifferential` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-ring-theory | 5/1 | Mathlib/Algebra/Category/ModuleCat/Differentials/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean,Mathlib/RingTheory/Kaehler/Basic.lean | 3 | 7 | ['erdOne', 'github-actions', 'jcommelin', 'leanprover-radar', 'robin-carlier'] | nobody | 5 days ago | 46 days ago | 1 day |
| 26304 | Raph-DG | feat(AlgebraicGeometry): Definition of algebraic cycles | In this PR we define algebraic cycles on a scheme X to be functions from the points of X to the integers with locally finite support. We introduce some API for this including grading by height in the specialization order, and a definition of the pushforward. - [ ] depends on: #26225 - [ ] depends on: #26259 - [ ] depends on: #35807 --- Note there are a couple of things I'm not quite sure about which I've mentioned in the comments, like how I'm not sure how to make the proof of map_locally finite more manageable and so on. Any comment on these (or anything else!) would be greatly appreciated. [](https://gitpod.io/from-referrer/) | t-algebraic-geometry RFC blocked-by-other-PR | 399/22 | Mathlib.lean,Mathlib/AlgebraicGeometry/AlgebraicCycle.lean,Mathlib/Topology/LocallyFinsupp.lean | 3 | 22 | ['Raph-DG', 'chrisflav', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues'] | joelriou | 5 days ago | 7 days ago | 4 days |
| 35365 | wwylele | feat(LinearAlgebra/Simplex): closedInterior = interior + face.closedInterior | Intermediate lemma towards #34826. This will be used to show the measure on `interior` and `closedInterior` are equal, as the difference is a zero-measure set. --- [](https://gitpod.io/from-referrer/) | t-algebra | 53/0 | Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean | 1 | 4 | ['copilot-pull-request-reviewer', 'github-actions'] | kim-em | 5 days ago | 5 days ago | 16 days |
| 30872 | 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 [](https://gitpod.io/from-referrer/) | t-computability new-contributor awaiting-author | 104/7 | Mathlib/Computability/NFA.lean | 1 | 67 | ['YaelDillies', 'ctchou', 'eric-wieser', 'github-actions', 'lambda-fairy', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'rudynicolop'] | YaelDillies | 5 days ago | 33 days ago | 59 days |
| 35534 | xgenereux | feat(Torsion/Basic): Add a few convenient lemmas for torsion submodules | This PR adds a few convenient lemmas in Torsion/Basic. In particular, it adds: - A version of `torsionBySet_span_singleton_eq` for Ideals. These two are added to the simp set. - Show two instances of `isTorsionBy`/`isTorsionBySet` being `IsTorsion` in the form of `torsionBy_isTorsion_nonZeroDivisor` and `torsionBySet_ideal_isTorsion_of_noZeroDivisors`. - Add a version of `iSup_torsionBySet_ideal_eq_torsionBySet_iInf` and `supIndep_torsionBySet_ideal` for `sup` instead of `iSup`. Note: To go from `iSup` to `sup` I need to talk about `Fin 2` which requires `Finset.univ_fin2` that is in Mathlib but in a weird place. I just put it as a have in my proof. Note2: one could also use `{P,Q}` and `id` instead of the map from `Fin 2` but that makes the proof of `disjoint_torsionBySet_ideal` inconvenient. 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 | 30/0 | Mathlib/Algebra/Module/Torsion/Basic.lean | 1 | 5 | ['github-actions', 'joelriou', 'xgenereux'] | joelriou | 5 days ago | 5 days ago | 12 days |
| 29354 | themathqueen | refactor(Algebra/Algebra/Equiv): allow for non-unital `AlgEquiv` | This refactors `AlgEquiv` to allow for non-unital algebras. More specifically, we weaken the type class assumptions from:
```lean
structure AlgEquiv (R A B : Type*) [CommSemiring R] [Semiring A] [Semiring B]
[Algebra R A] [Algebra R B]
```
to
```lean
structure AlgEquiv (R A B : Type*) [Add A] [Add B] [Mul A] [Mul B] [SMul R A] [SMul R B]
```
Instead of a `commutes'` field, we now have a `map_smul'` field. We also include a definition `AlgEquiv.ofCommutes` which takes in a `RingEquiv` and a `commutes'` field to match before and for convenience.
`StarAlgEquiv` now extends `AlgEquiv`. We also generalize a few files to allow for non-unital.
I suspect there are a few more things to generalize, but will leave this for later.
Co-authored-by: Jireh Loreaux |
t-algebra awaiting-author | 703/595 | Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Opposite.lean,Mathlib/Algebra/Algebra/Pi.lean,Mathlib/Algebra/Algebra/Prod.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/MulOpposite.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Algebra/TransferInstance.lean,Mathlib/Algebra/Category/AlgCat/Basic.lean,Mathlib/Algebra/Category/CommAlgCat/Basic.lean,Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean,Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/Algebra/DualQuaternion.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Rename.lean,Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Taylor.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/Algebra/SkewMonoidAlgebra/Lift.lean,Mathlib/Algebra/Star/Free.lean,Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Algebra/Star/UnitaryStarAlgAut.lean,Mathlib/AlgebraicGeometry/Normalization.lean,Mathlib/AlgebraicGeometry/Stalk.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/Normed/Lp/LpEquiv.lean,Mathlib/Analysis/Normed/Lp/Matrix.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Data/Matrix/Basic.lean,Mathlib/Data/Matrix/Composition.lean,Mathlib/Data/Matrix/DualNumber.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/Notation.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean,Mathlib/FieldTheory/IntermediateField/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/FieldTheory/Normal/Basic.lean,Mathlib/FieldTheory/PrimitiveElement.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/FieldTheory/Separable.lean,Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean,Mathlib/LinearAlgebra/Complex/Module.lean,Mathlib/LinearAlgebra/FreeAlgebra.lean,Mathlib/LinearAlgebra/Matrix/Basis.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean,Mathlib/LinearAlgebra/Matrix/Reindex.lean,Mathlib/LinearAlgebra/Matrix/ToLin.lean,Mathlib/LinearAlgebra/Matrix/Transvection.lean,Mathlib/LinearAlgebra/Matrix/Unique.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean,Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean,Mathlib/LinearAlgebra/Trace.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean,Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean,Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean,Mathlib/NumberTheory/Padics/HeightOneSpectrum.lean,Mathlib/RepresentationTheory/Intertwining.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Algebraic/MvPolynomial.lean,Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/Congruence/Hom.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/Etale/Field.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Etale/StandardEtale.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Finiteness/Descent.lean,Mathlib/RingTheory/Flat/Equalizer.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/RingTheory/Frobenius.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Invariant/Profinite.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/Jacobson/Ring.lean,Mathlib/RingTheory/Kaehler/Basic.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean | 130 | 68 | ['fpvandoorn', 'github-actions', 'jcommelin', 'leanprover-bot', 'leanprover-radar', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'themathqueen'] | joelriou | 5 days ago | 97 days ago | 65 days |
| 33449 | yuanyi-350 | feat(ProbabilityTheory): Add Poisson limit theorem | --- [](https://gitpod.io/from-referrer/) | t-measure-probability file-removed maintainer-merge | 127/3 | Mathlib.lean,Mathlib/Probability/Distributions/Poisson/Basic.lean,Mathlib/Probability/Distributions/Poisson/PoissonLimitThm.lean,Mathlib/Probability/ProbabilityMassFunction/Binomial.lean,docs/1000.yaml | 5 | 24 | ['EtienneC30', 'github-actions', 'vihdzp'] | EtienneC30 | 5 days ago | 5 days ago | 39 days |
| 35821 | SnirBroshi | feat(Order/ConditionallyCompleteLattice): `sInf s ≤ sSup t` for `(s ∩ t).Nonempty` | --- [](https://gitpod.io/from-referrer/) | t-order | 27/1 | Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean | 3 | 1 | ['github-actions'] | nobody | 5 days ago | 5 days ago | 5 days |
| 34911 | smmercuri | feat: idelic product formula | --- - [x] depends on: #34915 - [x] depends on: #34918 - [ ] depends on: #35820 [](https://gitpod.io/from-referrer/) | WIP merge-conflict blocked-by-other-PR | 292/1 | Mathlib/Algebra/Group/Submonoid/Units.lean,Mathlib/NumberTheory/NumberField/AdeleRing.lean,Mathlib/NumberTheory/NumberField/InfiniteAdeleRing.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean | 5 | 5 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 5 days ago | unknown | unknown |
| 35081 | tb65536 | feat(Topology/Algebra/Group/Extension): define short exact sequence of topological groups | This PR defines a short exact sequence of topological groups to be a closed embedding followed by an open quotient map (extracted from #32672). --- [](https://gitpod.io/from-referrer/) | t-topology maintainer-merge | 57/0 | Mathlib.lean,Mathlib/Topology/Algebra/Group/Extension.lean | 2 | 3 | ['dagurtomas', 'github-actions'] | dagurtomas | 5 days ago | 21 days ago | 21 days |
| 35163 | CoolRmal | feat(Topology): comparison of two Hausdorff topologies | The main theorem proved in this PR is `CompactSpace.eq_of_le_compact_t2`, which says that if we have two Hausdorff topologies `s, t` on `X`, and if `t` is finer than `s` and `X` is compact under `t`, then `s = t`. I also proved some variant of this lemma. The motivations I have in mind are some applications to the theory of topological vector spaces, where we often have to compare two Hausdorff topologies. --- [](https://gitpod.io/from-referrer/) | t-topology awaiting-author | 24/0 | Mathlib/Topology/Homeomorph/Lemmas.lean | 1 | 7 | ['CoolRmal', 'dagurtomas', 'github-actions', 'j-loreaux', 'plp127'] | dagurtomas | 5 days ago | 5 days ago | 14 days |
| 35100 | stepan2698-cpu | feat: definition of a character of a representation | This PR begins to transfer definitions and theorems about characters from `FDRep` to `Representation`. Once #34888 is merged, the theorems involving isomorphisms of representations will be appropriately restated. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 170/6 | Mathlib/RepresentationTheory/Character.lean,Mathlib/RepresentationTheory/Intertwining.lean,Mathlib/RepresentationTheory/Invariants.lean,Mathlib/RepresentationTheory/Irreducible.lean | 4 | 8 | ['github-actions', 'ocfnash', 'stepan2698-cpu'] | ocfnash | 5 days ago | 5 days ago | 21 days |
| 35436 | daniel-carranza | feat(CategoryTheory/Monoidal/Closed): Prove the isomorphism of internal hom objects C(x \otimes y, z) and C(y, C(x, z)) | Prove the currying-uncurrying isomorphism `C(x \otimes y, z) \iso C(y, C(x, z))` between internal hom objects of a closed monoidal category `C`. --- This result is connected to the infinity-cosmos project, and is used to prove that a closed monoidal category enriched in itself admits all cotensors. ~Line 81 currently contains a one-line proof in tactics mode `exact rfl`. When trying to use `rfl` outside of tactics mode, an error is thrown~ (Fixed, thank you @robin-carlier!). Any help with this (or any other aspect of the formalization) is greatly appreciated! [](https://gitpod.io/from-referrer/) | new-contributor t-category-theory infinity-cosmos delegated | 89/0 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Closed/InternalCurrying.lean | 2 | 13 | ['dagurtomas', 'daniel-carranza', 'github-actions', 'joelriou', 'mathlib-bors', 'riccardobrasca', 'robin-carlier'] | adamtopaz | 5 days ago | 5 days ago | 7 days |
| 30122 | xroblot | Development branch (1) | --- | WIP large-import merge-conflict | 4807/21 | Mathlib.GaloisTower.lean,Mathlib.lean,Mathlib/AddCharTrace.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Group/Submonoid/BigOperators.lean,Mathlib/Algebra/Group/Submonoid/Units.lean,Mathlib/Cyclotomic.lean,Mathlib/Data/Nat/Digits/Lemmas.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/Duality.lean,Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/PrimeField.lean,Mathlib/GalCyclotomic.lean,Mathlib/GaussSum.lean,Mathlib/GroupTheory/FiniteAbelian/Duality.lean,Mathlib/KroneckerWeber_Blueprint.lean,Mathlib/Logic/Equiv/Set.lean,Mathlib/MWE.lean,Mathlib/Misc.lean,Mathlib/NumberTheory/MulChar/Basic.lean,Mathlib/NumberTheory/MulChar/Duality.lean,Mathlib/NumberTheory/MulChar/Lemmas.lean,Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean,Mathlib/NumberTheory/NumberField/Ideal/Basic.lean,Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Int.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/Sandbox.lean,Mathlib/StickElt.lean,Mathlib/Teichmuller.lean | 38 | 12 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 5 days ago | unknown | unknown |
| 35746 | ThomasMoulin-hub | feat (Algebra/Endomorphisms): add kernels lemma from the missing undergraduate mathematics in mathlib | Add helper theorem inside Mathlib.Algebra.Polynomial.Smeval.lean and created a new file Mathlib/RingTheory/Polynomial/KernelDecomposition.lean that implements the kernels lemma from the missing undergraduate mathematics in mathlib list. This file also contains intermediate results needed for the main lemma. | new-contributor | 75/0 | Mathlib/Algebra/Polynomial/Smeval.lean,Mathlib/RingTheory/Polynomial/Basic.lean | 2 | 2 | ['github-actions'] | nobody | 5 days ago | unknown | unknown |
| 35825 | mattrobball | chore: unbundle `ENormed*` from algebra | This is a test PR. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 3609/2536 | .claude/worktrees/snazzy-waddling-crescent,Archive/Hairer.lean,Archive/Imo/Imo2001Q5.lean,Archive/Imo/Imo2019Q2.lean,Archive/Wiedijk100Theorems/HeronsFormula.lean,CLAUDE.md,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/Module/ZLattice/Summable.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/CPolynomial.lean,Mathlib/Analysis/Analytic/CPolynomialDef.lean,Mathlib/Analysis/Analytic/ChangeOrigin.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Analytic/ConvergenceRadius.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/Analytic/Linear.lean,Mathlib/Analysis/Analytic/Order.lean,Mathlib/Analysis/Analytic/Polynomial.lean,Mathlib/Analysis/Analytic/RadiusLiminf.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Analytic/WithLp.lean,Mathlib/Analysis/Analytic/Within.lean,Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean,Mathlib/Analysis/Asymptotics/Completion.lean,Mathlib/Analysis/Asymptotics/Defs.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/Asymptotics/Theta.lean,Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/BoxIntegral/Integrability.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Measure.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/ContinuousLinearMap.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean,Mathlib/Analysis/CStarAlgebra/Module/Defs.lean,Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean,Mathlib/Analysis/Calculus/AddTorsor/Coord.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean,Mathlib/Analysis/Calculus/BumpFunction/Normed.lean,Mathlib/Analysis/Calculus/BumpFunction/SmoothApprox.lean,Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean,Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean,Mathlib/Analysis/Calculus/ContDiff/Comp.lean,Mathlib/Analysis/Calculus/ContDiff/Convolution.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/Deriv.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/ContDiff/RCLike.lean,Mathlib/Analysis/Calculus/ContDiff/RestrictScalars.lean,Mathlib/Analysis/Calculus/ContDiff/WithLp.lean,Mathlib/Analysis/Calculus/ContDiffHolder/Pointwise.lean,Mathlib/Analysis/Calculus/DSlope.lean,Mathlib/Analysis/Calculus/Deriv/Abs.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/AffineMap.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Comp.lean,Mathlib/Analysis/Calculus/Deriv/CompMul.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/Deriv/Inverse.lean,Mathlib/Analysis/Calculus/Deriv/Linear.lean,Mathlib/Analysis/Calculus/Deriv/MeanValue.lean,Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/Calculus/Deriv/Prod.lean,Mathlib/Analysis/Calculus/Deriv/Shift.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/Analysis/Calculus/Deriv/Star.lean,Mathlib/Analysis/Calculus/Deriv/Support.lean,Mathlib/Analysis/Calculus/Deriv/ZPow.lean,Mathlib/Analysis/Calculus/DiffContOnCl.lean,Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean,Mathlib/Analysis/Calculus/DifferentialForm/VectorField.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Affine.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean,Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/FDeriv/CompCLM.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousAlternatingMap.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousMultilinearMap.lean | 687 | 5 | ['leanprover-radar', 'mathlib-bors', 'mattrobball'] | nobody | 5 days ago | unknown | unknown |
| 35041 | b-mehta | feat(Combinatorics): prove the Rado selection lemma | This PR should supercede #29030 --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 132/0 | Mathlib.lean,Mathlib/Combinatorics/Compactness.lean | 2 | 3 | ['b-mehta', 'github-actions'] | kmill | 5 days ago | 22 days ago | 22 days |
| 35652 | dennj | feat(LinearAlgebra/Matrix): add `Matrix.mul_eq_smul_one_symm` | ## Summary - Add `Matrix.mul_eq_smul_one_symm`: if `M * N = c • 1` and `det M ≠ 0`, then `N * M = c • 1` - A scalar generalisation of `mul_eq_one_symm` (the `c = 1` case) to arbitrary scalars, requiring `IsDomain` and `det M ≠ 0` - The proof uses the adjugate identity `adjugate M * M = det M • 1` to derive `det M • (N * M) = det M • (c • 1)`, then cancels `det M` via `mul_left_cancel₀` Theorem imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory | t-algebra new-contributor | 28/0 | Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean | 1 | 2 | ['eric-wieser', 'github-actions'] | joelriou | 5 days ago | 9 days ago | 9 days |
| 35654 | euprunin | chore: golf using `grind` | The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `CochainComplex.HomComplex.mem_coboundaries_iff`: unchanged 🎉 * `integral_cos_mul_complex`: unchanged 🎉 * `List.next_getLast_cons`: unchanged 🎉 * `foldl_argAux_mem`: unchanged 🎉 * `Equiv.Perm.support_swap`: unchanged 🎉 * `Fermat42.mul`: unchanged 🎉 * `Filter.high_scores`: 155 ms before, 108 ms after 🎉 * `IocProdIoc_preimage`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 11/65 | Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/MinMax.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/NumberTheory/FLT/Four.lean,Mathlib/Order/Filter/AtTopBot/Finite.lean,Mathlib/Probability/Kernel/IonescuTulcea/Maps.lean | 8 | 3 | ['euprunin', 'github-actions', 'vihdzp'] | kex-y | 5 days ago | 9 days ago | 9 days | |
| 35662 | FrankieeW | feat(NumberTheory/Zsqrtd): add Archimedean instance via le_arch | This PR follows a suggestion made in #35606 , #35481 - add `Zsqrtd.le_arch_smul` in `Mathlib/NumberTheory/Zsqrtd/Basic.lean` - use it to provide `instance : Archimedean (ℤ√d)` in the `Nonsquare` section - refactor the proof using symmetry to reduce duplication while keeping checks clean --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor | 43/2 | Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean | 2 | 6 | ['FrankieeW', 'github-actions', 'tb65536'] | MichaelStollBayreuth | 5 days ago | 8 days ago | 9 days |
| 35683 | gasparattila | fix(Tactic/FunProp): detect `Continuous.subtype_mk` as compositional | This PR changes `fun_prop` to detect some theorems involving dependent types, such as `Continous.subtype_mk` to be in compositional form. This lets `fun_prop` solve goals such as `Continuous fun x => (⟨x, trivial⟩ : {x : ℝ // True})`. --- These theorems become compositional: `Continuous.subtype_mk`, `Topology.IsEmbedding.inclusion`, `Topology.IsOpenEmbedding.inclusion`, `Topology.IsClosedEmbedding.inclusion`, `Measurable.subtype_mk`, `Measurable.imp`, `Path.symm_continuous_family`, `Continuous.upperHalfPlaneMk` These theorems become simple: `hasFDerivAt_prodMk_left`, `hasFDerivAt_prodMk_right`, `contDiff_prodMk_left`, `contDiff_prodMk_right` [](https://gitpod.io/from-referrer/) | t-meta | 53/31 | Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,MathlibTest/fun_prop_dev.lean | 4 | 1 | ['github-actions'] | JovanGerb | 5 days ago | 8 days ago | 8 days |
| 34932 | erdOne | feat(AlgebraicGeometry): formally etale morphisms | --- [](https://gitpod.io/from-referrer/) | t-algebraic-geometry merge-conflict delegated | 163/12 | Mathlib.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Morphisms/FormallyEtale.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/RingTheory/RingHom/Etale.lean | 5 | 17 | ['chrisflav', 'erdOne', 'github-actions', 'joneugster', 'mathlib-bors', 'mathlib-merge-conflicts', 'ocfnash'] | nobody | 5 days ago | 7 days ago | 11 days |
| 35573 | antisubnoous | feat(NumberTheory/Chebyshev): express the Chebyshev theta function in terms of the prime counting function | This is a sibling theorem to Chebyshev.primeCounting_eq_theta_div_log_add_integral. --- This is my first mathlib4 commit. I am working through some exercises and results in Apostol's ANT book as a means to practice Lean, and this result seemed like an opportunity to practice the mechanics of contributing to Mathlib because the new theorem mirrors closely the sibling theorem above (both appear in Apostol Theorem 4.3). [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor | 36/1 | Mathlib/NumberTheory/Chebyshev.lean | 1 | 2 | ['github-actions'] | MichaelStollBayreuth | 5 days ago | 5 days ago | 11 days |
| 34713 | 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. | t-algebra new-contributor awaiting-author | 231/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/Probability/Markov/Stationary.lean | 3 | 11 | ['dennj', 'dupuisf', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'riccardobrasca'] | nobody | 5 days ago | 5 days ago | 10 days |
| 35424 | morrison-daniel | feat(LinearAlgebra/ExteriorAlgebra): `Basis` for `ExteriorAlgebra` | WIP --- [](https://gitpod.io/from-referrer/) | 120/0 | Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean,Mathlib/LinearAlgebra/ExteriorAlgebra/Basis.lean | 2 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 5 days ago | unknown | unknown | |
| 29558 | Thmoas-Guan | feat(Algebra): definition of global dimension | In this PR, we define projective dimension and global dimension using `CategoryTheory.HasProjectiveDimensionLT` --- - [ ] depends on: #32058 [](https://gitpod.io/from-referrer/) | t-ring-theory blocked-by-other-PR | 272/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean,Mathlib/RingTheory/GlobalDimension.lean | 4 | 15 | ['Thmoas-Guan', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | erdOne | 5 days ago | 64 days ago | 5 minutes |
| 23929 | meithecatte | feat(Computability/NFA): improve bound on pumping lemma | --- - [x] depends on: #25321 [](https://gitpod.io/from-referrer/) | t-computability awaiting-zulip new-contributor awaiting-author | 101/10 | Mathlib/Computability/EpsilonNFA.lean,Mathlib/Computability/NFA.lean | 2 | 42 | ['YaelDillies', 'dagurtomas', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'meithecatte'] | nobody | 5 days ago | 269 days ago | 10 hours |
| 35128 | DAE123456 | feat : Define anti_pascal | --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor awaiting-author | 81/0 | Archive.lean,Archive/Imo/Imo2018Q3.lean | 2 | 5 | ['DAE123456', 'github-actions', 'grunweg', 'vihdzp'] | nobody | 5 days ago | unknown | unknown |
| 34507 | metakunt | feat(NumberTheory/AKSPrimality): Adds the AKS primality test | Adds the completed proof for the AKS primality test. Everything except the final theorem is marked private as it's only needed for the final proof. Also everything except the final theorem is namespaced with AKS. ---- Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Aks.20primality.20Theorem.206.2E1.20Claim.20.28i.29.20proven | t-number-theory | 653/0 | Mathlib.lean,Mathlib/NumberTheory/AKSPrimality.lean | 2 | 28 | ['github-actions', 'jcommelin', 'kim-em', 'metakunt', 'vihdzp'] | kim-em | 4 days ago | 4 days ago | 8 days |
| 35713 | Parcly-Taxel | feat: Bird–Wadler duality theorems | Forms of these three theorems already exist in mathlib and the Lean standard library, but they are scattered about. Bring them together in one file, deprecating the _ad hoc_ names for the first and second theorems. | t-data | 167/82 | Mathlib.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/BirdWadler.lean,docs/references.bib | 4 | 1 | ['github-actions'] | nobody | 4 days ago | 4 days ago | 7 days |
| 35656 | euprunin | chore(ModelTheory): golf proofs | This PR removes unused `have`/`haveI`/`let`/`letI` calls. The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `FirstOrder.Field.realize_genericMonicPolyHasRoot`: unchanged 🎉 * `FirstOrder.Language.exists_cg_is_age_of`: unchanged 🎉 * `FirstOrder.Language.Theory.models_formula_iff_onTheory_models_equivSentence`: unchanged 🎉 * `FirstOrder.Language.Sentence.realize_cardGe`: unchanged 🎉 * `FirstOrder.Language.Ultraproduct.boundedFormula_realize_cast`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | t-logic | 3/16 | Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/Satisfiability.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Ultraproducts.lean | 5 | 6 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | nobody | 4 days ago | 8 days ago | 9 days |
| 35677 | euprunin | chore(SetTheory): golf proofs | This PR removes unused `have`/`haveI`/`let`/`letI` calls + some small similar cleanups. The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Cardinal.mul_eq_self`: unchanged 🎉 * `Cardinal.succ_natCast`: unchanged 🎉 * `Ordinal.exists_fundamental_sequence`: unchanged 🎉 * `Cardinal.mk_subtype_le_of_countable_eventually_mem`: unchanged 🎉 * `Nat.card_image_of_injOn`: unchanged 🎉 * `mul_le_of_limit_aux`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | t-set-theory | 2/11 | Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/CountableCover.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/ZFC/PSet.lean | 7 | 4 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | nobody | 4 days ago | 8 days ago | 8 days |
| 29534 | Thmoas-Guan | feat(Algebra): global dimension of regular local ring | In this PR, we proved the global dimension of regular local ring is equal to its krull dimension via Auslander Buchsbaum theorem. --- - [ ] depends on: #29557 - [ ] depends on: #26215 - [ ] depends on: #29558 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-algebra | 3336/34 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Maximal.lean,Mathlib/RingTheory/GlobalDimension.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/AuslanderBuchsbaum.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/GlobalDimension.lean | 23 | 14 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 days ago | unknown | unknown |
| 29232 | vihdzp | feat: more theorems on `SuccAddOrder` | We make use of the (relatively) new `CanonicallyOrderedAdd` typeclass in order to generalize various theorems on `Ordinal` to `SuccAddOrder`. Later on we'll deprecate the `Ordinal` versions in favor of these. --- [](https://gitpod.io/from-referrer/) | t-algebra t-order merge-conflict | 54/1 | Mathlib/Algebra/Order/SuccPred.lean | 1 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'plp127'] | nobody | 4 days ago | unknown | unknown |
| 29796 | Thmoas-Guan | feat(RingTheory): regular of finite global dimension | In this PR, we proved the other half of Auslander-Buchsbaum-Serre criterion, which states that a local ring is regular if it has finite global dimension, with results in #29557, we can obtain the full theorem. More APIs would be developed based on the two. --- - [ ] depends on: #26215 - [ ] depends on: #26217 - [ ] depends on: #29558 - [ ] depends on: #28683 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-ring-theory | 2824/34 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/GlobalDimension.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/AuslanderBuchsbaum.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/RegularLocalRing/AuslanderBuchsbaumSerre.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean | 21 | 12 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 days ago | unknown | unknown |
| 32458 | vihdzp | feat: order isomorphisms preserve successor/predecessor limits | Co-authored-by: Aaron Liu |
t-order awaiting-author merge-conflict | 45/5 | Mathlib/Order/Hom/Basic.lean,Mathlib/Order/SuccPred/Limit.lean | 2 | 3 | ['YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] | YaelDillies | 4 days ago | 86 days ago | 2 days |
| 35552 | vihdzp | chore(SetTheory/Ordinal/Basic): remove `backward.privateInPublic` | --- [](https://gitpod.io/from-referrer/) | t-set-theory tech debt | 7/27 | Mathlib/SetTheory/Ordinal/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 4 days ago | 4 days ago | 12 days |
| 35846 | BryceT233 | feat(RingTheory/MvPowerSeries): add completeness for `MvPowerSeries` | This PR continues the work in #35670 and #35707 by adding typeclass instances for the completeness of `MvPowerSeries` when the index type is finite. --- - [ ] depends on: #35789 - [ ] depends on: #35707 - [ ] depends on: #35670 - [ ] depends on: #35597 [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor blocked-by-other-PR | 199/0 | Mathlib.lean,Mathlib/RingTheory/AdicCompletion/Completeness.lean | 2 | 3 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 4 days ago | unknown | unknown |
| 35609 | BoltonBailey | chore: deprecate Turing files | This follow-up deprecates files moved in #35608 This PR was made with the assistance of Claude Code --- - [ ] depends on: #35608 [](https://gitpod.io/from-referrer/) | t-computability blocked-by-other-PR merge-conflict | 12/4693 | Mathlib/Computability/PostTuringMachine.lean,Mathlib/Computability/TMComputable.lean,Mathlib/Computability/TMConfig.lean,Mathlib/Computability/TMToPartrec.lean,Mathlib/Computability/Tape.lean,Mathlib/Computability/TuringMachine.lean | 6 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 35779 | vihdzp | feat: more lemmas about `Order.cof` | We generalize various results from `Ordinal.cof` to `Order.cof`, and use them to give nicer proofs of existing results. I'll probably split this up as I go. --- - [ ] depends on: #35513 - [ ] depends on: #35792 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-set-theory merge-conflict | 429/294 | Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/Order/Cofinal.lean,Mathlib/Order/IsNormal.lean,Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Regular.lean | 7 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 30758 | Timeroot | chore: tag abs_inv and abs_div with grind= | --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 4/3 | Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Ring/Abs.lean | 2 | 5 | ['Timeroot', 'Vierkantor', 'github-actions', 'mathlib-bors'] | kim-em | 4 days ago | 89 days ago | 43 days |
| 35446 | kbuzzard | perf: try lowering prio for A(0) instances, A a graded object | If Lean is looking for `Mul X` where `X` is coincidentally of the form `A 0` then the first thing it tries is `GradedMonoid.GradeZero.mul` which, if wrong, can take a long time to fail. In this PR I steer typeclass inference away from "A(0)-instances" by lowering their priority. Benchmarking is 100% green indicating that this decision is not hurting us. --- [](https://gitpod.io/from-referrer/) See [#mathlib4 > Typeclass Synthesis Regression @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Typeclass.20Synthesis.20Regression/near/564417997) I initiated a new discussion about this PR here [#mathlib4 > priority hacks @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/priority.20hacks/near/574353616) | t-algebra delegated | 14/13 | Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/GradedMonoid.lean | 2 | 11 | ['Vierkantor', 'eric-wieser', 'github-actions', 'kbuzzard', 'leanprover-radar', 'mathlib-bors'] | jcommelin | 4 days ago | 6 days ago | 7 days |
| 35853 | vihdzp | chore(SetTheory/Ordinal): deprecate more theorems on `succ` | --- - [x] depends on: #35844 [](https://gitpod.io/from-referrer/) | t-set-theory | 39/37 | Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Ordinal.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/SetTheory/Ordinal/Topology.lean | 9 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 4 days ago | 4 days ago | 4 days |
| 35863 | CBirkbeck | Nagell lutz | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 2005/234 | Mathlib.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/ZSMul.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Universal.lean,Mathlib/NumberTheory/EllipticDivisibilitySequence.lean | 7 | 0 | [] | nobody | 4 days ago | unknown | unknown |
| 35394 | HugLycan | feat(Tactic/Positivity): make positivity work for types that are not partial orders | Make positivity work for types that are not partial orders Most PositivityExt haven't been updated for non partial order cases yet. They will be updated in the later PR. `Strictness` now depends on `Option Q(PartialOrder $α)` instead of `Q(PartialOrder $α)`, and the constructors of `Strictness` now have their order typeclass arguments. In order to help `Qq` synth instances property, we have to move `assertInstancesCommute` to inner branch, manually add `haveI'` or explicitly pass the order typeclass instance into `.positive`/`.nonnegative`. --- [](https://gitpod.io/from-referrer/) | new-contributor t-meta awaiting-author | 595/302 | Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/Algebra.lean,Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Power.lean,Mathlib/Algebra/Order/Floor/Extended.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Module/Field.lean,Mathlib/Analysis/Complex/BorelCaratheodory.lean,Mathlib/Analysis/Complex/Order.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Totient.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean,Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean | 37 | 7 | ['JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster'] | joneugster | 4 days ago | unknown | unknown |
| 35084 | edegeltje | feat(Combinatorics/SimpleGraph): The Cayley graph for structures with `Mul`/`Add` | This pr: - adds the definition `SimpleGraph.mulCayley`, where `x` is adjacent to a distinct `y` when there is `g` such that `x * g = y` or `x = y * g`, - proves various lemmas about the above, - adds/proves the additive versions of all of the above some related zulip conversation: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Cayley.20and.20circulant.20graph/with/572839048 --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 106/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cayley.lean | 2 | 27 | ['SnirBroshi', 'edegeltje', 'github-actions', 'vihdzp', 'vlad902'] | nobody | 4 days ago | 4 days ago | 21 days |
| 35865 | vihdzp | chore: review `Cardinal.ord` API | This PR does the following: - Mark `Cardinal.ord` as no expose. - Prove the defining property `gciOrdCard` earlier. - Deprecate the unused `ord.orderEmbedding` (it simply restates that the function is strictly monotonic). - Rename `ord_nat` → `ord_natCast`. --- [](https://gitpod.io/from-referrer/) | t-set-theory | 45/39 | Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean | 4 | 1 | ['github-actions'] | nobody | 4 days ago | 4 days ago | 4 days |
| 33458 | NoneMore | feat(ModelTheory): add lifting for embeddings to languages with constants | Prepare for a generalized Tarski-Vaught test with a set as input instead of a substructure. --- [](https://gitpod.io/from-referrer/) | t-logic new-contributor | 46/0 | Mathlib/ModelTheory/ElementaryMaps.lean,Mathlib/ModelTheory/LanguageMap.lean | 2 | 7 | ['Citronhat', 'NoneMore', 'fpvandoorn', 'github-actions'] | fpvandoorn | 4 days ago | 4 days ago | 60 days |
| 35435 | WenrongZou | feat(RingTheory/MvPowerSeries): toMvPowerSeries and rename | --- Some APIs about `rename` and `toMvPowerSeries`. This follows the inspiration in `Polynomial.toMvPolynomial` and `MvPolynomial.rename`. I will add more theorems related to these in the next PR. [](https://gitpod.io/from-referrer/) | t-ring-theory | 325/4 | Mathlib.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean | 4 | 5 | ['BryceT233', 'WenrongZou', 'github-actions'] | mariainesdff | 4 days ago | 14 days ago | 14 days |
| 32672 | tb65536 | feat: haar measures on short exact sequences | This PR defines the notion of a short exact sequence of topological groups, and proves that if `1 → A → B → C → 1` is a short exact sequence of topological groups, then Haar measures on `A` and `C` induce a Haar measure on `B`. The final result of the file is a consequence needed for FLT: If `B → C` is injective on an open set `U`, then `U` has bounded measure. --- - [ ] depends on: #35081 [](https://gitpod.io/from-referrer/) | t-measure-probability t-topology FLT blocked-by-other-PR | 342/0 | Mathlib.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/Extension.lean,Mathlib/Topology/Algebra/Group/Extension.lean | 4 | 18 | ['RemyDegenne', 'github-actions', 'jcommelin', 'kbuzzard', 'mathlib-dependent-issues', 'tb65536'] | nobody | 4 days ago | 21 days ago | 61 days |
| 8102 | miguelmarco | feat(Tactic): add `unify_denoms` and `collect_signs` tactics | This PR adds four new tactics: - `unify_denoms` tries to put expressions with several divisions in a form with only one division. In the case of fields, it works similarly to `field_simp`, but if the hypothesis about denominators being nonzero are not present, it assumes them, and leaves them as new goals to prove. In that sense, it is an "unsafe" tactic (but can be useful nevertheless, for example when you can't find which exact hypothesis is missing). It also works with expressions of naturals and Euclidean domains, assuming the corresponding hypothesis about the denominators dividing the numerators. - `unify_denoms!` extends `unify_denoms` to work with (in)equalities, assuming also that the denominators, once in normal form, are positive. - `collect_signs` works similarly with expressions using sums and substractions: it tries to put them in a form of one sum minus other sum. In the case of working with naturals, it assumes that we never substract a bigger number from a smaller one. Both are implemented essentially as a macro that combines several rewriting rules. Some new lemmas with the corresponding rules are added. --- | please-adopt new-contributor merge-conflict modifies-tactic-syntax good first issue t-meta | 407/0 | Mathlib.lean,Mathlib/Algebra/EuclideanDomain/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CollectSigns.lean,Mathlib/Tactic/UnifyDenoms.lean,MathlibTest/unify_denoms.lean,scripts/noshake.json | 7 | 55 | ['Paul-Lez', 'YaelDillies', 'github-actions', 'joneugster', 'kbuzzard', 'mathlib4-merge-conflict-bot', 'miguelmarco'] | nobody | 4 days ago | unknown | unknown |
| 26245 | Thmoas-Guan | feat(Algebra): cohen macaulay local ring is catenary | We prove Cohen Macaulay local ring is catenary. Following Theorem 31, Chater 6, _Commutative Algebra_, Matsumura --- - [ ] depends on: #26218 [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR large-import | 2222/34 | Mathlib.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Catenary.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean | 11 | 15 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 days ago | unknown | unknown |
| 35603 | 2500223210-max | feat(GroupTheory/Frattini): add more theorems | Add some contents about frattini subgroup into Mathlib GroupTheory Frattini.lean,including * (convenient lemma)A subgroup contained in all maximal subgroup is contained in the FRattini subgroup * A subgroup (say H) has a proper complement (meaning for some proper subgroup K, K and H generate the whole group)if and only if it is not contained in the Frattini subgroup. * A group is cyclic iff its Frattini factor(the quotient group wrt Frattini subgroup) is cyclic. * The Frattini factor of a finite p-group is elementary abelian(that is,an abelian group G with Gᵖ={1}) * A finite p-group has trivial Frattini subgroup iff the group is elementary abelian. * Burnside theorem of Frattini factor of finite p-group. --- | new-contributor t-group-theory large-import awaiting-author | 764/1 | Mathlib/GroupTheory/Frattini.lean | 1 | 3 | ['github-actions', 'tb65536'] | nobody | 4 days ago | unknown | unknown |
| 35868 | Raph-DG | feat(Topology): Added in a variant of the sheaf condition which assumes non triviality of the cover | In this PR we add in a variant of the sheaf condition which assumes the cover present in the sheaf condition is nontrivial in the sense that the indexing type is nonempty and the values of the presheaf on each element of the cover are nonempty. --- [](https://gitpod.io/from-referrer/) | WIP t-topology | 78/0 | Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean | 1 | 1 | ['github-actions'] | nobody | 4 days ago | unknown | unknown |
| 35415 | joneugster | feat(Cache): enable partial cache in downstream projects | Migrated to fork from: #21238. Add features to `cache` and cleanup code: * enable partial cache retrieval in downstream projects: `lake exe cache get MyProject.Basic` downloads only the relevant cache to build `MyProject/Basic.lean` --- - [x] depends on: #21834 ### Notes: - replaces: #21195 - should address: #8767 - should address: #20568 ### Completed: - [x] depends on: #21632 - [x] ~~depends on: #21663~~ - [x] depends on: #21666 - [x] depends on: #21701 - [x] depends on: #21703 - [x] depends on: #21704 - [x] depends on: #21705 - [x] depends on: #21707 - [x] depends on: #21711 - [x] depends on: #21750 - [x] depends on: #21815 - [x] depends on: #21816 - [x] depends on: #21817 - [x] depends on: #21818 - [x] depends on: #21822 - [x] depends on: #21830 - #21848 [](https://gitpod.io/from-referrer/) | CI t-meta | 34/15 | Cache/Hashing.lean,Cache/IO.lean,Cache/Main.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | 4 days ago | 4 days |
| 34676 | joneugster | chore(Algebra/CharP/MixedCharZero): update file to make use of the module system | - mark all declarations in the file as `private` or `public` - remove `@[exposed] public section` - reduce `public` imports - fix some wording and drop a random `example` which shouldn't be there --- I've used this file to better understand the module system and its future implications for mathlib. The file is IMO ideal since it's an old toy example of mine which is a leaf that isn't imported in mathlib anywhere else (yet). [](https://gitpod.io/from-referrer/) | t-algebra | 32/28 | Mathlib/Algebra/CharP/MixedCharZero.lean | 1 | 5 | ['github-actions', 'joneugster', 'mathlib-merge-conflicts', 'vihdzp'] | eric-wieser | 4 days ago | 13 days ago | 16 days |
| 35193 | Brian-Nugent | feat(Topology/Closeds): implement category of closed sets in topological spaces | I copied over the nice API for working with `TopologicalSpace.Opens` as a category over for `TopologicalSpace.Closeds`. The only thing that did not immediately transfer was `Topology.IsInducing.functorObj` so I omitted it. Based on work of @kim-em --- [](https://gitpod.io/from-referrer/) | t-topology new-contributor awaiting-author | 385/0 | Mathlib.lean,Mathlib/Topology/Category/TopCat/Closeds.lean | 2 | 7 | ['Brian-Nugent', 'dagurtomas', 'github-actions'] | dagurtomas | 4 days ago | 4 days ago | 14 days |
| 35684 | spitters | feat(CategoryTheory/MarkovCategory): Kleisli PMF is a Markov category | Add `Mathlib/CategoryTheory/MarkovCategory/KleisliPMF.lean` showing that `KleisliCat PMF` is a `MarkovCategory`. Uses `Prod` as tensor and `PUnit` as unit; reuses Mathlib's existing `KleisliCat`, `LawfulMonad PMF`, and `MarkovCategory` infrastructure. Builds the full instance stack: MonoidalCategory → BraidedCategory → SymmetricCategory → CopyDiscardCategory → MarkovCategory --- [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor awaiting-author | 323/1 | Mathlib.lean,Mathlib/CategoryTheory/MarkovCategory/KleisliPMF.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 3 | 5 | ['dagurtomas', 'github-actions', 'spitters'] | nobody | 4 days ago | 5 days ago | 2 days |
| 35465 | MixedMatched | feat(Data/Multiset/Powerset): show injectivity and monotonicity of powerset | Add Injective, Monotone, and StrictMono proofs for `Multiset.powerset`. Also, add a theorem showing that the sizes of two powersets are bidirectionally related to the sizes of the underlying Multisets (`powerset_le_powerset_iff_le`), a couple of other small `Multiset.powerset` lemmas, and theorems for append and map for `List.Subperm`. Also, thanks to Ruben Van de Velde for looking this over on the Zulip! --- [](https://gitpod.io/from-referrer/) | t-data new-contributor | 81/0 | Mathlib/Data/List/Perm/Subperm.lean,Mathlib/Data/List/Sublists.lean,Mathlib/Data/Multiset/Powerset.lean | 3 | 28 | ['MixedMatched', 'eric-wieser', 'github-actions', 'joneugster', 'vihdzp'] | joneugster | 4 days ago | 11 days ago | 11 days |
| 34583 | adomani | feat: basic properties of subnormal subgroups | This is a follow up to #34284.
Co-authored-by: Inna Capdeboscq |
large-import t-group-theory | 107/3 | Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/GroupTheory/IsSubnormal.lean | 3 | 38 | ['LLaurance', 'adomani', 'github-actions', 'tb65536'] | mattrobball | 4 days ago | 4 days ago | 20 days |
| 35268 | tb65536 | feat(Topology/Algebra/Module/LinearMap): units in `M →L[R] M` are homeomorphisms | This PR proves that a units in `M →L[R] M` are homeomorphisms. --- [](https://gitpod.io/from-referrer/) | t-topology t-algebra | 11/1 | Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean | 2 | 4 | ['dagurtomas', 'github-actions', 'tb65536'] | dagurtomas | 4 days ago | 4 days ago | 17 days |
| 34209 | mike1729 | feat(Analysis/Normed): Schauder basis definition and characterization via projections | A Schauder basis is a fundamental concept in functional analysis, providing a way to represent every element of a Banach space as a unique convergent series. This PR adds the core structures, some theorems necessary to work with these bases and a characterization of a Schauder basis using projections. This PR is based on Chapter 1. from Albiac, F., & Kalton, N. J. (2016). Topics in Banach Space Theory. This is a first PR in a series of three aiming for Eberlein-Smulyan Theorem. The next one will contain theory of basic sequences and the final one will contain a proof of Eberlein-Smulyan Theorem using basic sequences. --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 524/0 | Mathlib.lean,Mathlib/Analysis/Normed/Module/Bases.lean,docs/references.bib | 3 | 181 | ['Ruben-VandeVelde', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'mike1729', 'sgouezel', 'themathqueen'] | sgouezel | 4 days ago | 4 days ago | 23 days |
| 35078 | grunweg | feat: immersed points | Define immersed points of a (differentiable) map between manifolds, and prove that immersed points compose. Future PRs show that `x` is an immersed point of `f` if and only if `f` is an immersion at `x`: thus, proving the composition of immersed points (which follows immediately from the chain rule) implies the composition of immersions (which is not obvious from their definition. From the path towards immersions, embeddings and submanifolds. --- - [x] depends on: #35057 - [x] depends on: #35284 [](https://gitpod.io/from-referrer/) | t-differential-geometry awaiting-author | 171/1 | Mathlib.lean,Mathlib/Analysis/Normed/Module/ContinuousInverse.lean,Mathlib/Geometry/Manifold/ImmersedPoint.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean | 4 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 34626 | grunweg | feat: analytification of schemes (affine case) | This branch is for tracking purposes; the code in this branch will take a while to get merged into mathlib. The affine case depends on the regular value theorem (which is a master's thesis I am supervising now), the general case will also require gluing manifolds (another thesis). Merging both before the end of this year is an optimistic estimate. That said, pieces and pre-requisites (such as, submersions, their composition properties and the definition of submanifolds) can and hopefully get merged much sooner! --- - [ ] depends on: #28796 - [ ] depends on: #26087 - [ ] depends on: #34991 - [ ] depends on: #35057 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry blocked-by-other-PR please-merge-master | 3322/50 | Mathlib.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Normed/Module/ContinuousLeftInverse.lean,Mathlib/Analysis/Normed/Module/ContinuousRightInverse.lean,Mathlib/Analysis/Normed/Module/Splits.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/Immersion.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,Mathlib/Geometry/Manifold/MSplits.lean,Mathlib/Geometry/Manifold/RegularPoint.lean,Mathlib/Geometry/Manifold/RegularValueTheorem.lean,Mathlib/Geometry/Manifold/Scheme.lean,Mathlib/Geometry/Manifold/SliceModel.lean,Mathlib/Geometry/Manifold/SmoothEmbedding.lean,Mathlib/Geometry/Manifold/Submanifold.lean,Mathlib/Geometry/Manifold/Submersion.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean | 20 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 4 days ago | unknown | unknown |
| 35653 | pepamontero | feat: add ChartedSpace structure on orbit space | feat: add ChartedSpace structure on orbit space Add topological preliminaries for properly discontinuous group actions, and use them to equip the orbit space `orbitRel.Quotient G M` with a `ChartedSpace` structure. In particular: - Show that the quotient map `Quotient.mk _ : M → orbitRel.Quotient G M` is a covering map and hence a local homeomorphism. - Construct chosen local inverses of the quotient map and establish properties over them. - Define a `ChartedSpace` instance on the quotient by composing these local inverses with charts of M. This started as an ItaLean2025 project; here is the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Quotient.20Manifolds/with/575121158) dedicated to it. --- | new-contributor t-differential-geometry | 186/0 | Mathlib.lean,Mathlib/Geometry/Manifold/Instances/OrbitSpace.lean,Mathlib/Topology/Algebra/OrbitSpace.lean | 3 | 2 | ['github-actions'] | grunweg | 4 days ago | 9 days ago | 9 days |
| 35657 | Rida-Hamadani | feat(SimpleGraph): distance equal or greater than two in terms of common neighborhood | Two lemmas classifying distances between two vertices according two their common neighborhood. This is the fork version of #12278. --- [](https://gitpod.io/from-referrer/) | t-combinatorics awaiting-author | 36/0 | Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Data/ENat/Basic.lean | 2 | 8 | ['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'vlad902'] | nobody | 4 days ago | 4 days ago | 4 days |
| 24434 | joelriou | feat(CategoryTheory): effectiveness of descent | (This is very much a draft, it will be split in multiple PRs later.) Co-authored-by: Christian Merten [christian@merten.dev](mailto:christian@merten.dev) --- - [ ] depends on: #35452 - [ ] depends on: #35393 - [ ] depends on: #35396 - [ ] depends on: #35401 - [x] depends on: #24411 - [x] depends on: #24382 - [x] depends on: #25971 - [x] depends on: #13539 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory blocked-by-other-PR | 4052/66 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Adj.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/BaseChange.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean,Mathlib/CategoryTheory/Bicategory/Functor/Cat.lean,Mathlib/CategoryTheory/Bicategory/Functor/LocallyDiscrete.lean,Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean,Mathlib/CategoryTheory/Bicategory/Opposite.lean,Mathlib/CategoryTheory/CommSq.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean,Mathlib/CategoryTheory/Sites/Descent/DescentData.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataAsCoalgebra.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataDoublePrime.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataPrime.lean,Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean,Mathlib/CategoryTheory/Sites/Descent/IsStack.lean,Mathlib/CategoryTheory/Sites/Descent/ModuleCat.lean,Mathlib/CategoryTheory/Sites/Descent/PullbackStruct.lean | 19 | 23 | ['alreadydone', 'callesonne', 'chrisflav', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'yuma-mizuno'] | nobody | 4 days ago | unknown | unknown |
| 35608 | BoltonBailey | chore(Computability): move TM files to a single folder | This PR takes files relevant to Turing machines and moves them to a single folder for better organization. In the process, we do some renaming of these files * We remove the "TM" from the front of these files, as it's now redundant. * TuringMachine.lean --> TuringMachine/StackMachine.lean * (really the key difference between the TM2 model presented in this file, and the TM1 model from the previous, is the introduction of stacks instead of tapes) I also remove `EvalsTo` and friends from TuringMachine.Computable, as these in #33291 were moved out of the TM namespace. --- [](https://gitpod.io/from-referrer/) | t-computability file-removed | 21/58 | Mathlib.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TuringMachine/Computable.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Computability/TuringMachine/PostTuringMachine.lean,Mathlib/Computability/TuringMachine/StackMachine.lean,Mathlib/Computability/TuringMachine/Tape.lean,Mathlib/Computability/TuringMachine/ToPartrec.lean | 8 | 3 | ['BoltonBailey', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 4 days ago | 4 days ago | 10 days |
| 35598 | Paul-Lez | feat(CategoryTheory/Abelian/Exact): add easy lemmas about short exactness |
Co-authored-by: Whysoserioushah |
t-category-theory awaiting-author | 41/0 | Mathlib.lean,Mathlib/CategoryTheory/Abelian/ShortExact.lean | 2 | 2 | ['github-actions', 'joelriou'] | nobody | 4 days ago | 4 days ago | 7 hours |
| 33791 | PhoenixIra | feat: Generalization of FixedPointApproximants to CompletePartialOrder | --- This PR provides a generalization of FixedPointApproximants to CompletePartialOrder. Not every theorem can be generalized, as sometimes we require additional conditions (namely `x ≤ f x`) in order to guarantee that the set is directed and thus the supremum is well-defined. This is not necessary in a CompleteLattice. [](https://gitpod.io/from-referrer/) | new-contributor t-order merge-conflict | 223/100 | Mathlib/Order/CompletePartialOrder.lean,Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean | 2 | 21 | ['PhoenixIra', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | PhoenixIra and vihdzp | 4 days ago | 4 days ago | 38 days |
| 35281 | harahu | chore: fix markdown list indentation | WIP --- [](https://gitpod.io/from-referrer/) | WIP merge-conflict | 1244/870 | Archive/Imo/Imo2001Q3.lean,Archive/Imo/Imo2010Q5.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Mathlib/Algebra/BigOperators/Group/Finset/Gaps.lean,Mathlib/Algebra/ContinuedFractions/Basic.lean,Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/DirectSum/Finsupp.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Homology/BifunctorShift.lean,Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/TStructure.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Homology/Linear.lean,Mathlib/Algebra/Homology/ShortComplex/Ab.lean,Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean,Mathlib/Algebra/Lie/Derivation/AdjointAction.lean,Mathlib/Algebra/Lie/Derivation/Basic.lean,Mathlib/Algebra/Lie/Derivation/Killing.lean,Mathlib/Algebra/Module/CharacterModule.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/Module/Submodule/Union.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/MvPolynomial/CommRing.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/PDeriv.lean,Mathlib/Algebra/MvPolynomial/Rename.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Order/Hom/Basic.lean,Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Algebra/Polynomial/Inductions.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/Algebra/Ring/Semireal/Defs.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean,Mathlib/AlgebraicGeometry/Gluing.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/Flat.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/AlgebraicTopology/CechNerve.lean,Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Convex/KreinMilman.lean,Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean,Mathlib/CategoryTheory/Abelian/FreydMitchell.lean,Mathlib/CategoryTheory/Adjunction/Quadruple.lean,Mathlib/CategoryTheory/Bicategory/Basic.lean,Mathlib/CategoryTheory/Bicategory/Grothendieck.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean,Mathlib/CategoryTheory/Category/ULift.lean,Mathlib/CategoryTheory/ConcreteCategory/Basic.lean,Mathlib/CategoryTheory/Enriched/Opposite.lean,Mathlib/CategoryTheory/Filtered/Basic.lean,Mathlib/CategoryTheory/GlueData.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean,Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean,Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean,Mathlib/CategoryTheory/Monoidal/Action/Basic.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Limits/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/Representable.lean,Mathlib/CategoryTheory/NatIso.lean,Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/CategoryTheory/Sites/Coverage.lean,Mathlib/CategoryTheory/Sites/IsSheafFor.lean,Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean,Mathlib/CategoryTheory/Sites/Preserves.lean,Mathlib/CategoryTheory/WithTerminal/Basic.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Combinatorics/HalesJewett.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean,Mathlib/Data/Bracket.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/FlagRange.lean,Mathlib/Data/Finset/Density.lean,Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/Multiset/DershowitzManna.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/PNat/Xgcd.lean,Mathlib/Data/Part.lean,Mathlib/Data/Stream/Defs.lean,Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean,Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean,Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean,Mathlib/Dynamics/TopologicalEntropy/Semiconj.lean,Mathlib/Dynamics/TopologicalEntropy/Subset.lean,Mathlib/FieldTheory/CardinalEmb.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Fixed.lean | 243 | 7 | ['github-actions', 'harahu', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 35674 | astrainfinita | refactor: use `OrderSupInfSet` in `ConditionallyCompleteLattice` | --- - [ ] depends on: #35774 [diff](https://github.com/astrainfinita/mathlib4/compare/use_islub_c...astrainfinita:mathlib4:ordersup_cssup) [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-order merge-conflict | 421/265 | Mathlib/Algebra/Order/Nonneg/Lattice.lean,Mathlib/Algebra/Tropical/Lattice.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Data/Int/ConditionallyCompleteOrder.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/Bounds/Defs.lean,Mathlib/Order/Bounds/OrderSupInfSet.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/Copy.lean,Mathlib/Order/LiminfLimsup.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Basic.lean | 20 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 35630 | SnirBroshi | feat(Data/List/Basic): relate `dropLast` and `concat` | --- [](https://gitpod.io/from-referrer/) | t-data | 8/0 | Mathlib/Data/List/Basic.lean | 1 | 4 | ['SnirBroshi', 'github-actions', 'joneugster'] | joneugster | 4 days ago | 4 days ago | 9 days |
| 35669 | SnirBroshi | feat(Mathlib/Data/Finset/Mex): `sInf sᶜ ≤ s.encard` | --- It's in a separate file because I couldn't find a sensible place with the required imports, not because "mex" is particularly interesting. - [ ] depends on: #35821 - [ ] depends on: #35822 [](https://gitpod.io/from-referrer/) | t-order blocked-by-other-PR | 127/2 | Mathlib.lean,Mathlib/Data/Finset/Mex.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean | 6 | 12 | ['SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'vihdzp'] | nobody | 4 days ago | 5 days ago | 3 days |
| 35830 | AntoineChambert-Loir | feat(Data/Nat/Choose/Plurinomial): plurinomial coefficients | Define the multinomial coefficients, a variant of `Nat.multinomial`. - `Multiset.plurinomial`. Given a multiset `m` of natural numbers, `m.plurinomial` is the multinomial coefficient defined by (m.sum) ! / ∏ i ∈ m, m i !. As an example, `Multiset.plurinomial {1, 2, 2} = 30`. This is the exponent of $x y^2 z^2$ in $(x+y+z)^5$. This should not be confused with the existing `Multiset.multinomial` which gives a different answer, for example, `Multiset.multinomial {1, 2, 2} = 3`. We chose the name “plurinomial” by changing the Greek root “multi” to its Latine version “pluri”. - `Multiset.plurinomial_cons` proves that `(x ::ₘ m).plurinomial = Nat.choose (x + m.sum) x * m.plurinomial` - `Multiset.plurinomial_add` proves that `(m + m').plurinomial = Nat.choose (m + m').sum m.sum * m.plurinomial * m'.plurinomial` co-authored with @mariainesdff --- [](https://gitpod.io/from-referrer/) | t-data | 179/20 | Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Data/List/ToFinsupp.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean | 4 | 9 | ['AntoineChambert-Loir', 'github-actions', 'vihdzp'] | nobody | 4 days ago | 4 days ago | 4 days |
| 35857 | AlexeyMilovanov | feat(Logic.Equiv.BijectiveBase2): add bijective base-2 numeration | This PR introduces a formalization of the bijective base-2 numeration system. Unlike standard binary representation, bijective base-2 avoids the "leading zeros" problem, providing a strict mathematical bijection between natural numbers (`ℕ`) and lists of booleans (`List Bool`). **Main additions:** * `Equiv.BijectiveBase2.toBits`: Encodes `ℕ` to `List Bool`. * `Equiv.BijectiveBase2.ofBits`: Decodes `List Bool` to `ℕ`. * `equivBijectiveBase2`: The formal `ℕ ≃ List Bool` equivalence. *(Note: This replaces my previously closed PR to avoid the terminology clash between "Dyadic" and dyadic rationals. The namespace and definitions have been updated accordingly).* *(Note: Used AI to assist with standardizing proof structures).* | t-logic new-contributor | 95/0 | Mathlib.lean,Mathlib/Logic/Equiv/ListNatBijective.lean | 2 | 4 | ['AlexeyMilovanov', 'SnirBroshi', 'github-actions'] | nobody | 4 days ago | 4 days ago | 4 days |
| 35776 | IvanRenison | feat(Combinatorics): define `HasAdj` for capturing the common structure of different kinds of (simple) graphs | We add a vertex set considering that we want to refactor `SimpleGraph` to also use one --- This pr replaces #4127 Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445 [](https://gitpod.io/from-referrer/) | t-combinatorics | 101/0 | Mathlib.lean,Mathlib/Combinatorics/Digraph/HasAdj.lean,Mathlib/Combinatorics/HasAdj/Basic.lean,Mathlib/Combinatorics/SimpleGraph/HasAdj.lean | 4 | 1 | ['github-actions'] | nobody | 4 days ago | 4 days ago | 4 days |
| 35831 | IvanRenison | refactor(Combinatorics): move `Walk` from `SimpleGraph` to `HasAdj` | --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445 - [ ] depends on: #35776 - [ ] depends on: #35783 Replaces #35777 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-combinatorics merge-conflict | 1390/1151 | Archive/Wiedijk100Theorems/Konigsberg.lean,Mathlib.lean,Mathlib/Combinatorics/Digraph/HasAdj.lean,Mathlib/Combinatorics/HasAdj/Basic.lean,Mathlib/Combinatorics/HasAdj/Dart.lean,Mathlib/Combinatorics/HasAdj/Walks/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean,Mathlib/Combinatorics/SimpleGraph/Dart.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Girth.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/HasAdj.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Traversal.lean | 33 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 4 days ago | unknown | unknown |
| 35822 | SnirBroshi | feat(Order/ConditionallyCompleteLattice): `sSup (f '' s) ≤ f (sSup s)` | --- #35260 will add `iSup` versions. Future work: `Antitone`, `MonotoneOn`, `AntitoneOn` [](https://gitpod.io/from-referrer/) | t-order | 39/1 | Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean | 2 | 5 | ['SnirBroshi', 'github-actions', 'vihdzp'] | nobody | 4 days ago | 5 days ago | 5 days |
| 35423 | Rob23oba | feat: add congruence lemmas for `Function.update` and `Pi.single` | Adds `simp` congruence lemmas to `Function.update` and `Pi.single` that are specialized for the non-dependent case. See also [#mathlib4 > Simp fails to apply with `Function.update`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Simp.20fails.20to.20apply.20with.20.60Function.2Eupdate.60/with/573889929). --- [](https://gitpod.io/from-referrer/) | t-algebra | 29/6 | Mathlib/Algebra/Notation/Pi/Basic.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/NumberTheory/ModularForms/QExpansion.lean,Mathlib/RepresentationTheory/Tannaka.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean | 5 | 9 | ['Rob23oba', 'eric-wieser', 'github-actions', 'joneugster', 'loefflerd'] | thorimur | 4 days ago | 14 days ago | 15 days |
| 35217 | 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 | awaiting-author t-group-theory | 86/0 | 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/PresentedGroup.lean | 6 | 8 | ['eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] | thorimur | 4 days ago | 13 days ago | 6 days |
| 35762 | xroblot | feat(CyclotomicFields/Galois): compute the image of the stabilizer of an unramified prime ideal in `(ℤ/nℤ)ˣ` | Assume that the prime `p` does not divide `n` then, for any prime ideal `P` above `p` in `ℚ(ζₙ)`, the image by the isomorphism between `Gal(ℚ(ζₙ)/ℚ)` and `(ℤ/nℤ)ˣ` of the stabilizer of `P` in `Gal(ℚ(ζₙ)/ℚ)`, aka the decomposition group `P`, is the subgroup generated by the class of `p` in `(ℤ/nℤ)ˣ`. --- - [ ] depends on: #35530 [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR t-algebra | 234/0 | Mathlib.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean,Mathlib/NumberTheory/NumberField/Ideal/Basic.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Int.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean,Mathlib/RingTheory/Invariant/Basic.lean | 11 | 3 | ['github-actions', 'joneugster', 'mathlib-dependent-issues'] | nobody | 4 days ago | 6 days ago | 30 minutes |
| 35031 | JovanGerb | feat(CategoryTheory/Limits/Cones): use `to_dual` | This PR uses `to_dual` to generate `Cocone` from `Cone`. Notes: - Sadly, it is not possible to translate `cones : Cᵒᵖ ⥤ Type max u₁ v₃` and `cocones : C ⥤ Type max u₁ v₃` (and similarly `yoneda` and `coyoneda`), because one version has `ᵒᵖ` in the type and the other doesn't. To allow dualizing `Cone.extend`, I've inlined the definition of `Cone.extensions`. - The namespace `CategoryTheory.Limits.Cones`/`CategoryTheory.Limits.Cocones` looks wrong to me, because there isn't actually any constant called `Cones` or `Cocones`. I think it should be singular: `CategoryTheory.Limits.Cone`/`CategoryTheory.Limits.Cocone` . (I currently have a funny command in place to work around this) - This PR makes many changes in other files where `to_dual` tags were missing. Only the minimal necessary changes have been made. Those files may be extended with more `to_dual` tags in future PRs. - The only prerequisite which I've left out of this PR is equivalences of categories. Hence `functorialityEquivalence`, `whiskeringEquivalence` and `equivalenceOfReindexing` all use `to_dual existing`. - `Cone.extendIso` and `Cocone.extendIso` weren't compatible for `to_dual` because they were the other way around. I chose to swap the direction of the isomorphisms in `Cone.extendIso`. Similarly `precomposeEquivalence` and `postComposeEquivalence` weren't compatible. I chose to swap the direction of an isomorphism in `precomposeEquivalence`. These changes required a few adaptations in `Mathlib.CategoryTheory.Limits.IsLimit` and elsewhere. --- - [ ] depends on: #34863 - [ ] depends on: #35065 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR merge-conflict t-category-theory | 664/735 | Mathlib.lean,Mathlib/CategoryTheory/Category/Basic.lean,Mathlib/CategoryTheory/Functor/Basic.lean,Mathlib/CategoryTheory/Functor/Category.lean,Mathlib/CategoryTheory/Functor/FullyFaithful.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Basic.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/CategoryTheory/Limits/Cones.lean,Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean,Mathlib/CategoryTheory/Limits/IsLimit.lean,Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean,Mathlib/CategoryTheory/NatIso.lean,Mathlib/CategoryTheory/NatTrans.lean,Mathlib/CategoryTheory/Opposites.lean,Mathlib/CategoryTheory/Whiskering.lean,Mathlib/Combinatorics/Quiver/Basic.lean,Mathlib/Order/Basic.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Lattice.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/Reorder.lean | 25 | 12 | ['JovanGerb', 'github-actions', 'joneugster', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 35431 | CoolRmal | feat: Conditional Jensen's Inequality for a general measure | By using the results proved in #35429, this PR proves Conditional Jensen's Inequality for a convex, lower-semicontinuous, and positively homogeneous function in an arbitrary measure space (in constrast with what is proved in #27953, where finiteness of measure is needed). As an application, we show that the following inequality is true for any measure space and any integrable function defined on it: `‖𝔼[f | m])‖ ≤ 𝔼[‖f‖ | m]`. --- - [ ] depends on: #35429 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-measure-probability | 421/24 | Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean | 4 | 3 | ['github-actions', 'joneugster', 'mathlib-dependent-issues'] | nobody | 4 days ago | unknown | unknown |
| 35033 | homeowmorphism | feat: a group if finitely generated if and only if there exists a surjective homomorphism from a `FreeGroup` on an arbitrary finite type `α` to the group | This is a dependency of a larger PR to formalize finitely presented groups #34236. --- - [ ] depends on: #34624 [](https://gitpod.io/from-referrer/) | new-contributor blocked-by-other-PR merge-conflict t-group-theory | 44/3 | Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean | 2 | 4 | ['copilot-pull-request-reviewer', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 35218 | kim-em | feat(GroupTheory/Coxeter/Perm): type A Coxeter group maps to symmetric group | This PR constructs the canonical surjective homomorphism from the type A Coxeter group to the symmetric group, sending simple reflections to adjacent transpositions. - `swapFun`: maps generator `i` to `swap i.castSucc i.succ` - `swapFun_isLiftable`: adjacent transpositions satisfy the Coxeter relations - `CoxeterMatrix.typeAₙToPermHom`: the homomorphism from `(Aₙ n).Group` to `Perm (Fin (n + 1))` - `CoxeterMatrix.typeAₙToPermHom_surjective`: surjectivity - [ ] depends on: #35217 🤖 Prepared with Claude Code | blocked-by-other-PR t-group-theory | 203/0 | Mathlib.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/GroupTheory/Coxeter/Perm.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/PresentedGroup.lean | 8 | 6 | ['eric-wieser', 'github-actions', 'joneugster', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 35219 | kim-em | feat(GroupTheory/Artin): define Artin groups and their universal property | This PR defines Artin groups (also called Artin-Tits groups) as presented groups associated to Coxeter matrices, and establishes their universal property. - `CoxeterMatrix.ArtinGroup`: the Artin group associated to a Coxeter matrix - `CoxeterMatrix.artinGenerator`: the generators of the Artin group - `CoxeterMatrix.IsArtinLiftable`: the braid relation condition for liftability - `CoxeterMatrix.artinLift`: the universal property of Artin groups - `CoxeterMatrix.artinToCoxeter`: the canonical surjection to the Coxeter group - `CoxeterMatrix.artinToCoxeter_surjective`: surjectivity - [ ] depends on: #35218 🤖 Prepared with Claude Code | blocked-by-other-PR t-group-theory | 418/0 | Mathlib.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Artin/Basic.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/GroupTheory/Coxeter/Perm.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/PresentedGroup.lean | 9 | 4 | ['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 35649 | JovanGerb | feat(Order/GaloisConnection/Defs): use `to_dual` for `GaloisInsertion`/`GaloisCoinsertion` | This PR uses `to_dual` to generate declarations about `GaloisCoinsertion` from those for `GaloisInsertion`. - An entry is added to the name translation dictionary for this particular name translation. - One lemma in another file had to be tagged. - Some uses of `to_dual` have been replaced with `to_dual none`, because I had written them before `to_dual none` existed. --- [](https://gitpod.io/from-referrer/) | t-order | 35/78 | Mathlib/Order/GaloisConnection/Defs.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/Tactic/Translate/ToDual.lean | 3 | 2 | ['github-actions', 'vihdzp'] | nobody | 4 days ago | unknown | unknown |
| 35605 | j-loreaux | feat: transfer instances of `ContinuousFunctionalCalculus` to type synonyms with weaker topologies | --- - [ ] depends on: #35551 [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 730/209 | Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Range.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Transfer.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean,Mathlib/Analysis/Normed/Algebra/Unitization.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean,Mathlib/Topology/CompactOpen.lean,Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean | 13 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 4 days ago | unknown | unknown |
| 35670 | BryceT233 | feat(RingTheory/AdicCompletion): completeness of `AdicCompletion` | This is the last PR split from #34936, which follows [[Stacks 05GG](https://stacks.math.columbia.edu/tag/05GG)] and formalizes the result that `AdicCompletion I M` is `I`-adically complete when the ideal `I` is finitely generated. --- - [x] depends on: #35595 - [ ] depends on: #35646 - [ ] depends on: #35647 - [x] depends on: #35660 - [ ] depends on: #35665 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR new-contributor t-ring-theory | 213/7 | Mathlib.lean,Mathlib/LinearAlgebra/SModEq/Basic.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Completeness.lean | 4 | 4 | ['github-actions', 'joneugster', 'mathlib-dependent-issues'] | nobody | 4 days ago | unknown | unknown |
| 35802 | xroblot | feat(RamificationInertia): splitting in the decomposition field | --- - [ ] depends on: #35798 - [ ] depends on: #35405 - [x] depends on: #35371 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR merge-conflict t-number-theory | 533/0 | Mathlib.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean | 10 | 3 | ['github-actions', 'joneugster', 'mathlib-dependent-issues'] | nobody | 4 days ago | unknown | unknown |
| 34742 | Brian-Nugent | feat(SheafCohomology): add API for Sheaf Cohomology | Defines the long exact sequence on cohomology associated to a short exact sequence of sheaves `H.longSequence`. Also defines `H.equiv₀`, the additive equivalence between `H F 0` and `((sheafSections J AddCommGrpCat).obj (op T)).obj F` when the category has a terminal object `T`. --- [](https://gitpod.io/from-referrer/) | new-contributor large-import t-category-theory | 76/2 | Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean | 3 | 16 | ['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joneugster'] | adamtopaz | 4 days ago | 4 days ago | 22 days |
| 35250 | vlad902 | feat(SimpleGraph): redefine `cycleGraph` independent of `circulantGraph` | Right now the `cycleGraph` definition relies on `circulantGraph` which requires importing Group definitions from the algebra hierarchy. This causes large-imports for me in later PRs where I try to make more widespread use of cycleGraphs, so here I redefine it to be its own independent object, and leave moving it from `Circulant.lean` to another PR (this is parallel to #35084.) --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 10/10 | Mathlib/Combinatorics/SimpleGraph/Circulant.lean | 1 | 4 | ['SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] | kmill | 4 days ago | 17 days ago | 18 days |
| 35540 | tb65536 | feat(GroupTheory/ResiduallyFinite): define residually finite groups | This PR defines residually finite groups, provides some basic API, and gives the connection with profinite completion. Some to_additivizing is still waiting on #34784. --- [](https://gitpod.io/from-referrer/) | t-algebra t-group-theory | 91/1 | Mathlib.lean,Mathlib/GroupTheory/FiniteIndexNormalSubgroup.lean,Mathlib/GroupTheory/ResiduallyFinite.lean,Mathlib/Topology/Algebra/Category/ProfiniteGrp/Completion.lean | 4 | 1 | ['github-actions'] | mattrobball | 4 days ago | 12 days ago | 12 days |
| 35592 | SnirBroshi | chore(Order/Defs/Unbundled): deprecate `def Transitive` in favor of `class IsTrans` | --- [`def Transitive`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Transitive) [`class IsTrans`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#IsTrans) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270) [](https://gitpod.io/from-referrer/) | t-order | 141/110 | Mathlib/Algebra/Group/Semiconj/Defs.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/List/MinMax.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/WSeq/Relation.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/Logic/Relation.lean,Mathlib/ModelTheory/Order.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/Quotient.lean,Mathlib/Order/RelClasses.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/Metrizable/Uniformity.lean | 20 | 1 | ['github-actions', 'vihdzp'] | pechersky | 4 days ago | 10 days ago | 11 days |
| 35610 | IvanRenison | feat(Data/Fin): add several lemmas about subtraction of `Fin.{castLT, castAdd, castSucc, castPred}` | --- [](https://gitpod.io/from-referrer/) | t-data | 79/0 | Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/SuccPred.lean | 2 | 3 | ['github-actions', 'wwylele'] | TwoFX | 4 days ago | 9 days ago | 9 days |
| 35672 | 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_prime_coeff_eq_one`: for prime `p`, all coefficients of `cyclotomic p R` equal `1`. - `eq_nsmul_cyclotomic_of_nonneg_coeff`: a nonneg-coefficient polynomial vanishing at a primitive root is a positive scalar multiple of the cyclotomic polynomial. - `card_fiber_eq_card_div`: if a function `d : A → ZMod p` satisfies `∑ ζ^(d a) = 0`, then every fiber has cardinality `|A| / p`. These results are useful for combinatorial applications involving exponential sums and equidistribution over cyclic groups. Theorems imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory | t-ring-theory new-contributor | 101/1 | Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean | 2 | 2 | ['github-actions'] | chrisflav | 4 days ago | 9 days ago | 9 days |
| 35720 | tb65536 | feat(NumberTheory/FunctionField): add instances on `FqtInfty` | This PR proves the relevant instances on `FqtInfty` by locally replacing the existing valued instance `RatFunc.valuedRatFunc` coming from the ideal `X` with the required `UniformSpace` instance coming from the valuation at infinity and then deriving the relevant instances. --- [](https://gitpod.io/from-referrer/) | t-topology t-algebra | 16/9 | Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/NumberTheory/FunctionField.lean | 2 | 1 | ['github-actions'] | dagurtomas | 4 days ago | 7 days ago | 7 days |
| 35721 | chrisflav | chore: fix delaborators for `[Comm][Semi]RingCat` and some more | Since #31622 terms of type `CommRingCat` are pretty printed as `{ carrier := R, commRing := inst }`. We make it pretty print as `CommRingCat.of R` again, which was the previous behaviour. --- [](https://gitpod.io/from-referrer/) | t-algebra | 77/0 | Mathlib/Algebra/Category/Ring/Basic.lean,Mathlib/CategoryTheory/FintypeCat.lean,Mathlib/Topology/Category/TopCat/Basic.lean,Mathlib/Topology/Category/TopCommRingCat.lean | 4 | 1 | ['github-actions'] | dagurtomas | 4 days ago | 7 days ago | 7 days |
| 28682 | Thmoas-Guan | feat(RingTheory): definition of regular local ring | In this PR, we give the definition of regular local ring. The class `IsRegularLocalRing` is defined as `(maximalIdeal R).spanFinrank = ringKrullDim R` We also established the lemma `IsRegularLocalRing.iff_finrank_cotangentSpace` proving this definition is equivalent to the cotangent space version. --- - [ ] depends on: #35337 [](https://gitpod.io/from-referrer/) | t-ring-theory blocked-by-other-PR | 205/7 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean | 7 | 52 | ['Thmoas-Guan', 'chrisflav', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'mbkybky'] | chrisflav | 4 days ago | 15 days ago | 6 hours |
| 28684 | Thmoas-Guan | feat(RingTheory): definition of regular ring | In this PR, we define regular ring as every localization is regular local ring, and proved polynomial over regular ring is regular. --- - [ ] depends on: #28682 [](https://gitpod.io/from-referrer/) | t-ring-theory blocked-by-other-PR | 263/7 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/Basic.lean | 8 | 5 | ['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 days ago | unknown | unknown |
| 29701 | Thmoas-Guan | feat(Algebra/RingTheory): polynomial over regular ring | In this PR, we proved that polynomial over regular ring is regular. --- - [ ] depends on: #28684 [](https://gitpod.io/from-referrer/) | t-ring-theory blocked-by-other-PR | 436/7 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/Polynomial.lean | 9 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 days ago | unknown | unknown |
| 28683 | Thmoas-Guan | feat(RingTheory): regular local ring is domain | In this PR, we proved for a regular local ring `R`, 1 : for a finite set `S` in the maximal Ideal of `R`, it can be extended to a regular system of parameters iff they are linear independent in the cotangent space iff `R/span S` is regular local ring of dimesion `dim R - |S|` 2 : is domain 3 : regular system of parameter form regular sequence. --- - [ ] depends on: #28682 - [ ] depends on: #28582 [](https://gitpod.io/from-referrer/) | t-ring-theory blocked-by-other-PR | 611/17 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean | 10 | 7 | ['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 4 days ago | unknown | unknown |
| 35628 | SnirBroshi | feat(Combinatorics/SimpleGraph/Maps): characterize `neighborSet` and `edgeSet` across an embedding | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 40/0 | Mathlib/Combinatorics/SimpleGraph/Maps.lean | 1 | 1 | ['github-actions'] | nobody | 4 days ago | 4 days ago | 10 days |
| 35878 | Parcly-Taxel | chore: use `induction` for `Quotient.induction` invocations | Found through the regex `(refine|apply|exact).*Quotient.induction`. Includes the multiple-argument variants. | tech debt | 93/102 | Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Basic.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/Combinatorics/Tiling/Tile.lean,Mathlib/Computability/Tape.lean,Mathlib/Data/Multiset/Functor.lean,Mathlib/Data/Multiset/Sym.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/LinearAlgebra/Alternating/DomCoprod.lean,Mathlib/LinearAlgebra/Quotient/Pi.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/Order/Category/PartOrd.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/Topology/Algebra/InfiniteSum/Module.lean | 28 | 1 | ['github-actions'] | nobody | 4 days ago | 3 days ago | 3 days |
| 35841 | astrainfinita | chore(Order/Defs/LinearOrder): avoid `grind` in very fundamental lemmas | --- [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2334013.20chore.3A.20golf.20with.20grind.20to.20reduce.20explicit.20lemma.20refer/near/570429476) [](https://gitpod.io/from-referrer/) | t-order | 40/19 | Mathlib/Order/Defs/LinearOrder.lean | 1 | 2 | ['github-actions', 'grunweg'] | nobody | 4 days ago | unknown | unknown |
| 26770 | Jun2M | feat(Combinatorics/Graph): subgraph relations on `Graph` | This PR creates a new file `Combinatorics/Graph/Subgraph.lean`. In it, the PR introduces a partial order on graphs by subgraph relation, defines relations `IsInducedSubgraph`, `IsSpanningSubgraph` and `IsClosedSubgraph`.
Co-authored-by: Peter Nelson |
t-combinatorics | 325/0 | Mathlib.lean,Mathlib/Combinatorics/Graph/Subgraph.lean | 2 | 60 | ['Jun2M', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | YaelDillies | 3 days ago | 3 days ago | 7 days |
| 35880 | astrainfinita | feat(Order/Defs/LinearOrder): `min_ind` | --- [](https://gitpod.io/from-referrer/) | t-order | 5/0 | Mathlib/Order/Defs/LinearOrder.lean | 1 | 1 | ['github-actions'] | nobody | 3 days ago | 3 days ago | 3 days |
| 32058 | Thmoas-Guan | feat(Algebra): category version Baer criterion | In this PR, we added the cateory version of Baer criterion stating that `M` is injective iff `Ext^1(R/I, M)` vanish for all ideal I. --- - [ ] depends on: #35882 [](https://gitpod.io/from-referrer/) | t-algebra t-category-theory blocked-by-other-PR | 142/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean | 3 | 19 | ['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | dagurtomas | 3 days ago | 4 days ago | 7 days |
| 34423 | euprunin | chore: golf using `grind` | The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `LucasLehmer.norm_num_ext.sModNat_eq_sMod`: 950 ms before, 758 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 1/18 | Mathlib/NumberTheory/LucasLehmer.lean | 1 | 14 | ['eric-wieser', 'euprunin', 'github-actions', 'leanprover-radar', 'robin-carlier'] | eric-wieser | 3 days ago | 3 days ago | 36 days | |
| 35840 | SnirBroshi | feat(SetTheory/Ordinal/Arithmetic): `typein (· < ·) = natCast` for `ℕ` and `Fin n` | Co-authored-by: Matt Diamond |
t-set-theory | 25/0 | Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean | 2 | 16 | ['SnirBroshi', 'github-actions', 'vihdzp'] | vihdzp | 3 days ago | 3 days ago | 4 days |
| 35881 | astrainfinita | chore: do not use `inf` `sup` in `LinearOrder` lemmas | `max` and `sup` have been unified into the same function. It is no longer necessary to create lemmas about `sup` for `LinearOrder`. This PR moves `max` lemmas to an earlier file to ensure that files importing deprecated `sup` lemmas can use them. --- - [ ] depends on: #35841 - [ ] depends on: #35880 [](https://gitpod.io/from-referrer/) | t-order blocked-by-other-PR | 129/120 | Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Order/Group/PosPart.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Algebra/Polynomial/Reverse.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/ConvergenceRadius.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/Complex/OpenMapping.lean,Mathlib/Analysis/Normed/Group/Seminorm.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/List/Infix.lean,Mathlib/Data/Nat/Factorization/LCM.lean,Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/MeasureTheory/Measure/Stieltjes.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/NumberTheory/AbelSummation.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/Order/BoundedOrder/Lattice.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Filter/ENNReal.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/MinMax.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Probability/Moments/Basic.lean,Mathlib/Probability/Moments/IntegrableExpMul.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean,Mathlib/RingTheory/Polynomial/HilbertPoly.lean,Mathlib/RingTheory/PowerSeries/Restricted.lean,Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/Tactic/Order/ToInt.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/MetricSpace/Algebra.lean,Mathlib/Topology/MetricSpace/BundledFun.lean,Mathlib/Topology/MetricSpace/Infsep.lean,Mathlib/Topology/Semicontinuity/Basic.lean | 44 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 3 days ago | unknown | unknown |
| 25170 | eric-wieser | refactor: make basis computable | I claim that in the long run, `Basis.repr` should be a `DFinsupp` not `Finsupp`, so that it is computable. To make this change incrementally, we can store a `DFinsupp` internally today, and keep `repr` and `ofRepr` working with finsupp. This at least would allow building a large basis object, and then using `repr'` to compute with it. The cost of this intermediate state is a loss of many defeqs. --- - [x] depends on: #25166 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra large-import | 66/21 | Mathlib/LinearAlgebra/Basis/Basic.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/LinearAlgebra/FreeModule/Basic.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 days ago | unknown | unknown |
| 35716 | IvanRenison | feat(Combinatorics/SimpleGraph/Connectivity): add lemmas about reachable, degree and neighbor set | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 28/6 | Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean | 1 | 10 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] | nobody | 3 days ago | 3 days ago | 7 days |
| 35829 | IvanRenison | refactor(Data/Last): move `Mathlib.Tactic.BicategoryLike.pairs` to `List.consecutivePairs` | Moves: - Mathlib.Tactic.BicategoryLike.pairs -> List.consecutivePairs --- [](https://gitpod.io/from-referrer/) | t-data | 12/6 | Mathlib/Data/List/Defs.lean,Mathlib/Tactic/Widget/StringDiagram.lean | 2 | 5 | ['IvanRenison', 'SnirBroshi', 'github-actions', 'robin-carlier'] | nobody | 3 days ago | 4 days ago | 5 days |
| 34922 | vasnesterov | feat(Tactic/ComputeAsymptotics/Multiseries): Multiseries definition and structural lemmas | Define `Multiseries` and `MultiseriesExpansion` and restate some `Seq` API for `Multiseries`. --- This is a part of the `compute_asymptotics` tactic (#28291). [](https://gitpod.io/from-referrer/) | t-data t-meta awaiting-author | 399/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean | 3 | 10 | ['Vierkantor', 'github-actions', 'joneugster', 'mathlib-merge-conflicts'] | Vierkantor and joneugster | 3 days ago | 4 days ago | 21 days |
| 35073 | joelriou | feat(CategoryTheory/Sites): more on Cech cohomology | WIP branch --- - [ ] depends on: #35035 - [x] depends on: #35026 - [x] depends on: #35038 - [x] depends on: #35140 [](https://gitpod.io/from-referrer/) | WIP t-category-theory merge-conflict | 786/9 | Mathlib.lean,Mathlib/Algebra/Category/Grp/Limits.lean,Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean,Mathlib/AlgebraicTopology/ExtraDegeneracy.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/CategoryTheory/Comma/Arrow.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts/Basic.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts/Cech.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts/EvalOpAddCommGrpCat.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts/ExtraDegeneracy.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts/Misc.lean,Mathlib/CategoryTheory/Limits/Shapes/Products.lean,Mathlib/CategoryTheory/ShrinkYoneda.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/CechAddCommGrpCat.lean,Mathlib/CategoryTheory/Subfunctor/Sieves.lean,Mathlib/Topology/Sheaves/Cech/AddCommGrpCat.lean | 16 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 3 days ago | unknown | unknown |
| 33878 | xroblot | feat(MulChar): generalize duality results on finite abelian groups to multiplicative characters | --- - [x] depends on: #33792 [](https://gitpod.io/from-referrer/) | large-import t-number-theory | 116/5 | Mathlib/Algebra/Group/Submonoid/Units.lean,Mathlib/NumberTheory/MulChar/Basic.lean,Mathlib/NumberTheory/MulChar/Duality.lean,Mathlib/NumberTheory/MulChar/Lemmas.lean | 4 | 13 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536', 'xroblot'] | tb65536 | 3 days ago | 3 days ago | 12 days |
| 35405 | xroblot | feat(RamificationInertia): add `ramificationIdx_le_ramificationIdx` and `inertiaDeg_le_inertiaDeg` | Assume that `Q` is over `P` that is over `p`. We prove that: - `Ideal.ramificationIdx P Q ≤ Ideal.ramificationIdx p Q` - `Ideal.inertiaDeg P Q ≤ Ideal.inertiaDeg p Q` These results follow from [Ideal.ramificationIdx_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.ramificationIdx_algebra_tower) and [Ideal.inertiaDeg_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.inertiaDeg_algebra_tower) but they are proved here in a more general situation. --- - [x] depends on: #35483 [](https://gitpod.io/from-referrer/) | t-number-theory | 31/0 | Mathlib/NumberTheory/RamificationInertia/Basic.lean | 1 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | alexjbest | 3 days ago | 3 days ago | 14 days |
| 34440 | grunweg | feat: linter for name components in uppercase | Per the naming convention, these are errors (unless they are an abbreviation). Mathlib has *many* violations at the moment: for this reason, we add this as an environment linter and automatically add all current exceptions. Once these have been fixed, converting to a syntax linter is desirable. Until then, track the number of such exceptions as technical debt. --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/naming.20convention.20linter/with/570617527) Note to self: wait for CI, then do a final nolints update. and try to implement the follow-up soon [](https://gitpod.io/from-referrer/) | t-linter large-import awaiting-author merge-conflict | 1018/9 | Mathlib/Tactic/Linter/Style.lean,MathlibTest/DoubleUnderscore.lean,MathlibTest/HashLint.lean,MathlibTest/Lint.lean,MathlibTest/LintStyle.lean,scripts/nolints.json,scripts/technical-debt-metrics.sh | 7 | 27 | ['Vierkantor', 'github-actions', 'grunweg', 'joneugster', 'mathlib-merge-conflicts'] | joneugster | 3 days ago | 13 days ago | 13 days |
| 34519 | grunweg | feat: environment linter for definitions containing an underscore | This is almost certainly a violation of the naming convention. In the medium-term, this should become a syntax linter: at the moment, there are too many exceptions in mathlib. Making this an environment linter allows auto-generating a list of existing exceptions. We track the number of violations as a technical debt metric. --- TODO: wait for CI to rebuild mathlib, then update nolints locally [Zulip topic](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/naming.20convention.20linter/with/570617527) [](https://gitpod.io/from-referrer/) | t-linter CI large-import awaiting-author merge-conflict | 650/4 | Mathlib/Tactic/Linter/Style.lean,MathlibTest/HashLint.lean,scripts/nolints.json,scripts/technical-debt-metrics.sh | 4 | 28 | ['adomani', 'b-mehta', 'github-actions', 'grunweg', 'joneugster', 'mathlib-merge-conflicts', 'plp127', 'vlad902'] | b-mehta and joneugster | 3 days ago | 34 days ago | 21 minutes |
| 35072 | vasnesterov | feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for `Seq`: `FriendlyOperation` API | This is a continuation of #34311. This PR adds more API about friendly operations: * `FriendlyOperation.destruct`: a "coinductive destructor" for `FriendlyOperation` * `FriendlyOperation.coind`: a coinductive principle for proving that operation is friendly * `FriendlyOperationClass.eq_of_bisim`: a generalisation of `Seq.eq_of_bisim'` for proving two sequences are equal. --- This is a part of the `compute_asymptotics` tactic (#28291). [](https://gitpod.io/from-referrer/) | t-data t-meta awaiting-author | 299/0 | Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean | 1 | 27 | ['Vierkantor', 'github-actions', 'joneugster'] | joneugster | 3 days ago | 3 days ago | 13 days |
| 35774 | astrainfinita | chore: use `IsLUB` `IsGLB` in `ConditionallyCompleteLattice` | --- [](https://gitpod.io/from-referrer/) | t-order | 142/197 | Mathlib/Algebra/Tropical/Lattice.lean,Mathlib/Data/Int/ConditionallyCompleteOrder.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Copy.lean | 9 | 8 | ['astrainfinita', 'github-actions', 'vihdzp'] | nobody | 3 days ago | 3 days ago | 6 days |
| 35098 | b-mehta | feat(Analysis/Normed): relate compactness of operators to locally compact spaces | --- [](https://gitpod.io/from-referrer/) | t-analysis | 16/1 | Mathlib/Analysis/Normed/Module/FiniteDimension.lean | 1 | 8 | ['b-mehta', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts'] | j-loreaux | 3 days ago | 3 days ago | 8 days |
| 34050 | Julian | feat(GraphTheory): Graham-Pollak theorem | --- [](https://gitpod.io/from-referrer/) | WIP awaiting-author t-combinatorics | 189/7 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/EdgeLabeling.lean,Mathlib/Combinatorics/SimpleGraph/GrahamPollak.lean | 4 | 1 | ['github-actions'] | nobody | 3 days ago | unknown | unknown |
| 35337 | Thmoas-Guan | feat(RingTheory): some lemma about span rank | In this PR, we proved that for local ring `(R,m)`, the span rank of `M` is equal to dimension of `M/mM` over `R/m` when `M` is fg. --- [](https://gitpod.io/from-referrer/) | t-ring-theory awaiting-author | 121/7 | Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean | 4 | 14 | ['Thmoas-Guan', 'chrisflav', 'erdOne', 'github-actions'] | chrisflav | 3 days ago | 3 days ago | 5 days |
| 35157 | Multramate | feat(RingTheory/AdjoinRoot): add IsFractionRing for AdjoinRoot | Co-authored-by: Sriram Chinthalagiri Venkata @sriram3301 This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025. --- [](https://gitpod.io/from-referrer/) | t-ring-theory t-algebra awaiting-author | 36/0 | Mathlib/RingTheory/AdjoinRoot.lean | 1 | 6 | ['copilot-pull-request-reviewer', 'erdOne', 'github-actions'] | mattrobball | 3 days ago | 3 days ago | 16 days |
| 35769 | SnirBroshi | feat(Order/WellFounded): the cardinality of a set is an upper-bound for the amount of elements before the set's mex | The "mex" of a set is its minimum excluded value, see https://en.wikipedia.org/wiki/Mex_(mathematics) --- Extracted from #35669 [](https://gitpod.io/from-referrer/) | t-order | 19/0 | Mathlib/Order/WellFounded.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Ordinal/Basic.lean | 3 | 1 | ['github-actions'] | nobody | 3 days ago | 3 days ago | 6 days |
| 35893 | b-mehta | feat(Data/Nat/Choose/Lucas): add choose_mul_mul and choose_pow_mul_pow_mul modular congruence lemmas | --- [](https://gitpod.io/from-referrer/) | t-data | 32/1 | Mathlib/Data/Nat/Choose/Lucas.lean | 1 | 1 | ['github-actions'] | nobody | 3 days ago | 3 days ago | 3 days |
| 35798 | xroblot | feat(RamificationInertia): compute the degrees of the decomposition field and inertia field | --- - [ ] depends on: #35530 - [x] depends on: #35303 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-number-theory | 188/1 | Mathlib.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean | 6 | 3 | ['github-actions', 'joneugster', 'mathlib-dependent-issues'] | nobody | 3 days ago | unknown | unknown |
| 35800 | xroblot | feat(RamificationInertia): decomposition fields and inertia fields are unique (up to isomorphism) | --- - [ ] depends on: #35303 - [ ] depends on: #35797 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR merge-conflict t-number-theory | 205/1 | Mathlib.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean,Mathlib/RingTheory/Ideal/Pointwise.lean | 5 | 4 | ['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 3 days ago | unknown | unknown |
| 35889 | JovanGerb | test: set `proj := .no` in `RefinedDiscrTree` | This PR is a test to see the impact of setting `proj := .no` in the refined discrimination tree. The motivation is that we want to be able to index theorems like `Fin.val_mk` in a meaningful way in the discrimination tree. This doesn't work when we reduce projections during indexing. --- [](https://gitpod.io/from-referrer/) | t-meta | 3/1 | Mathlib/Lean/Meta/RefinedDiscrTree.lean,Mathlib/Lean/Meta/RefinedDiscrTree/Initialize.lean | 2 | 2 | ['github-actions', 'mathlib-bors'] | nobody | 3 days ago | unknown | unknown |
| 34773 | semaraugusto | feat(InformationTheory): add Shannon entropy for probability mass functions | Add Shannon entropy for probability mass functions This PR defines the Shannon entropy of a probability mass function as an ℝ-valued infinite sum using `Real.negMulLog`, and proves basic properties and standard computations. Main results include: * entropy is nonnegative; * entropy vanishes iff the PMF is deterministic (`PMF.pure`); * entropy is strictly positive for non-pure PMFs; * entropy of a Bernoulli PMF coincides with `Real.binEntropy`; * entropy of uniform distributions is `log` of the cardinality, both for `PMF.uniformOfFintype` and `PMF.uniformOfFinset`. Several small helper lemmas isolate technical arguments about supports, coercions from `ℝ≥0∞`, and bounds on infinite sums, in order to keep the main proofs readable. See the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/generic.20shannon.20entropy.20formalization.20mathlib4/with/570643335). --- I used ChatGPT for some proof structuring and refactoring suggestions, but all proofs were manually checked and adapted. I verified the arguments and adjusted naming and structure to follow mathlib conventions. The proof of shannonEntropy_eq_log_card_sub_toReal_klDiv_uniformOfFintype and some of its helper lemmas were initially generated using Codex. I manually reviewed the generated proof, checked each step, and refactored the code and naming to follow mathlib conventions. [](https://gitpod.io/from-referrer/) | new-contributor awaiting-author | 417/0 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean,Mathlib/InformationTheory/Entropy.lean | 3 | 13 | ['adomasbaliuka', 'dupuisf', 'github-actions', 'mathlib-merge-conflicts', 'mattrobball', 'semaraugusto', 'wwylele'] | dupuisf and sgouezel | 3 days ago | 19 days ago | 9 days |
| 34963 | Parcly-Taxel | feat(Archive): proof of the Robbins conjecture | Cf. [#mathlib4 > Alternative axiomatization of boolean algebras @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Alternative.20axiomatization.20of.20boolean.20algebras/near/558900960) and #31924. | t-algebra | 610/0 | Archive.lean,Archive/Robbins.lean | 2 | 1 | ['github-actions'] | dwrensha | 3 days ago | 23 days ago | 24 days |
| 35535 | mariainesdff | feat(RingTheory/ClassGroup): prove mulEquiv | We prove that isomorphic rings have isomorphic class groups. Co-authored by: @xgenereux. --- [](https://gitpod.io/from-referrer/) | t-ring-theory awaiting-author | 257/8 | Mathlib/Algebra/Ring/CompTypeclasses.lean,Mathlib/RingTheory/ClassGroup.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean,Mathlib/RingTheory/LocalProperties/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean | 6 | 25 | ['erdOne', 'eric-wieser', 'github-actions', 'mariainesdff', 'mathlib-merge-conflicts', 'tb65536'] | nobody | 3 days ago | 3 days ago | 7 days |
| 35826 | quangvdao | feat(Probability/ProbabilityMassFunction): total variation distance and MetricSpace instance | Define total variation distance on probability mass functions, provide
a `MetricSpace` instance, and prove the data processing inequality.
The extended TV distance `PMF.etvDist` is defined in `ℝ≥0∞` as
`(1/2) ∑ x, absDiff (p x) (q x)`, using a new symmetric absolute
difference `ENNReal.absDiff`. The real-valued `PMF.tvDist` is its
`toReal`.
New definitions:
- `ENNReal.absDiff`: symmetric absolute difference `(a - b) + (b - a)`
- `PMF.etvDist`: extended total variation distance
- `PMF.tvDist`: real-valued total variation distance
- `PMF.instMetricSpace`: `MetricSpace` instance on `PMF α`
Main results:
- `ENNReal.absDiff_triangle`: triangle inequality for `absDiff`
- `ENNReal.absDiff_tsum_le`: subadditivity over infinite sums
- `PMF.etvDist_le_one`: TV distance is at most 1
- `PMF.etvDist_map_le`: data processing inequality (deterministic maps)
- `PMF.etvDist_bind_right_le`: data processing inequality (Markov kernels)
- `PMF.etvDist_option_punit`: closed form for binary distributions
Supersedes #33680 with a complete, sorry-free implementation.
See Zulip discussion:
|
t-measure-probability | 449/0 | Mathlib.lean,Mathlib/Data/ENNReal/AbsDiff.lean,Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean | 3 | 5 | ['BoltonBailey', 'github-actions', 'joneugster', 'quangvdao'] | nobody | 3 days ago | unknown | unknown |
| 33363 | BoltonBailey | feat: add `empty_eq_image` simp lemmas | Creates new simp lemmas `empty_eq_image`, similar to existing simp lemmas, but with the LHS equality reversed, so that simp can identify these when in this form. --- [](https://gitpod.io/from-referrer/) | t-data | 26/0 | Mathlib/Data/Finset/Image.lean,Mathlib/Data/Multiset/MapFold.lean,Mathlib/Data/Option/Basic.lean,Mathlib/Data/Set/Image.lean,Mathlib/Order/Filter/Map.lean | 5 | 7 | ['BoltonBailey', 'github-actions', 'joneugster', 'urkud'] | joneugster and urkud | 3 days ago | 3 days ago | 33 days |
| 34678 | joneugster | feat(scripts/autolabel): add dependencies for `t-ring-theory` | these changes are motivated by clearing the [triage queue: PRs without topic label](https://leanprover-community.github.io/queueboard/triage.html#unlabelled): about 60-70% of unlabelled PRs were `feat(RingTheory/...)` which also modified stuff falling under `t-algebra`, `t-group-theory` or `t-data`. - [ ] depends on: #34066 --- [](https://gitpod.io/from-referrer/) | CI | 23/5 | scripts/autolabel.lean | 1 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 3 days ago | 30 days ago | 1 minute |
| 34078 | joneugster | feat(scripts/autolabel): add label dependencies for better automatic label assignment | --- This is a tracking-PR containing the complete list of proposed labels. As there might be room for discussion about these settings, there will be smaller PRs adding these dependencies in smaller batches. - [ ] depends on: #34948 - [x] depends on: #34949 - [ ] depends on: #34066 - [ ] depends on: #34079 - [ ] depends on: #34677 - [ ] depends on: #34678 - [ ] depends on: #34952 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR CI | 88/34 | scripts/autolabel.lean | 1 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 3 days ago | unknown | unknown |
| 35315 | mkaratarakis | feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 3/5) | --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 26/0 | Mathlib/Analysis/Analytic/Order.lean | 1 | 6 | ['SnirBroshi', 'github-actions', 'j-loreaux', 'mkaratarakis'] | j-loreaux | 3 days ago | 3 days ago | 16 days |
| 35317 | mkaratarakis | feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 5/5) | --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor t-analysis | 62/0 | Mathlib/Analysis/Complex/CauchyIntegral.lean | 1 | 7 | ['MichaelStollBayreuth', 'github-actions', 'mkaratarakis'] | MichaelStollBayreuth | 3 days ago | 3 days ago | 16 days |
| 34952 | 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 |
CI merge-conflict | 85/72 | .github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean | 2 | 3 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 3 days ago | 17 days ago | 22 hours |
| 35439 | harahu | chore(RingTheory): fix indentation in markdown lists | Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 94/88 | Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DividedPowers/Basic.lean,Mathlib/RingTheory/DividedPowers/DPMorphism.lean,Mathlib/RingTheory/DividedPowers/RatAlgebra.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Extension/Basic.lean,Mathlib/RingTheory/Flat/EquationalCriterion.lean,Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean,Mathlib/RingTheory/IdealFilter/Topology.lean,Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean,Mathlib/RingTheory/Jacobson/Artinian.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Expand.lean,Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean,Mathlib/RingTheory/MvPowerSeries/Order.lean,Mathlib/RingTheory/NormalClosure.lean,Mathlib/RingTheory/Perfectoid/BDeRham.lean,Mathlib/RingTheory/Perfectoid/FontaineTheta.lean,Mathlib/RingTheory/PolynomialLaw/Basic.lean,Mathlib/RingTheory/PowerSeries/PiTopology.lean,Mathlib/RingTheory/ReesAlgebra.lean,Mathlib/RingTheory/RingHom/FiniteType.lean,Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean,Mathlib/RingTheory/WittVector/TeichmullerSeries.lean,Mathlib/RingTheory/ZMod/UnitsCyclic.lean | 26 | 6 | ['erdOne', 'github-actions', 'harahu', 'mathlib-merge-conflicts'] | erdOne | 3 days ago | 3 days ago | 12 days |
| 35272 | jvanwinden | feat(Topology/Instances/EReal): limsup of multiplication by a constant | add an analogue of `limsup_const_mul_of_ne_top` which applies to `EReal` instead of `ENNReal` --- [](https://gitpod.io/from-referrer/) | t-topology new-contributor | 28/0 | Mathlib/Topology/Instances/EReal/Lemmas.lean | 1 | 13 | ['github-actions', 'j-loreaux', 'jvanwinden', 'mathlib-merge-conflicts', 'vihdzp'] | j-loreaux | 3 days ago | 3 days ago | 7 days |
| 35892 | vlad902 | feat(Data): lemmas for `List.bagInter` | Basic API lemmas for `List.bagInter` and correct a few misnamed lemmas.
Co-authored-by: Aristotle (Harmonic) |
t-data | 60/5 | Mathlib/Data/List/Lattice.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/Multiset/UnionInter.lean | 3 | 1 | ['github-actions'] | nobody | 3 days ago | 3 days ago | 3 days |
| 35376 | michaellee94 | feat(Geometry/Manifold): orientable manifolds | --- - [ ] depends on: #33189 [](https://gitpod.io/from-referrer/) | new-contributor WIP t-differential-geometry merge-conflict | 2116/11 | Mathlib.lean,Mathlib/Geometry/Manifold/Instances/MoebiusBand.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean,Mathlib/Geometry/Manifold/Orientation.lean,Mathlib/Topology/Closure.lean | 7 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 3 days ago | unknown | unknown |
| 33406 | dupuisf | feat: add basics of majorization | This PR defines [majorization](https://en.wikipedia.org/wiki/Majorization). This is needed to develop the theory of unitarily invariant norms on `ℂ^n`, in particular Schatten norms. --- - [ ] depends on: #33394 [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author WIP | 752/13 | Mathlib.lean,Mathlib/Analysis/Convex/Majorization/Basic.lean,Mathlib/Analysis/Convex/Majorization/Defs.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Order/Interval/Finset/Fin.lean,docs/references.bib | 9 | 10 | ['dupuisf', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | j-loreaux | 3 days ago | 7 days ago | 8 days |
| 33188 | BryceT233 | feat(RingTheory/MvPowerSeries): introduce rename | This file establishes the `rename` operation on multivariate power series under a map with finite fibers, which modifies the set of variables. This file is patterned after `MvPolynomials/Rename.lean` --- [](https://gitpod.io/from-referrer/) | new-contributor t-ring-theory large-import | 414/1 | Mathlib.lean,Mathlib/Data/Finsupp/Antidiagonal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/Order/Filter/Cofinite.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean | 8 | 36 | ['BryceT233', 'Komyyy', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] | erdOne and riccardobrasca | 3 days ago | 3 days ago | 46 days |
| 32374 | adamtopaz | feat(Tactic/WildcardUniverse): Foo.{*, _, v*, max u v} | This PR creates an elaborator for syntax of the form `Foo.{*, _, v*, max u v}`. A `*` indicates that a new universe parameter should be created, `_` and `max u v` elaborate using the existing level elaboration (so `_` elaborates to a level mvar). The syntax `v*` creates a level parameter of the form `v_n` for some value of `n`.
The newly created level parameters are ordered in a particular way to match the order in which they appear in the syntax. For example, in `Foo.{*, _, v*, max u v}`, the level parameter associated with `*` will come before the other universes, including the parameter created by `v*`, and the parameters `u` and `v`. Similarly the parameter associated with `v*` will come *after* the one for `*`, and before both `u` and `v`.
Note: Unlike `Category* C`, where we understand exactly how the universes involved in `C` (both in the term and its type) relate to the level parameter of the morphisms, we can't expect such precise control in general. For example, when `C.{u} : Type 0`, `Category* C` places the morphism level `v_1` before `u`, but `Category.{*} C` places it after `u`. In other words, `Foo.{...}` only reorders the level parameters based on the parameters that appear in the (elaborated) `...`, without any regard to the universes that appear in the *arguments* to `Foo.{...}`.
Co-authored-by: Claude |
t-meta awaiting-author WIP | 720/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/WildcardLevel.lean,MathlibTest/WildcardLevel.lean | 4 | 52 | ['JovanGerb', 'adamtopaz', 'fpvandoorn', 'github-actions', 'leanprover-radar'] | JovanGerb and dwrensha | 3 days ago | 21 days ago | 63 days |
| 34246 | staroperator | feat(SetTheory/Cardinal): Δ-system lemma | We prove the Δ-system lemma, which says for any regular cardinal `θ` and infinite cardinal `κ < θ`, if `∀ c < θ, c ^< κ < θ`, any `θ`-sized family of sets whose cardinalities are less than `κ` must contain a `θ`-sized Δ-system (this condition is called Δ-system property for `θ` and `κ`, noted as `Δ(θ, k)`). As a special case, `Δ(ℵ₁, ℵ₀)` ensures any uncountable family of finite sets must contain an uncountable Δ-system. --- [](https://gitpod.io/from-referrer/) | t-set-theory | 384/0 | Mathlib.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/DeltaSystem.lean,Mathlib/SetTheory/Cardinal/Pigeonhole.lean,docs/references.bib | 6 | 1 | ['github-actions'] | alreadydone | 3 days ago | 9 days ago | 9 days |
| 34621 | homeowmorphism | feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ` | feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ`. Originally, the PR showed that `FreeGroup Empty ≃* Unit` and `FreeGroup α ≃* Multiplicative ℤ`. During the review process, I was asked to generalized `Unit` to any `Unique` type and `Empty` to `IsEmpty`. Through working on this, it has been realized that the pre-existing `FreeGroup Empty ≃ Unit` should be deprecated using `Equiv.ofUnique` and a multiplicative version `FreeGroup Empty ≃* Unit` can be obtained similarly using `MulEquiv.ofUnique` and there was no need to explicitly upgrade the equivalence. The title has been changed to reflect this. This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236. --- [](https://gitpod.io/from-referrer/) | t-group-theory new-contributor | 45/6 | Mathlib/GroupTheory/FreeGroup/Basic.lean | 1 | 39 | ['b-mehta', 'copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'kbuzzard', 'tb65536'] | riccardobrasca | 3 days ago | 15 days ago | 22 days |
| 35528 | euprunin | chore: golf using `grind` | The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <20 ms considered measurement noise): * `CochainComplex.HomComplex.mem_coboundaries_iff`: <20 ms before, 43 ms after * `Affine.Simplex.Scalene.dist_ne`: unchanged 🎉 * `List.next_getLast_cons`: unchanged 🎉 * `AbsolutelyContinuousOnInterval.biUnion_uIoc_subset_of_mem_disjWithin`: unchanged 🎉 * `Filter.high_scores`: 109 ms before, 139 ms after This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 9/55 | Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/Data/List/Cycle.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/Order/Filter/AtTopBot/Finite.lean | 6 | 1 | ['github-actions', 'vihdzp'] | adamtopaz | 3 days ago | 12 days ago | 12 days | |
| 35567 | goliath-klein | refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Golfs | This PR cleans up the proofs in Analysis/Normed/Module/PiTensorProduct/{InjectiveSeminorm.lean, ProjectiveSeminorm.lean} In addition, it performs the following minor structural changes: * Weaken assumptions from `NontriviallyNormedField 𝕜` to `NormedField 𝕜` where possible * The proofs showing that `projectiveSeminorm` actually defines a `Seminorm` are split off into separate lemmas. This mimics the idiom used e.g. in `Analysis.Normed.Modula.Operator.Basic` to define the operator norm. * Register a `Nonempty x.lifts` instance in PiTensorProduct.lean, to avoid creating a half-dozen local instances. This is the first 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). --- Co-authored-by: Davood H. T. Tehrani [](https://gitpod.io/from-referrer/) | maintainer-merge new-contributor | 101/158 | Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean | 3 | 10 | ['github-actions', 'goliath-klein', 'leanprover-radar', 'tb65536'] | sgouezel | 3 days ago | 11 days ago | 11 days |
| 35745 | khwilson | feat(Mathlib/Analysis/Asymptotics/Defs): congr lemmas for IsBigO* | This PR primarily provides two calculational lemmas that are commonly used in bounding functions. First, it provides `IsBigO*.sum_congr`. This theorem allows the user to bound each term of a (finite) sum individually. This is different than `IsBigO.sum` which requires all terms to be bound by the _same_ function. Second, it provides `IsBigO*.sum_congr'`. This theorem allows the user to bound the terms of a sum individually _when the length of the sum changes with respect to the running variable_. This is a common setup with certain techniques such as the method of the hyperbola. Note: This makes the overall length of this file go above 1500 lines. I'm happy to break it up at the request of reviewers, but that's a bigger change to the API. AI Usage: Looking up various lemma names in Google Gemini. --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 92/1 | Mathlib/Analysis/Asymptotics/Defs.lean | 1 | 2 | ['github-actions'] | j-loreaux | 3 days ago | 7 days ago | 7 days |
| 35767 | kebekus | feat: asymptotics of the `logCounting` function of Value Distribution Theory | If `f` is meromorphic over a field `𝕜`, show that the logarithmic counting function for the poles of `f` is asymptotically bounded if and only if `f` has only removable singularities. --- [](https://gitpod.io/from-referrer/) | t-analysis | 150/0 | Mathlib.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean | 2 | 1 | ['github-actions'] | j-loreaux | 3 days ago | 6 days ago | 6 days |
| 35771 | euprunin | chore: golf using `exact` | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `IsBaseChange.comp`: 132 ms before, 98 ms after 🎉 * `Cardinal.powerlt_aleph0`: unchanged 🎉 * `ONote.fastGrowing_one`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 3/11 | Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Notation.lean | 3 | 1 | ['github-actions', 'vihdzp'] | EtienneC30 | 3 days ago | 6 days ago | 6 days | |
| 35763 | kim-em | chore(scripts): make rm_set_option cache opt-in via --resume | This PR changes `scripts/rm_set_option.py` so the progress cache is only used when explicitly requested via `--resume`, rather than being on by default (with `--no-resume` to disable). The previous default was unsafe: the cache only checks that the target module's own SHA256 is unchanged, so edits to upstream modules between runs would be silently ignored, causing the script to skip modules that should be reprocessed. 🤖 Prepared with Claude Code | 4/4 | scripts/README.md,scripts/rm_set_option.py | 2 | 1 | ['github-actions'] | nobody | 3 days ago | 6 days ago | 6 days | |
| 33506 | Rida-Hamadani | feat(SimpleGraph): construct a cycle of two distinct paths with same start and end | Co-authored-by: Vlad Tsyrklevich |
t-combinatorics awaiting-author | 124/1 | Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Traversal.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Nodup.lean | 5 | 11 | ['Rida-Hamadani', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'vlad902'] | nobody | 3 days ago | 4 days ago | 2 days |
| 35858 | vihdzp | doc(SetTheory/Ordinal/Arithmetic): improve documentation | This PR does the following: - Use better variable names in the docs (instead of just variants of the letter `o`). - Remove mentions of things defined in other files, or specify that they are defined on other files. --- [](https://gitpod.io/from-referrer/) | documentation t-set-theory | 14/21 | Mathlib/SetTheory/Ordinal/Arithmetic.lean | 1 | 3 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 3 days ago | 3 days ago | 4 days |
| 35905 | Jun2M | feat(Combinatorics/Graph): Add definitions for small graphs (noEdge, bouquet, banana) | This pull request adds new constructors and supporting lemmas for special types of graphs in the `Mathlib/Combinatorics/Graph/Basic.lean` file. It introduces: * `Graph.noEdge V`: The graph with vertex set V and empty edge set. * `Graph.bouquet v E`: The graph with vertex set {v} and edge set E, where all edges are loops at v. * `Graph.banana u v E`: The graph with vertex set {u, v} and edge set E, where all edges connect u and v. along with various properties and characterizations for these graphs. Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com) --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 126/0 | Mathlib/Combinatorics/Graph/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 3 days ago | 3 days ago | 3 days |
| 35907 | JJYYY-JJY | fix(Topology/Defs/Basic): preserve noncanonical topology instances in delaboration | Preserve noncanonical topology instances in delaboration. Restore local instances before checking whether topology arguments can be omitted during delaboration, and print `IsOpen[t]`, `IsClosed[t]`, `closure[t]`, and `Continuous[t₁, t₂]` when the topology instances are not canonical in the current local-instance context. Previously, pretty-printing could silently drop noncanonical topology arguments, so declarations such as `LinearMap.mem_span_iff_continuous_of_finite` were rendered as if they used the default topology. Closes #33238 | t-topology new-contributor | 111/0 | Mathlib/Topology/Defs/Basic.lean,MathlibTest/TopologyNonstandardNotation.lean | 2 | 4 | ['copilot-pull-request-reviewer', 'github-actions'] | nobody | 3 days ago | 3 days ago | 3 days |
| 35908 | vihdzp | chore(FieldTheory/AbelRuffini): simpler definition of `solvableByRad` | We redefine `solvableByRad F E` as the smallest intermediate field closed under n-th roots. This makes the predicate `IsSolvableByRad` redundant, and so we deprecate it. We also private/remove various auxiliary results, and change the statement of the Abel-Ruffini theorem to be about an element of the field, rather than the subtype. --- [](https://gitpod.io/from-referrer/) | t-algebra | 134/164 | Archive/Wiedijk100Theorems/AbelRuffini.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/FieldTheory/AbelRuffini.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean | 4 | 5 | ['github-actions', 'plp127', 'vihdzp'] | nobody | 3 days ago | 2 days ago | 3 days |
| 35665 | BryceT233 | feat(RingTheory/AdicCompletion): introduce AdicCompletion.finsuppSum | This is split from #34936 to make the review process easier. It introduces `AdicCompletion.finsuppSum`, which is a `Finsupp` version of `AdicCompletion.sum`. --- - [x] depends on: #35595 [](https://gitpod.io/from-referrer/) | new-contributor t-ring-theory | 93/0 | Mathlib/LinearAlgebra/Finsupp/LSum.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean | 2 | 4 | ['github-actions', 'joneugster', 'mathlib-dependent-issues'] | nobody | 2 days ago | 2 days ago | 8 days |
| 35910 | LLaurance | chore(Probability): remove deprecated items, shorten proofs | Remove deprecated items, shorten proofs, use dot notation where possible, style --- [](https://gitpod.io/from-referrer/) | t-measure-probability | 63/129 | Mathlib/Probability/Distributions/Exponential.lean,Mathlib/Probability/Distributions/Gamma.lean,Mathlib/Probability/Distributions/Geometric.lean,Mathlib/Probability/Distributions/Pareto.lean,Mathlib/Probability/Distributions/Poisson.lean,Mathlib/Probability/Distributions/Uniform.lean | 6 | 1 | ['github-actions'] | nobody | 2 days ago | 2 days ago | 2 days |
| 35911 | grunweg | chore: generalise local extensions to any local frame | One proof breaks again; one stupid design question comes up which requires some thought. --- - [ ] depends on: #30339 [](https://gitpod.io/from-referrer/) | WIP t-differential-geometry blocked-by-other-PR | 167/3 | Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean | 1 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 2 days ago | unknown | unknown |
| 32033 | Thmoas-Guan | feat(Algebra): injective dimension equal supremum of localized module | In this PR, we proved that for module over Noetherian ring, projective dimension is equal to the supremum of injective dimension of localized modules over all prime/maximal ideals. --- - [ ] depends on: #31995 - [ ] depends on: #31998 [](https://gitpod.io/from-referrer/) | large-import t-algebra merge-conflict | 363/9 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/Injective.lean,Mathlib/RingTheory/LocalProperties/Injective.lean,Mathlib/RingTheory/LocalProperties/InjectiveDimension.lean | 6 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 2 days ago | 2 days ago | 35 minutes |
| 32035 | Thmoas-Guan | feat(RingTheory): localization of Gorenstein local ring | In this PR, we proved that localization of Gorenstein local ring at prime is again Gorenstein. --- - [ ] depends on: #31884 - [ ] depends on: #32033 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-ring-theory large-import merge-conflict | 1350/10 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Ulift.lean,Mathlib/Algebra/Category/ModuleCat/InjectiveDimension.lean,Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Bijection.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/Injective.lean,Mathlib/RingTheory/Gorenstein/Basic.lean,Mathlib/RingTheory/Gorenstein/Defs.lean,Mathlib/RingTheory/LocalProperties/Injective.lean,Mathlib/RingTheory/LocalProperties/InjectiveDimension.lean | 16 | 8 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 days ago | unknown | unknown |
| 30658 | grunweg | feat: extend the `whitespace` linter to proof bodies | --- - [x] depends on: #30663 - [x] depends on: #30685 - [x] depends on: #30687 - [x] depends on: #30688 - [x] depends on: #30689 - [x] depends on: #30691 - [x] depends on: #30723 - [x] depends on: #30724 - [x] depends on: #30725 - [x] depends on: leanprover/lean4#11780 - [x] depends on: leanprover/lean4#12006 - [ ] depends on: leanprover/lean4#11686 - [x] depends on: #33705 - [x] depends on: #33706 - [x] depends on: #33716 - [x] depends on: #33234 - [x] depends on: #33342 - [x] depends on: #33708 - [x] depends on: #33758 - [x] depends on: #33759 - [x] depends on: #33789 - [x] depends on: #33815 - [x] depends on: #33816 - [ ] depends on: #35909 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-linter | 2088/540 | Archive/Imo/Imo2010Q5.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Counterexamples/CliffordAlgebraNotInjective.lean,Counterexamples/HeawoodUnitDistance.lean,Mathlib/Algebra/AffineMonoid/Basic.lean,Mathlib/Algebra/Category/Grp/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/Stalk.lean,Mathlib/Algebra/Category/Ring/Basic.lean,Mathlib/Algebra/Homology/SpectralSequence/Basic.lean,Mathlib/Algebra/Lie/SemiDirect.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/TransferInstance.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/AlgebraicGeometry/ColimitsOver.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean,Mathlib/AlgebraicGeometry/Group/Abelian.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean,Mathlib/AlgebraicGeometry/Normalization.lean,Mathlib/AlgebraicGeometry/Restrict.lean,Mathlib/AlgebraicGeometry/Spec.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/AlgebraicGeometry/ZariskisMainTheorem.lean,Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean,Mathlib/AlgebraicTopology/ModelCategory/FibrantObjectHomotopy.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStructTruncated.lean,Mathlib/AlgebraicTopology/SimplicialSet/Path.lean,Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Complex/Periodic.lean,Mathlib/Analysis/Complex/Poisson.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/Analysis/InnerProductSpace/Harmonic/HarmonicContOnCl.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Group/Bounded.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/Analysis/Real/Pi/Bounds.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Digamma.lean,Mathlib/CategoryTheory/Comma/Over/OverClass.lean,Mathlib/CategoryTheory/Limits/FunctorCategory/BinaryBiproducts.lean,Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackObjObj.lean,Mathlib/CategoryTheory/Monoidal/Action/Basic.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean,Mathlib/CategoryTheory/RegularCategory/Basic.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataPrime.lean,Mathlib/CategoryTheory/Triangulated/TStructure/AbelianSubcategory.lean,Mathlib/Combinatorics/SetFamily/LYM.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/Language.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Data/DFinsupp/Notation.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Fin/Fin2.lean,Mathlib/Data/Finset/Slice.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Matrix/Cartan.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Num/Bitwise.lean,Mathlib/Data/PNat/Xgcd.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/Vector/MapLemmas.lean,Mathlib/FieldTheory/CardinalEmb.lean,Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Laurent.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/GroupTheory/Focal.lean,Mathlib/GroupTheory/GroupAction/OfQuotient.lean,Mathlib/InformationTheory/Coding/KraftMcMillan.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/LinearAlgebra/TensorPower/Symmetric.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/PullOut.lean,Mathlib/MeasureTheory/Function/ConditionalLExpectation.lean,Mathlib/MeasureTheory/Function/LpSeminorm/LpNorm.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean,Mathlib/MeasureTheory/Integral/TorusIntegral.lean,Mathlib/MeasureTheory/VectorMeasure/BoundedVariation.lean,Mathlib/ModelTheory/Syntax.lean,Mathlib/ModelTheory/Topology/Types.lean,Mathlib/NumberTheory/FactorisationProperties.lean,Mathlib/NumberTheory/ModularForms/DedekindEta.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Summable.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Transform.lean | 134 | 60 | ['SnirBroshi', 'adomani', 'github-actions', 'grunweg', 'leanprover-radar', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 2 days ago | unknown | unknown |
| 35912 | WenrongZou | feat(RingTheory/FormalGroup): definition and examples of formal group | --- Definition of one dimensional formal group law over commutative ring and some examples of formal group law. [](https://gitpod.io/from-referrer/) | t-ring-theory | 192/0 | Mathlib.lean,Mathlib/RingTheory/FormalGroup/Basic.lean | 2 | 1 | ['github-actions'] | nobody | 2 days ago | 2 days ago | 2 days |
| 35539 | xgenereux | feat(DedekindDomain/Factorization): add `iInf` version of `finprod_heightOneSpectrum_factorization` | This PR adds an `iInf` version of `finprod_heightOneSpectrum_factorization`. This requires two lemmas: - `prod_eq_iInf_of_coprime` - An `iInf` version of `mul_eq_inf_of_coprime`. - `HeightOneSpectrum.pow_sup_pow_eq_top` - Bundled up version of `Ideal.IsMaximal.coprime_of_ne` + `Ideal.pow_sup_pow_eq_top` for `HeightOneSpectrum`. ------ I noticed that these lemmas simplify a bit the work on the Chinese remainder theorem done in the file. The last commit of this PR is this simplification. I can remove it if this is not relevant. Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 73/42 | Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Operations.lean | 3 | 10 | ['erdOne', 'github-actions', 'xgenereux'] | chrisflav | 2 days ago | 2 days ago | 11 days |
| 34938 | peabrainiac | feat(Geometry/Manifold): interior and boundary are preserved by (local) diffeomorphisms | If `f` is a local diffeomorphism at `x`, `f x` is an interior point iff `x` is. We prove this and a bunch of corollaries, in particular that `BoundarylessManifold` is invariant under diffeomorphisms which we need for subsequent work. --- - [x] depends on: #33189 [](https://gitpod.io/from-referrer/) | t-differential-geometry | 133/5 | Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean | 2 | 8 | ['github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'peabrainiac'] | nobody | 2 days ago | 3 days ago | 3 days |
| 35705 | jdhart81 | feat(Data/ENNReal, Probability/Independence): division decomposition and self-independence | Two general-purpose lemmas extracted from a formal verification of "The Intelligence Bound" (Hart 2025). --- ### New lemmas - `ENNReal.div_eq_div_mul_div`: Division decomposition `a / c = a / b * (b / c)` when `b ≠ 0` and `b ≠ ⊤`. Added to `Mathlib.Data.ENNReal.Inv`. - `IndepFun.of_self`: If `Y` is independent of itself under a probability measure, then `X` and `Y` are independent. Self-independence implies `Y` is a.e. constant. Added to `Mathlib.Probability.Independence.Basic`. ### Context These lemmas arose in formalizing information-theoretic results where: - The ENNReal division identity is needed for decomposing rate expressions (limsup of ratios) - The self-independence result bridges entropy = 0 and measure-theoretic independence ### References - Formal verification: https://github.com/jdhart81/intelligence-bound-lean - Paper: "The Intelligence Bound" (Hart 2025) | new-contributor t-data | 47/0 | Mathlib/Data/ENNReal/Inv.lean,Mathlib/Probability/Independence/Basic.lean | 2 | 10 | ['SnirBroshi', 'github-actions', 'jdhart81', 'joneugster', 'kbuzzard'] | nobody | 2 days ago | 3 days ago | 7 days |
| 35734 | mkaratarakis | feat(NumberTheory): matrix bounds and Siegel's lemma application for Gelfond-Schneider | This PR is the second component in the formalization of the Gelfond-Schneider Theorem (Hilbert's Seventh Problem), establishing the transcendence of $\alpha^\beta$. Building on the algebraic setup from the previous PR #35733, this file establishes analytical bounds on the linear system matrix and applies Siegel's Lemma (Lemma 8.2) to extract a bounded, non-trivial integer solution vector. We establish the exact upper bounds required to construct the auxiliary integer function $R(x)$. `c₃` and Matrix Bounds (`house_matrixA_le`)**: We define the bounding constant $c_3$, which aggregates the base bounds $c_2$ and the maximal houses of the algebraic preimages $\alpha', \beta', \gamma'$. Through extensive algebraic manipulation, we formally prove that the house of the entries in our linear system matrix $A$ is strictly bounded by $c_3^n * n^{(n - 1) / 2}$. Using the bounds established above, we apply `house.exists_ne_zero_int_vec_house_le` (a formalization of Lemma 8.2, p. 490) to guarantee the existence of a non-trivial vector of algebraic integers $\eta$ in the kernel of $A$. We define the solution bounding constant $c_4$ and prove the textbook bound that the house of our resulting coefficient vector $\eta$ satisfies $\forall k, \|\eta_k\| \leq c_4^n * n^{(n + 1) / 2}$. - [ ] depends on: #35733 [](https://gitpod.io/from-referrer/) | new-contributor t-number-theory blocked-by-other-PR | 872/5 | Mathlib.lean,Mathlib/NumberTheory/NumberField/House.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlgSetup.lean | 4 | 3 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 2 days ago | unknown | unknown |
| 34477 | spanning-tree | refactor(Order): make CompletePartialOrder extend OrderBot | Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly. Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor. See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization). --- [](https://gitpod.io/from-referrer/) | t-order new-contributor | 15/1 | Mathlib/Order/CompletePartialOrder.lean | 1 | 3 | ['Citronhat', 'github-actions', 'mathlib-merge-conflicts'] | pechersky | 2 days ago | 2 days ago | 23 days |
| 35917 | dependabot | chore(deps): bump the actions-version-updates group across 1 directory with 7 updates | Bumps the actions-version-updates group with 7 updates in the /.github/workflows directory:
| Package | From | To |
| --- | --- | --- |
| [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) | `1.70.0` | `1.71.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `6.0.0` | `7.0.0` |
| [actions/download-artifact](https://github.com/actions/download-artifact) | `7.0.0` | `8.0.0` |
| [docker/build-push-action](https://github.com/docker/build-push-action) | `6.18.0` | `6.19.2` |
| [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) | `3.2.0` | `4.1.0` |
| [corentinmusard/otel-cicd-action](https://github.com/corentinmusard/otel-cicd-action) | `3.0.0` | `4.0.0` |
| [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) | `14` | `16` |
Updates `reviewdog/action-actionlint` from 1.70.0 to 1.71.0
Release notesSourced from reviewdog/action-actionlint's releases.
CommitsUpdates `actions/upload-artifact` from 6.0.0 to 7.0.0 Release notesSourced from actions/upload-artifact's releases.
CommitsUpdates `actions/download-artifact` from 7.0.0 to 8.0.0 Release notesSourced from actions/download-artifact's releases.
Commits
Updates `docker/build-push-action` from 6.18.0 to 6.19.2 Release notesSourced from docker/build-push-action's releases.
Commits
Updates `actions/attest-build-provenance` from 3.2.0 to 4.1.0 Release notesSourced from actions/attest-build-provenance's releases.
Commits
Updates `corentinmusard/otel-cicd-action` from 3.0.0 to 4.0.0 Release notesSourced from corentinmusard/otel-cicd-action's releases.
ChangelogSourced from corentinmusard/otel-cicd-action's changelog.
... (truncated) Commits
Updates `dawidd6/action-download-artifact` from 14 to 16 Release notesSourced from dawidd6/action-download-artifact's releases.
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and optionsYou can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show |
dependencies github_actions CI | 11/11 | .github/workflows/actionlint.yml,.github/workflows/build_template.yml,.github/workflows/docker_build.yml,.github/workflows/export_telemetry.yaml,.github/workflows/maintainer_bors.yml,.github/workflows/maintainer_bors_wf_run.yml,.github/workflows/maintainer_merge.yml,.github/workflows/maintainer_merge_wf_run.yml | 8 | 2 | ['bryangingechen', 'github-actions'] | nobody | 2 days ago | unknown | unknown |
| 35921 | grunweg | chore: remove some superfluous parens | Found by manually auditing the output of regex-searching for '\([A-Za-z0-9_][A-Za-z0-9_]+\)'. Most results are false positives (such as, documentation or export statements), a few are more interesting. Not exhaustive, I looked at perhaps a fifth or a tenth of all results. --- [](https://gitpod.io/from-referrer/) | t-algebra | 14/14 | Counterexamples/AharoniKorman.lean,Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pullback.lean,Mathlib/Algebra/Category/Ring/Basic.lean,Mathlib/Algebra/Group/Pointwise/Finset/BigOperators.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Lie/Semisimple/Lemmas.lean,Mathlib/Algebra/Order/Antidiag/Nat.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean | 11 | 1 | ['github-actions'] | nobody | 2 days ago | 2 days ago | 2 days |
| 33714 | idontgetoutmuch | feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II | Supersedes https://github.com/leanprover-community/mathlib4/pull/33519 --- [](https://gitpod.io/from-referrer/) | t-differential-geometry new-contributor | 680/0 | Mathlib.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean | 3 | 200 | ['github-actions', 'grunweg', 'idontgetoutmuch'] | grunweg | 2 days ago | 2 days ago | 16 days |
| 35879 | Jun2M | feat(Combinatorics/Graph): Add graph deletion operations | This PR adds definitions and basic lemmas for deleting edges and vertices from a graph in Mathlib/Combinatorics/Graph/Delete.lean. It introduces the following operations: - `G ↾ F` (edgeRestrict): The subgraph of G restricted to the edges in F (vertices are preserved). - `G \ F` (edgeDelete): The subgraph of G with the edges in F deleted. - `G[X]` (induce): The subgraph of G induced by the set of vertices X. - `G - X` (vertexDelete): The graph obtained from G by deleting the set of vertices X. These definitions are accompanied by simp lemmas describing their edge sets, incidence relations, and basic properties such as monotonicity. Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com) --- - [ ] depends on: #26770 [](https://gitpod.io/from-referrer/) | t-combinatorics blocked-by-other-PR | 534/0 | Mathlib.lean,Mathlib/Combinatorics/Graph/Delete.lean,Mathlib/Combinatorics/Graph/Subgraph.lean | 3 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 2 days ago | unknown | unknown |
| 34875 | banrovegrie | feat(LinearAlgebra/Matrix): add Sherman-Morrison formula | Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap. - Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}` - Add `Matrix.inv_sub_vecMulVec`: subtraction variant - Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses ## Test plan - [x] `lake build` passes - [x] Lines within 100 char limit - [x] All declarations have docstrings | t-algebra new-contributor | 135/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean | 2 | 11 | ['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] | kim-em | 2 days ago | 24 days ago | 26 days |
| 26803 | bjoernkjoshanssen | feat: second partial derivatives test | We prove that if `f` is a real-valued function on `n`-dimensional Euclidean space with vanishing gradient at `x₀`, having a power series on a ball of positive radius around `x₀`, whose second Frechét derivative is positive definite at `x₀`, then `f` has local minimum at `x₀`. This project was started at the Lean for Mathematicians workshop hosted by the Simons Foundation in June 2025 in a group consisting of Bjørn Kjos-Hanssen, Erin Griffin, Asaf Kapota, and Janani Lakshmanan, see repo at https://github.com/bjoernkjoshanssen/secondpartial --- [](https://gitpod.io/from-referrer/) | t-analysis awaiting-author | 295/0 | Mathlib.lean,Mathlib/Analysis/Calculus/PartialDerivativeTest.lean,Mathlib/Analysis/Normed/Operator/NormedSpace.lean | 3 | 25 | ['bjoernkjoshanssen', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'themathqueen'] | j-loreaux | 2 days ago | 14 days ago | 9 days |
| 35916 | themathqueen | feat(Analysis/CStarAlgebra): `IsIdempotentElem a ↔ spectrum R a ⊆ {0, 1}` | ... also adds a tfae for `IsStarProjection` in C*-algebras and that if `star x * x` is idempotent then so is `x * star x`. --- [](https://gitpod.io/from-referrer/) | t-analysis large-import | 58/4 | Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean,Mathlib/Analysis/CStarAlgebra/Projection.lean | 3 | 2 | ['github-actions', 'themathqueen'] | nobody | 2 days ago | 2 days ago | 2 days |
| 35877 | yoh-tanimoto | feat(Algebra/Module): add twisted product module | add a module structure on the product `E × F` with the `SMul` given by `s • ⟨x, y⟩ := ⟨s • x, σ s • y⟩` with `σ : R →+* S`. motivation: needed to define the graph of antilinear operator, see [discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60SemilinearPMap.60/with/576208198), which will be needed in the Tomita-Takesaki theory cf. #29251 | t-algebra | 206/0 | Mathlib.lean,Mathlib/Algebra/Module/TwistedModuleProd.lean | 2 | 1 | ['github-actions'] | nobody | 2 days ago | unknown | unknown |
| 30339 | grunweg | feat: extend a tangent vector for a locally smooth vector field | Given a vector bundle `V` over `M` and a vector `X` in the fibre `E x` some point `x`, construct a section of `V` which is smooth near `x` and has value `X` at `x`. This will be used to prove the tensoriality of covariant derivatives. From the path towards geodesics and the Levi-Civita connection. Co-authored-by: Patrick Massot [patrickmassot@free.fr](mailto:patrickmassot@free.fr) --- Open questions I'd like a second opinion on: - should this definition be generalised to any local frame (on some set `U ∋ x`)? this would be easy; at the moment, I don't see how we would need that - should the new definition be namespaced, e.g. in the Trivialization namespace? - order of the explicit arguments: first e then b, or the other way around? might be resolved by the previous point - [x] depends on: #30083 [](https://gitpod.io/from-referrer/) | t-differential-geometry | 95/3 | Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean | 1 | 8 | ['github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'ocfnash'] | ocfnash | 2 days ago | 2 days ago | 2 days |
| 35700 | inaciovasquez2020 | MeasureTheory: introduce supportDrift for probability measures | Minimal mathlib-facing definition of with lemma. Clean-clone reproducibility verified. | t-measure-probability new-contributor | 119/0 | Mathlib/MeasureTheory/SupportDrift.lean,Mathlib/Physics/OperatorAnchor/CoerciveGap.lean,Mathlib/Physics/OperatorAnchor/SpectralGap.lean | 3 | 2 | ['github-actions'] | nobody | 2 days ago | unknown | unknown |
| 34649 | peabrainiac | feat(Analysis/Calculus/ContDiff): add notation `ℕ∞ω` for `WithTop ℕ∞` | Add a `ContDiff`-scoped notation `ℕ∞ω` for `WithTop ℕ∞`, accompanying the existing notations `∞` and `ω` for `(⊤ : ℕ∞) : ℕ∞ω` and `⊤ : ℕ∞ω`. --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/RFC.3A.20notation.20for.20.60WithTop.20.E2.84.95.E2.88.9E.60/near/573917824) I've also replaced `WithTop ℕ∞` with this new notation already in the files that mention it the most, but not in all files yet; many mention `WithTop ℕ∞` just a couple of times but don't open the `ContDiff` namespace. I'm not sure whether that should be taken as a sign to not make the notation scoped, or whether the solution is just to `open scoped ContDiff` in these files or not use the notation there. [](https://gitpod.io/from-referrer/) | t-differential-geometry t-analysis awaiting-author awaiting-zulip merge-conflict | 221/218 | Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean,Mathlib/Analysis/Calculus/ContDiff/Comp.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/Deriv.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean,Mathlib/Geometry/Manifold/Algebra/LieGroup.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean,Mathlib/Geometry/Manifold/Algebra/Structures.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/Geometry/Manifold/ContMDiff/Defs.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean | 28 | 5 | ['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'peabrainiac'] | sgouezel | 2 days ago | 21 days ago | 8 days |
| 34079 | joneugster | feat(scripts/autolabel): add dependencies for alg. geometry and diff. geometry | Add topic label dependencies: - "t-algebraic-geometry" -> "t-ring-theory" - "t-differential-geometry" -> "t-analysis" This means the bot will only apply the former if both would be applicable. --- - part of: #34078 - [ ] depends on: #34066 [](https://gitpod.io/from-referrer/) | CI awaiting-author | 21/4 | scripts/autolabel.lean | 1 | 7 | ['github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 2 days ago | unknown | unknown |
| 29982 | hrmacbeth | feat: new `isolate` tactic | This PR adds a new tactic, `isolate`, which "solves for x" in an equation or relation. For example: ```lean example (a b : ℝ) (f : ℝ → ℝ) : 5 * f a - 3 < b := by isolate f a -- new goal: `⊢ f a < (b + 3) / 5` ``` The `isolate` tactic may generate side goals, if these are necessary to justify the transformation. The tactic will attempt to justify such side goals using `positivity` (as in the above example), unification, or type class inference, but if unsuccessful will present them to the user. For example: ```lean example (a b c : ℝ) (f : ℝ → ℝ) : c * f a - 3 < b := by isolate f a -- new goal: `⊢ f a < (b + 3) / c` -- second (side) new goal: `⊢ 0 < c` ``` The `isolate` tactic is extensible. Coverage may be extended to new relations and new operations-to-be-undone by tagging appropriate lemmas with the new `@[isolate]` attribute. --- [](https://gitpod.io/from-referrer/) | large-import t-meta | 943/1 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Isolate.lean,Mathlib/Tactic/Isolate/Core.lean,Mathlib/Tactic/Isolate/Tagging.lean,Mathlib/Tactic/Relation/Symm.lean,MathlibTest/Isolate/Heavyweight.lean,MathlibTest/Isolate/Lightweight.lean,scripts/noshake.json | 12 | 45 | ['JovanGerb', 'PatrickMassot', 'Vierkantor', 'github-actions', 'hrmacbeth', 'kim-em', 'mathlib4-merge-conflict-bot'] | JovanGerb | 2 days ago | 2 days ago | 51 days |
| 35834 | homeowmorphism | feat(Mathlib/GroupTheory/PresentedGroup): every group has a presentation | We show that every group has a presentation defined by taking the free group with all of the group elements as the generators, and defining the relations as the kernel of the induced subjective homomorphism from that free group to the group itself. Use of AI: This has been vibe-coded with GPT-Codex-5.3, was updated through review, and was double-checked by the author. --- [](https://gitpod.io/from-referrer/) | new-contributor t-group-theory large-import | 29/1 | Mathlib/GroupTheory/PresentedGroup.lean | 1 | 12 | ['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'mathlib-bors', 'plp127', 'tb65536'] | nobody | 2 days ago | 2 days ago | 2 days |
| 35639 | vihdzp | chore(Order/SuccPred/Limit): use `to_dual` on everything that was missing | --- - [x] depends on: #34882 [](https://gitpod.io/from-referrer/) | maintainer-merge | 36/135 | Mathlib/Data/Fintype/Card.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/SuccPred/Limit.lean | 3 | 4 | ['JovanGerb', 'github-actions', 'mathlib-dependent-issues'] | adamtopaz | 2 days ago | 9 days ago | 9 days |
| 35944 | euprunin | chore: replace uses of `omega` with `lia` | As [previously discussed](https://github.com/leanprover-community/mathlib4/pull/32666), the plan is to migrate from `omega` to `lia`, the linear integer arithmetic component of `grind`. Trace profiling results (differences <30 ms considered measurement noise): * `AnalyticAt.analyticOrderAt_sub_eq_one_of_deriv_ne_zero`: 1094 ms before, 979 ms after 🎉 * `CategoryTheory.Pretriangulated.shiftFunctorCompIsoId_op_inv_app`: unchanged 🎉 * `Lagrange.leadingCoeff_eq_sum`: unchanged 🎉 * `Finset.intervalGapsWithin_snd_of_lt`: unchanged 🎉 * `Finset.intervalGapsWithin_le_fst`: unchanged 🎉 * `Ideal.exists_radical_pow_le_of_fg`: unchanged 🎉 * `PowerSeries.coeff_X_mul_largeSchroderSeriesSeries_sq`: unchanged 🎉 --- [](https://gitpod.io/from-referrer/) | 9/9 | Mathlib/Analysis/Analytic/Order.lean,Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/Order/Interval/Finset/Gaps.lean,Mathlib/RingTheory/Finiteness/Ideal.lean,Mathlib/RingTheory/PowerSeries/Schroder.lean | 6 | 1 | ['github-actions'] | nobody | 2 days ago | 2 days ago | 2 days | |
| 35325 | SnirBroshi | feat(SimpleGraph/Acyclic): `ENat.card V ≤ 2 → G.IsAcyclic` | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 26/3 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Data/Finite/Card.lean | 2 | 2 | ['Rida-Hamadani', 'github-actions'] | nobody | 2 days ago | 2 days ago | 16 days |
| 29251 | yoh-tanimoto | feat(Analysis/InnerProductSpace/): define standard subspaces of a complex Hilbert space | define standard subspaces of a complex Hilbert space: a standard subspace `S` of `H` is a closed real subspace `S` such that `S ⊓ i S = ⊥` and `S ⊔ i S = ⊤`. prove that the symplectic complement of `S` is again a standard subspace and the double symplectic complement is itself. motivation: one can define a closable operator `x + i y ↦ x - i y` and develop an analogue of the Tomita-Takesaki modular theory for von Neumann algebras. By considering inclusions of standard subspaces, one can obtain unitary representations of various Lie groups. https://ems.press/content/serial-article-files/48171 `#min_imports` does not give a correct set of imports. - [x] depends on: #29230 for `Lattice` `CompleteLattice` - [x] depends on: #29241 for the definition of `orthogonal` - [x] depends on: #29243 for `sup_orthogonal` - [x] depends on: #29235 for `mapEquiv` | t-analysis awaiting-author | 259/0 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/StandardSubspace.lean | 2 | 25 | ['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'yoh-tanimoto'] | j-loreaux | 2 days ago | 7 days ago | 4 days |
| 35772 | euprunin | chore: golf using `grind` | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `CategoryTheory.Precoverage.toGrothendieck_toCoverage`: unchanged 🎉 * `Int.nonneg_or_nonpos_of_mul_nonneg`: unchanged 🎉 * `Associated.separable`: 113 ms before, 67 ms after 🎉 * `ModelWithCorners.isInteriorPoint_disjointUnion_left`: unchanged 🎉 * `ModelWithCorners.isInteriorPoint_disjointUnion_right`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 5/49 | Mathlib/CategoryTheory/Sites/Coverage.lean,Mathlib/Data/Int/Order/Basic.lean,Mathlib/FieldTheory/Separable.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean | 4 | 1 | ['github-actions', 'vihdzp'] | nobody | 2 days ago | 6 days ago | 6 days | |
| 34554 | SnirBroshi | feat(Data/Nat/Factorization/Divisors): calculate divisors using prime factorization | --- There are over 200 files that import both `divisors` and `factorization`, but none of them seemed to fit, so I created a new file for this. (`Data.Nat.Factorization.PrimePow` and `NumberTheory.ArithmeticFunction.Misc` are the best I found) [](https://gitpod.io/from-referrer/) | t-data | 91/0 | Mathlib.lean,Mathlib/Data/Nat/Factorization/Divisors.lean | 2 | 20 | ['SnirBroshi', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'jcommelin', 'mathlib-bors', 'plp127'] | joneugster | 2 days ago | 6 days ago | 7 days |
| 35058 | GrigorenkoPV | chore: move tendsto_{floor,ceil}_at{Top,Bot} | Moves: - Topology.Algebra.Order.Floor.tendsto_floor_atTop -> Order.Filter.AtTopBot.Floor.tendsto_floor_atTop - Topology.Algebra.Order.Floor.tendsto_floor_atBot -> Order.Filter.AtTopBot.Floor.tendsto_floor_atBot - Topology.Algebra.Order.Floor.tendsto_ceil_atTop -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atTop - Topology.Algebra.Order.Floor.tendsto_ceil_atBot -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atBot --- Tracked in #7987 [](https://gitpod.io/from-referrer/) | new-contributor large-import | 22/25 | Mathlib/Order/Filter/AtTopBot/Floor.lean,Mathlib/Topology/Algebra/Order/Floor.lean | 2 | 1 | ['github-actions'] | adamtopaz | 2 days ago | 20 days ago | 20 days |
| 35189 | euprunin | chore: golf proofs | The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `Complex.orderClosedTopology`: 227 ms before, <10 ms after 🎉 * `CategoryTheory.Functor.map_shiftFunctorComm`: 73 ms before, <10 ms after 🎉 * `CategoryTheory.extensiveTopology.presheafIsLocallySurjective_iff`: 154 ms before, 65 ms after 🎉 * `CategoryTheory.Presieve.functorPushforward_overForget`: 13 ms before, <10 ms after 🎉 * `Equiv.Perm.IsCycle.isCycle_pow_pos_of_lt_prime_order`: 15 ms before, <10 ms after 🎉 * `Equiv.Perm.IsCycle.isConj_iff`: <10 ms before, <10 ms after 🎉 * `Equiv.Perm.zpow_eq_ofSubtype_subtypePerm_iff`: 31 ms before, 32 ms after * `StieltjesFunction.measure_Ici`: 242 ms before, 102 ms after 🎉 * `le_iff_eq_sup_sdiff`: 54 ms before, 19 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 12/55 | Mathlib/Analysis/Complex/Basic.lean,Mathlib/CategoryTheory/Shift/CommShift.lean,Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/MeasureTheory/Measure/Stieltjes.lean,Mathlib/Order/BooleanAlgebra/Basic.lean | 7 | 5 | ['euprunin', 'github-actions', 'leanprover-radar'] | dwrensha | 2 days ago | 16 days ago | 19 days | |
| 35756 | mariainesdff | feat(Data/Nat/Choose/Multinomial): add lemmas | Co-authored-by: @AntoineChambert-Loir. --- [](https://gitpod.io/from-referrer/) | t-combinatorics t-data | 25/0 | Mathlib/Data/Nat/Choose/Multinomial.lean | 1 | 1 | ['github-actions'] | Vierkantor | 2 days ago | 6 days ago | 6 days |
| 35764 | YaelDillies | feat(Data/Finsupp): characterise when `Finsupp` is `Nontrivial` | From ClassFieldTheory --- [](https://gitpod.io/from-referrer/) | t-data | 15/6 | Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Single.lean | 2 | 1 | ['github-actions'] | joneugster | 2 days ago | 6 days ago | 6 days |
| 35804 | mariainesdff | feat(RingTheory/DividedPowerAlgebra/Init): add universal divided power algebra | We define the universal divided power algebra of an `R`-module `M`. Co-authored by @AntoineChambert-Loir --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 281/0 | Mathlib.lean,Mathlib/RingTheory/DividedPowerAlgebra/Init.lean | 2 | 1 | ['github-actions'] | mattrobball | 2 days ago | 5 days ago | 5 days |
| 35807 | Raph-DG | chore(Topology): Generalised some of the instances for Function.locallyFinsuppWithin | In this PR, we generalised the various instances for locally fin supp functions. These changes were originally made on the PR #26304 about algebraic cycles, but it was decided that these changes are more appropriate in their own PR. --- [](https://gitpod.io/from-referrer/) | t-topology | 57/23 | Mathlib/Topology/LocallyFinsupp.lean | 1 | 1 | ['github-actions'] | dagurtomas | 2 days ago | 5 days ago | 5 days |
| 35818 | Vierkantor | chore(Tactic): rewrite `finiteness` tactic docstring | This PR (re)writes the docstrings for the `finiteness` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long. A bit of restructuring and clarification. --- [](https://gitpod.io/from-referrer/) | documentation t-meta | 18/5 | Mathlib/Tactic/Finiteness.lean | 1 | 1 | ['github-actions'] | adamtopaz | 2 days ago | 5 days ago | 5 days |
| 31891 | jsm28 | feat(Geometry/Euclidean/Sphere/OrthRadius): lemmas for setting up and using polars | Add further lemmas about `orthRadius` that are of use in setting up and using poles and polars. In particular, `ncard_inter_orthRadius_eq_two_of_dist_lt_radius` is the key part of showing that, in two dimensions, there are exactly two tangents to a circle from a point outside that circle (where the points of tangency lie on the polar of the point from which the two tangents are drawn). --- Feel free to golf the proof of `ncard_inter_orthRadius_eq_two_of_dist_lt_radius`, it could probably be rather shorter. --- - [ ] depends on: #32296 [](https://gitpod.io/from-referrer/) | t-euclidean-geometry | 265/7 | Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean | 2 | 28 | ['Parcly-Taxel', 'eric-wieser', 'github-actions', 'jsm28', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | JovanGerb | 2 days ago | 13 days ago | 101 days |
| 35884 | Parcly-Taxel | chore: fix induction and recursor names | * `Finset.induction_on_{min,max}`, `Finset.induction_on_{min,max}_value` * `FreeAbelianGroup.induction_on`, `FreeAbelianGroup.induction_on'` Applications of these induction principles are also fixed. | tech debt | 109/112 | Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Data/Finset/Max.lean,Mathlib/GroupTheory/FreeAbelianGroup.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean | 5 | 6 | ['Parcly-Taxel', 'chenson2018', 'github-actions'] | nobody | 2 days ago | 2 days ago | 3 days |
| 26013 | tsuki8 | feat(Data/Finset/Card,Data/Set/Finite/Basic): TODO needs a better title | add `card_bijOn` and `finset_subset_preimage_of_finite_image`
Add `card_bijOn`: proves that for a bijection between finsets, their cardinalities are equal
Add `finset_subset_preimage_of_finite_image`: constructs a finset subset preserving image cardinality
Co-authored-by: Junyu Guo |
awaiting-author t-data new-contributor | 15/0 | Mathlib/Data/Finset/Card.lean,Mathlib/Data/Set/Finite/Basic.lean | 2 | 6 | ['Ruben-VandeVelde', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 2 days ago | 245 days ago | 13 days |
| 35954 | mcdoll | feat(Analysis/Fourier): the Fourier transform as bounded continuous function | This is the main step in proving that the Fourier transform defined via the integral is equal to the Fourier transform on `L1` via extension of Schwartz functions. We do not use the Riemann-Lebesgue lemma here to define the map into `ZeroAtInftyContinuousMap` because it is possible to deduce Riemann-Lebesgue from embedding of Schwartz functions. --- [](https://gitpod.io/from-referrer/) | t-analysis | 87/5 | Mathlib/Analysis/Fourier/FourierTransform.lean | 1 | 1 | ['github-actions'] | nobody | 2 days ago | 2 days ago | 2 days |
| 34632 | mitchell-horner | feat(Combinatorics/SimpleGraph): add `BipartiteDoubleCover` | `bipartiteDoubleCover G` has two vertices `inl v` and `inr v` for each vertex `v` in `G` such that `inl v` (`inr v`) is adjacent to `inr w` (`inl w`) iff `v` is adjacent to `w` in `G`. --- This comes from splitting up #25841 into smaller PRs. [](https://gitpod.io/from-referrer/) | t-combinatorics | 87/0 | Mathlib/Combinatorics/SimpleGraph/Bipartite.lean | 1 | 10 | ['github-actions', 'mitchell-horner', 'vihdzp', 'vlad902'] | nobody | 2 days ago | 2 days ago | 32 days |
| 35069 | 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. - [ ] depends on: #34598 --- | new-contributor t-euclidean-geometry | 360/0 | Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean | 4 | 29 | ['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] | nobody | 2 days ago | 6 days ago | 8 days |
| 29624 | mcdoll | feat(LinearAlgebra/LinearPMap): add definition of resolvent and first resolvent identity | --- [](https://gitpod.io/from-referrer/) | t-algebra t-analysis awaiting-author | 189/9 | Mathlib/LinearAlgebra/LinearPMap.lean | 1 | 11 | ['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'mcdoll'] | kim-em | 1 day ago | 98 days ago | 64 days |
| 35243 | ScottCarnahan | chore(Algebra/MonoidAlgebra/PointwiseSMul): switch action from Finsupp to (Add)MonoidAlgebra and multiplicativize | This PR moves the API for convolution action on functions from `Finsupp` to `MonoidAlgebra`, adding a `Semiring` hypothesis. We do this move, because the convolution action of finsupps on formal functions is more naturally expressed as an action by the monoid algebra with its convolutional multiplication. This PR also multiplicativizes, preserving the original material with `to_additive`. --- [](https://gitpod.io/from-referrer/) | large-import t-algebra | 109/52 | Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/PointwiseSMul.lean,Mathlib/Data/Finsupp/PointwiseSMul.lean | 3 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | eric-wieser | 1 day ago | 1 day ago | 6 days |
| 35685 | riccardobrasca | feat: limit the use of Classical.choice | ## Let's avoid the axiom of choice! This PR is an experiment in developing a version of `mathlib` that minimizes uses of the axiom of choice, especially in basic declarations. For example, [Finset.image](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/Image.html#Finset.image) currently depends on the axiom of choice in `mathlib` but not on this branch. You can use this PR branch just like any other `mathlib` PR branch, in particular the cache system should work normally (you may get a warning to run `lake exe cache get` manually though, just do it). However, you may notice that it uses a custom `lean4` toolchain. The reason is that Lean core itself currently contains results that rely on choice (in particular, via uses of `grind`). Indeed, this branch uses a custom Lean toolchain built from our fork, currently [this version](https://github.com/riccardobrasca/lean4/releases/latest). You can inspect the diff vs `master` [here](https://github.com/leanprover/lean4/compare/master...riccardobrasca:lean4:less_choice) (this diff also contains some GitHub workflow changes, which can be ignored). For the same reason, we also use a custom version of `batteries`, found at the branch [`less_choice`](https://github.com/riccardobrasca/batteries/tree/less_choice). You can see the diff [here](https://github.com/leanprover-community/batteries/compare/main...riccardobrasca:batteries:less_choice). ### Does it work? If you want to count how many declarations depend on choice (on this branch or on `master`), you can use the following script, written by [Robin Arnez](https://github.com/Rob23oba) and Paul Lezeau (thanks!). ```lean import Mathlib open Lean structure State where visited : NameMap Bool := {} abbrev M := ReaderT Environment <| StateM (NameMap Bool) partial def collect (c : Name) : M Bool := do let collectExpr (e : Expr) : M Bool := e.getUsedConstants.anyM collect let s ← get if let some res := s.find? c then return res let env ← read modify fun s => s.insert c false let res ← match env.checked.get.find? c with | some (ConstantInfo.axiomInfo v) => collectExpr v.type | some (ConstantInfo.defnInfo v) => collectExpr v.type <||> collectExpr v.value | some (ConstantInfo.thmInfo v) => collectExpr v.type <||> collectExpr v.value | some (ConstantInfo.opaqueInfo v) => collectExpr v.type <||> collectExpr v.value | some (ConstantInfo.quotInfo _) => pure false | some (ConstantInfo.ctorInfo v) => collectExpr v.type | some (ConstantInfo.recInfo v) => collectExpr v.type | some (ConstantInfo.inductInfo v) => collectExpr v.type <||> v.ctors.anyM collect | none => pure false modify fun s => s.insert c res return res partial def collectAll : M (Nat × Nat) := do modify fun s => s.insert ``Classical.choice true let env ← read let mut count := 0 let mut total := 0 for (constName, _) in env.constants do total := total + 1 let hasChoice ← collect constName if hasChoice then count := count + 1 return (count, total) run_cmd do let env ← getEnv let (count, total) := collectAll.run env |>.run' {} let pctTimes10 := if total = 0 then 0 else (count * 1000 + total / 2) / total let pctWhole := pctTimes10 / 10 let pctDecimal := pctTimes10 % 10 Lean.logInfo m!"Found {count} constants depending on Classical.choice out of {total} total ({pctWhole}.{pctDecimal}%)" ``` Currently, we have 383638 declaration that depend on choice, over 713155 in total (53.8%). For comparison, `master` has 389450 use of choice (54.6%). Several thousands of declarations have become choice free! ### Can I contribute? Yes! If you want to help just open a PR in the usual way (to the forks!). Note that I plan to update core not very often, probably only once a month, when `mathlib` does so. ### How to Remove the Dependency on Choice from a declaration? First of all, note that #print axioms does not work with the new module system. If you want to check whether `X` depends on choice, you should create a new file starting with `import Mathlib` and use `#print axioms foo`. If `X` depends on choice and you want to remove that dependency, there are several steps to consider (for simplicity, we focus on the case where `X` is a theorem): * The first question is mathematical: do you have a choice-free proof? Remember that this means a proof that does not use the law of excluded middle. An important remark is that if the answer is not “yes, this result is trivial”, then it is going to be *very hard* to do this in `mathlib`. At the moment, it is better to stick to mathematically trivial or very easy declarations. * `mathlib` is *very* intricate. It is very likely that the proof of `X` consists of just a couple of lines invoking `Y` and `Z`, which are often mathematically almost identical to `X`. In that case, removing choice from `X` amounts to removing choice from `Y` and `Z`. And the same situation may very well arise again for `Y` and `Z`. * In practice, you will quickly find yourself asking: “Where is choice *really* introduced?” To answer this question, you can use the following script: ```lean import Mathlib open Lean Meta Elab Command namespace ChoiceDeps abbrev DepSet := Std.HashSet Name abbrev ChoiceMemo := NameMap Bool def addExprDeps (deps : DepSet) (e : Expr) : DepSet := Id.run <| do let mut out := deps for c in e.getUsedConstants do out := out.insert c return out def directDeps (env : Environment) (decl : Name) : DepSet := let deps := match env.checked.get.find? decl with | some (.axiomInfo v) => addExprDeps {} v.type | some (.defnInfo v) => addExprDeps (addExprDeps {} v.type) v.value | some (.thmInfo v) => addExprDeps (addExprDeps {} v.type) v.value | some (.opaqueInfo v) => addExprDeps (addExprDeps {} v.type) v.value | some (.quotInfo _) => {} | some (.ctorInfo v) => addExprDeps {} v.type | some (.recInfo v) => addExprDeps {} v.type | some (.inductInfo v) => v.ctors.foldl (init := addExprDeps {} v.type) fun acc c => acc.insert c | none => {} deps.erase decl partial def transitiveDeps (env : Environment) (root : Name) : DepSet := let rec visit (decl : Name) (visited : DepSet) : DepSet := if visited.contains decl then visited else (directDeps env decl).toArray.foldl (init := visited.insert decl) fun acc dep => visit dep acc (visit root {}).erase root partial def dependsOnChoiceM (env : Environment) (decl : Name) : StateM ChoiceMemo Bool := do let memo ← get if let some b := memo.find? decl then return b modify fun s => s.insert decl false let deps := directDeps env decl if deps.contains ``Classical.choice then modify fun s => s.insert decl true return true let rec go (i : Nat) (arr : Array Name) : StateM ChoiceMemo Bool := do if h : i < arr.size then let d := arr[i] if ← dependsOnChoiceM env d then return true go (i + 1) arr else return false let res ← go 0 deps.toArray modify fun s => s.insert decl res return res def choiceDependencyGraph (env : Environment) (root : Name) : Array Name × NameMap (Array Name) := let work : StateM ChoiceMemo (Array Name × NameMap (Array Name)) := do let mut bfsOrder : Array Name := #[] let mut graph : NameMap (Array Name) := {} let mut queue : Array Name := #[root] let mut qHead := 0 let mut visited : DepSet := {} while qHead < queue.size do let current := queue[qHead]! qHead := qHead + 1 if visited.contains current then continue if !(← dependsOnChoiceM env current) then continue visited := visited.insert current bfsOrder := bfsOrder.push current let allDeps := directDeps env current let mut choiceDeps : Array Name := #[] if allDeps.contains ``Classical.choice then choiceDeps := choiceDeps.push ``Classical.choice for d in allDeps.toArray.qsort Name.quickLt do if d == ``Classical.choice then continue if ← dependsOnChoiceM env d then choiceDeps := choiceDeps.push d if !visited.contains d then queue := queue.push d graph := graph.insert current choiceDeps return (bfsOrder, graph) work.run' {} def formatGraph (bfsOrder : Array Name) (graph : NameMap (Array Name)) : MessageData := let lines := bfsOrder.toList.filterMap fun n => match graph.find? n with | none => none | some deps => let depsMsg := MessageData.joinSep (deps.toList.map fun d => m!"{.ofConstName d}") ", " some m!"{.ofConstName n} → {depsMsg}" MessageData.joinSep lines "\n" private def dotNode (n : Name) : String := "\"" ++ n.toString ++ "\"" /-- Produce a Graphviz DOT string for the choice-dependency graph. Paste it at https://dreampuf.github.io/GraphvizOnline -/ def formatDot (root : Name) (bfsOrder : Array Name) (graph : NameMap (Array Name)) : String := let edges : Array String := bfsOrder.foldl (init := #[]) fun acc n => match graph.find? n with | none => acc | some deps => deps.foldl (init := acc) fun acc2 d => acc2.push s!" {dotNode n} -> {dotNode d};" let allNodes : Array String := bfsOrder.foldl (init := #[dotNode ``Classical.choice ++ " [shape=diamond, style=filled, fillcolor=tomato]"]) fun acc n => if n == ``Classical.choice then acc else if n == root then acc.push s!"{dotNode n} [style=filled, fillcolor=lightblue]" else acc.push s!"{dotNode n} [style=filled, fillcolor=lightyellow]" let body := ((allNodes.map fun s => " " ++ s) ++ edges).toList "digraph choice_deps {\n rankdir=TB;\n node [fontname=\"Helvetica\", fontsize=10];\n" ++ "\n".intercalate body ++ "\n}" syntax (name := printChoiceDeps) "#print " &"choice_deps_on_choice" ppSpace ident : command syntax (name := printChoiceDepsDot) "#print " &"choice_deps_on_choice_dot" ppSpace ident : command elab_rules : command | `(#print choice_deps_on_choice $id:ident) => do let targets ← liftCoreM <| realizeGlobalConstWithInfos id let env ← getEnv for target in targets do let (bfsOrder, graph) := choiceDependencyGraph env target if graph.isEmpty then logInfo m!"{.ofConstName target}: no dependency on Classical.choice" else logInfo m!"{.ofConstName target}:\n{formatGraph bfsOrder graph}" elab_rules : command | `(#print choice_deps_on_choice_dot $id:ident) => do let targets ← liftCoreM <| realizeGlobalConstWithInfos id let env ← getEnv for target in targets do let (bfsOrder, graph) := choiceDependencyGraph env target if graph.isEmpty then logInfo m!"{.ofConstName target}: no dependency on Classical.choice" else let dot := formatDot target bfsOrder graph IO.FS.writeFile "graph.dot" dot logInfo m!"DOT graph written to graph.dot\n\n{dot}" end ChoiceDeps /- Example: #print choice_deps_on_choice Finset.univ_eq_empty #print choice_deps_on_choice_dot Finset.univ_eq_empty -- paste output into GraphvizOnline -/ ``` * `#print choice_deps_on_choice_dot X` produces a file (text) `graph.dot`: you can copy/paste the content in [https://dreampuf.github.io/GraphvizOnline/](https://dreampuf.github.io/GraphvizOnline/) the see the dependency graph of declaration used in the proof of `X` that depend on choice. Note that those are ordered from `X` to choice (so the first node is always `X` and the last is always choice). An arrow (to the bottom) from `Y` to `Z` means that `Z` is used in the proof of `Y` and the goal is to change some proof (i.e. modifying the arrows) to disconnect `X` from choice. In the low part of the graph you will usually identify an area of declarations really equivalent to choice (usually everything starting with `Classical.` and everything containing `grind` in the name, plus various other stuff) you should of course treat those as they are choice, it's useless to try to touch this area. It's sometimes not easy to guess where to "attack" the graph, but it's fun, enjoy! --- The github workflow files have been copied from Matthew Ballard's [repository](https://github.com/mattrobball/lean4/tree/eqvModLevels/.github/workflows). We thank Matthew for his work. | merge-conflict | 280/84 | Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/Order/Group/Multiset.lean,Mathlib/Data/Fin/SuccPred.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finset/BooleanAlgebra.lean,Mathlib/Data/Finset/Insert.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Finset/SDiff.lean,Mathlib/Data/List/Dedup.lean,Mathlib/Data/List/Lattice.lean,Mathlib/Data/List/Nodup.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/Multiset/Count.lean,Mathlib/Data/Multiset/Pi.lean,Mathlib/Data/Multiset/UnionInter.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Interval/Finset/Nat.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 22 | 7 | ['github-actions', 'mathlib-merge-conflicts', 'mattrobball', 'riccardobrasca'] | nobody | 1 day ago | unknown | unknown |
| 35796 | kim-em | chore: remove global backward.isDefEq.respectTransparency override | This PR removes the global `set_option backward.isDefEq.respectTransparency false` from the lakefile. 🤖 Prepared with Claude Code | merge-conflict | 29/4 | Mathlib/AlgebraicGeometry/Fiber.lean,Mathlib/AlgebraicGeometry/Morphisms/SmoothFiber.lean,Mathlib/AlgebraicGeometry/Sites/BigZariski.lean,Mathlib/Analysis/Complex/Poisson.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean,Mathlib/Analysis/LocallyConvex/WeakDual.lean,Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/CategoryTheory/Abelian/Basic.lean,Mathlib/CategoryTheory/ShrinkYoneda.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean,Mathlib/CategoryTheory/Sites/LocallySurjective.lean,Mathlib/Data/Finset/Image.lean,Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean,Mathlib/LinearAlgebra/QuadraticForm/Radical.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean,Mathlib/Topology/MetricSpace/Kuratowski.lean,lakefile.lean | 20 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 35851 | vihdzp | chore(SetTheory/Ordinal/Arithmetic): remove `backward.privateInPublic` | --- [](https://gitpod.io/from-referrer/) | t-set-theory tech debt | 12/17 | Mathlib/SetTheory/Ordinal/Arithmetic.lean | 1 | 5 | ['github-actions', 'plp127', 'vihdzp'] | nobody | 1 day ago | 1 day ago | 4 days |
| 35956 | Scarlett-le | feat: add orthogonality lemmas for inner product spacesonal | ## Summary Adds two lemmas about orthogonality in inner product spaces. ## New declarations - `real_inner_sub_smul_div_inner_self_eq_zero` (`Mathlib.Analysis.InnerProductSpace.Basic`): the inner product of `u - (⟪u, d⟫_ℝ / ⟪d, d⟫_ℝ) • d` with `d` is zero; subtracting the orthogonal projection of `u` onto `d` yields a vector orthogonal to `d`. Holds unconditionally including when `d = 0`. - `mem_span_singleton_of_inner_eq_zero_of_inner_eq_zero` (`Mathlib.Analysis.InnerProductSpace.Projection.FiniteDimensional`): in a two-dimensional inner product space, if nonzero vectors `w` and `u` are both orthogonal to the same nonzero vector `v`, then `u` lies in the span of `w`. | t-analysis | 25/0 | Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean | 2 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day |
| 28685 | mitchell-horner | feat(Combinatorics/SimpleGraph): prove the minimal-degree version of the Erdős-Stone theorem | Proves the minimal degree-version of the Erdős-Stone theorem: If `G` has a minimal degree of at least `(1 - 1 / r + o(1)) * card V`, then `G` contains a copy of a `completeEquipartiteGraph` in `r + 1` parts each of size `t`. The double-counting construction from the proof is available in `namespace ErdosStone`. --- - [x] depends on: #25843 - [x] depends on: #27597 - [x] depends on: #27599 - [x] depends on: #28443 - [x] depends on: #28445 - [x] depends on: #28446 - [x] depends on: #28447 This is the first of several pull requests towards the full Erdős-Stone(-Simonovits) theorem, hence the name of the file. [](https://gitpod.io/from-referrer/) | t-combinatorics | 323/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean | 2 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | 1 day ago | 1 day |
| 35958 | bryangingechen | ci: add conditionals on lean-pr-testing steps | These steps only need to run from mathlib4-nightly-testing and when the branch names fit the *-pr-testing pattern. There's no need to mint a token for other runs. Less importantly, this is also breaking CI on dependabot PRs cf. https://github.com/leanprover-community/mathlib4/pull/35917#issuecomment-3980111057 --- [](https://gitpod.io/from-referrer/) | CI | 2/2 | .github/workflows/build_template.yml | 1 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day |
| 32987 | kim-em | feat: pipeline downloads and decompression in `cache get` | This PR modifies `lake exe cache get` to decompress files as they download, rather than waiting for all downloads to complete first. Previously the cache system had two sequential phases: download all files using `curl --parallel`, then decompress all files using a single `leantar` call. Now a background task spawns sequential batched `leantar` calls to decompress files as downloads complete, pipelining network I/O and disk I/O. 🤖 Prepared with Claude Code - [x] depends on: #34667 | t-meta maintainer-merge | 190/35 | Cache/IO.lean,Cache/Requests.lean | 2 | 65 | ['Vierkantor', 'eric-wieser', 'github-actions', 'joneugster', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | joneugster | 1 day ago | 2 days ago | 60 days |
| 34910 | SnirBroshi | feat(Combinatorics/SimpleGraph/Acyclic): a graph is a tree iff it's acyclic and has exactly `n - 1` edges | --- This was my white whale for quite some time. Hooray! - [x] depends on: #34907 - [ ] depends on: #34909 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-combinatorics | 98/1 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Order/RelIso/Basic.lean | 4 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 1 day ago | unknown | unknown |
| 35947 | euprunin | chore: replace `aesop` with `grind` where the latter is significantly faster | This experiment investigates the impact of replacing particularly heavy `aesop` calls with `grind`, specifically how this change affects the instruction count as measured by the benchmarking infrastructure. Trace profiling results (differences <30 ms considered measurement noise): * `Submonoid.mem_closure_image_one_lt_iff`: 125 ms before, 61 ms after 🎉 * `SimpleGraph.Connected.connected_delete_edge_of_not_isBridge`: 230 ms before, 51 ms after 🎉 * `SimpleGraph.Subgraph.IsMatching.exists_of_disjoint_sets_of_equiv`: 899 ms before, 666 ms after 🎉 * `SimpleGraph.IsCycles.existsUnique_ne_adj`: 855 ms before, 599 ms after 🎉 * `SimpleGraph.Walk.IsPath.isCycles_spanningCoe_toSubgraph_sup_edge`: 962 ms before, 619 ms after 🎉 * `SimpleGraph.IsAlternating.sup_edge`: 2854 ms before, 1615 ms after 🎉 * `SimpleGraph.Subgraph.IsPerfectMatching.symmDiff_of_isAlternating`: 3103 ms before, 1734 ms after 🎉 * `SimpleGraph.edgeSet_replaceVertex_of_not_adj`: 1525 ms before, 933 ms after 🎉 * `SimpleGraph.edgeSet_replaceVertex_of_adj`: 2194 ms before, 1605 ms after 🎉 * `SimpleGraph.tutte_exists_isPerfectMatching_of_near_matchings`: 3161 ms before, 1652 ms after 🎉 * `RootPairing.Base.sub_notMem_range_root`: 1025 ms before, 978 ms after 🎉 * `RootPairing.EmbeddedG2.mem_allRoots`: 3832 ms before, 3255 ms after 🎉 * `RootSystem.GeckConstruction.Lemmas.0.RootPairing.chainBotCoeff_mul_chainTopCoeff.aux_2`: 3572 ms before, 2631 ms after 🎉 * `isCompact_generateFrom`: 1987 ms before, 763 ms after 🎉 * `IsCompactOpenCovered.of_isCompact_of_forall_exists_isCompactOpenCovered`: 2279 ms before, 2009 ms after 🎉 * `UniformContinuousOn.comp_tendstoUniformly_eventually`: 416 ms before, 151 ms after 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 27/27 | Mathlib/Algebra/Group/Irreducible/Indecomposable.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/LinearAlgebra/RootSystem/Base.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Sets/CompactOpenCovered.lean,Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean | 11 | 4 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | nobody | 1 day ago | 2 days ago | 2 days | |
| 35632 | SnirBroshi | feat(Data/List/TakeDrop): `take`/`drop` + `tail`/`dropLast` almost commute | --- [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/List.2Etail.2FList.2EdropLast.20.2B.20List.2Etake/with/572294698) [](https://gitpod.io/from-referrer/) | t-data | 22/0 | Mathlib/Data/List/TakeDrop.lean | 1 | 3 | ['SnirBroshi', 'github-actions', 'joneugster'] | joneugster | 1 day ago | 9 days ago | 9 days |
| 35962 | euprunin | chore: golf using `simp` | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `CategoryTheory.MonoidalCategory.leftUnitor_monoidal`: unchanged 🎉 * `MeasureTheory.Measure.haar.is_left_invariant_index`: unchanged 🎉 * `Ideal.Filtration.submodule_fg_iff_stable`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 4/10 | Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/Basic.lean,Mathlib/RingTheory/Filtration.lean | 3 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day | |
| 35850 | vihdzp | refactor: nicer definition for ordinal logarithm | By leveraging the API on `Order.IsNormal`, we can define the ordinal logarithm in a way that more immediately proves the characterizing Galois connection. Note that this removes `Ordinal.log_def` and `Ordinal.succ_log_def` without deprecation - these are auxiliary results that should have been private and are tedious to re-prove. --- - [x] depends on: #35849 [](https://gitpod.io/from-referrer/) | t-set-theory maintainer-merge | 40/69 | Mathlib/SetTheory/Ordinal/Exponential.lean | 1 | 8 | ['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'vihdzp'] | nobody | 1 day ago | 1 day ago | 2 days |
| 35960 | vihdzp | chore(Order/ConditionallyCompleteLattice/Basic): remove `backward.isDefEq.respectTransparency` | --- [](https://gitpod.io/from-referrer/) | t-order easy | 0/8 | Mathlib/Order/ConditionallyCompleteLattice/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day |
| 34758 | Hagb | feat(RingTheory/MvPolynomial/MonomialOrder): misc lemmas | --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 52/2 | Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean | 1 | 7 | ['Hagb', 'erdOne', 'github-actions'] | mattrobball | 1 day ago | 1 day ago | 20 days |
| 35896 | harahu | chore(misc): fix typos | The typos were identified by `PyCharm`'s proofreading inspection. --- [](https://gitpod.io/from-referrer/) | 90/90 | Mathlib/Algebra/Category/ModuleCat/Ulift.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Homology/BifunctorShift.lean,Mathlib/Algebra/Homology/Embedding/ExtendHomotopy.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplexSingle.lean,Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/Lie/EngelSubalgebra.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Algebra/Order/SuccPred/TypeTags.lean,Mathlib/Algebra/Polynomial/PartialFractions.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/AlgebraicGeometry/Morphisms/Flat.lean,Mathlib/AlgebraicGeometry/Normalization.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/EpiMono.lean,Mathlib/AlgebraicTopology/SimplicialSet/HoFunctorMonoidal.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Calculus/DifferentialForm/VectorField.lean,Mathlib/Analysis/Calculus/TangentCone/Seq.lean,Mathlib/Analysis/Complex/Positivity.lean,Mathlib/Analysis/Complex/UnitDisc/Basic.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean,Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/Distribution.lean,Mathlib/Analysis/InnerProductSpace/Coalgebra.lean,Mathlib/Analysis/InnerProductSpace/OfNorm.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Algebra/GelfandMazur.lean,Mathlib/Analysis/Normed/Module/ContinuousInverse.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/RCLike/Real.lean,Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean,Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Extremal.lean,Mathlib/CategoryTheory/Abelian/Injective/Resolution.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataAsCoalgebra.lean,Mathlib/CategoryTheory/Sites/Point/Over.lean,Mathlib/CategoryTheory/Sites/SheafOfTypes.lean,Mathlib/Combinatorics/Matroid/Map.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Condensed/Light/InternallyProjective.lean,Mathlib/Data/Matrix/ColumnRowPartitioned.lean,Mathlib/Data/Seq/Defs.lean,Mathlib/Data/Set/Operations.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/LinearAlgebra/TensorPower/Symmetric.lean,Mathlib/LinearAlgebra/Transvection.lean,Mathlib/NumberTheory/Chebyshev.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Def.lean,Mathlib/Probability/Independence/Process.lean,Mathlib/RingTheory/Extension/Cotangent/Basic.lean,Mathlib/RingTheory/Flat/TorsionFree.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean,Mathlib/RingTheory/PowerSeries/Expand.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/Smooth/Fiber.lean,Mathlib/RingTheory/ZariskisMainTheorem.lean,Mathlib/Topology/MetricSpace/CoveringNumbers.lean,Mathlib/Topology/MetricSpace/PartitionOfUnity.lean | 69 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day | |
| 35928 | xgenereux | feat(Subalgebra/Lattice): add notation for Algebra.adjoin | This PR proposes a scoped notation for Algebra.adjoin, `R[a]`, inspired from `IntermediateField.adjoin`. See [here](https://live.lean-lang.org/#codez=JYWwDg9gTgLgBAWQIYwBYBtgCMBQOC0+cAggCZJgwCmpcAxhKVXAGZQQhwAGAkgHbUoIGsBRUAYsCrpSXAHQ4+SYQGcwSOs2LoA5lSxQkeCGCp84AGSpJzwPjgD0hOAGUArmEiw7O1m750MMAQ5izQcGjMXABKANoAHoCBBAA08YBBBMlyWamAmQQAulxwSKQAVv6BweZ8EDAolXJw+A44YFDAAG5icMK1cEws3QDW/CpUsAAqY5wA3pwAXHDjAJ6mcIBJhIsrVAC+cLEIIcXdeXsHSqQAim41dSHHOHCPcAAU8SpwC+MuSwJI8cRQQxLbiCEAASg+3UWUw+AF44FB/HAAAxwADuqDGVAeCKRz2AkIAcigIQtOJMhHC+hAcY9gANUJCCQBqOAARjg8LechUwAAXsxIvYnk8uFxnry+Dp0FQYHcACSvFSxYB5MFg2lwaSjOD0uCMhYEgA8cG5vIFEUxwpF3HFdlGsDgireKrVTuegATCXHmfFwVls9UakXa7E223PACi4BgSwAwhB0DKKiE5FRo3GE0mgiENY5nDwBlwkqa0nAsg14jlIcRCkLuHEkqkMuXcgVde9Itx3FgkLp9IY4NESFwcHo+GMxLQsMDIjrpGmzDAVA0mjgVAxTLQQBp2HMAJxs5GogDSc1BcAARLEL6aVGepskAFSXvI3hbn2EAPmp4eKJQgdhOse7peiAwx8A6MAUpw3J6DAEYyiAKjqsYpjmFYNhwAAClAsoxjhdiCHIAAi0hIFg0AoOE3YRvErS6vYAACsQUGAAD6TDoORJB9gYSByH+AF8HkOA9EgcDqN4vZ9FQAyceRZD/nYhI3Nm5gLKRXFYFSGJmFhWEAPKUJUcBwfpKm1Gp1I4jK8DMF6cG0a0OI6G4SBQLQRoAD5anIwAqMQngGSwALADGtqCYBABsNmynA4hwF6aJhagxJQEsAK+Ki8m4I8tm3ol6IpWlGVQL4ACsMlaSMYwwACQI4uK8riLEzrLnK9VIEsYJPmqOC6bhOI5TVsCdcCGlkVgCAvBY/nwNBpLwqQNIivl9mmbKTlQJqepUH5AVBSFbThWKUaUBmiZUMmfCpum8aXddcAAEyWmYmqPLhMBuFA5ixCJwboDqu37YFYDBaFJ1cJK0qyncAAsr3WqtcXxIVyVoCVmVwAAzFV5HvQisrfb98T/U8Ia6gMe3+aD4PHcCYr2rVcCVUKBP5ajSXFe5pW+LjOXsyj7xcxjPNYwjw0QbVY0E59xOmh8CxvJqFMsEgwDoN92I4GYtDaHofF4M4tHKGAMoqHgoyPdUQi9gAqqMsZIKMqFmDxBuGEbRAqbb6BwG4LudG05Eyi8Q7EJCyymI+EKxPGIAgC4abAG0UqDicsRJyAKc+CQGf6/24nhyc0zidpdDVtseBUPEpuhwscRICc8KN8kRQnHM8LTnAvLgHgADEdCYnQgyDixImD8Po+t3AWAT0PV3TyxbdYG3dAiTrfC0Db27oA7VBOy7a5XVZdBcSoqB4EHohYKHzzh5HWwx3s8eJ8nqe+NEGdZznafEPnvEBzFzgNMAAGpXV25gsIJh+BwUQ6AcAmDdgXPicAcCT0XmPUBJxnBxGwY/VYbg2Jsmrlveg59L54BwEAA) for a preview of how it would look like. Note that I am currently using bracked, `[`, `]`. I know this clashes with the notation for `Polynomial`, `DualNumber`, `AdjoinRoot` and `GetElem` but it is my impression that it would rarely cause issues. See [#mathlib4 > Notation for Algebra.adjoin](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Notation.20for.20Algebra.2Eadjoin/with/576551144). --- [](https://gitpod.io/from-referrer/) | t-algebra | 239/186 | Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean,Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean,Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean,Mathlib/LinearAlgebra/Complex/Module.lean,Mathlib/LinearAlgebra/Semisimple.lean,Mathlib/NumberTheory/JacobiSum/Basic.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean,Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean,Mathlib/RingTheory/Adjoin/PowerBasis.lean,Mathlib/RingTheory/Adjoin/Singleton.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/Conductor.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean,Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean,Mathlib/RingTheory/Polynomial/Ideal.lean,Mathlib/RingTheory/RootsOfUnity/Lemmas.lean,Mathlib/RingTheory/Unramified/LocalStructure.lean,Mathlib/RingTheory/Valuation/LocalSubring.lean,Mathlib/Topology/Algebra/Algebra.lean | 23 | 3 | ['github-actions', 'xgenereux'] | nobody | 1 day ago | 1 day ago | 2 days |
| 35805 | adrianmartir | feat(NumberTheory/Divisors): Add `infinite_setOf_divisors_iff` | This proves that the set of divisors `{ m | m | n }` of a natural number `n` is infinite if and only if `n` is zero. The first proof draft was by @Aristotle-Harmonic. --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor | 10/0 | Mathlib/NumberTheory/Divisors.lean | 1 | 5 | ['adrianmartir', 'alexjbest', 'github-actions'] | alexjbest | 1 day ago | 1 day ago | 5 days |
| 35964 | b-reinke | feat(CategoryTheory/Linear): define category algebra | WIP definition of the category algebra of a linear category. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-category-theory | 171/0 | Mathlib.lean,Mathlib/CategoryTheory/Linear/CategoryAlgebra.lean,Mathlib/Data/DFinsupp/BigOperators.lean | 3 | 2 | ['github-actions'] | nobody | 1 day ago | unknown | unknown |
| 35966 | joelriou | feat(CategoryTheory/Abelian): the localization w.r.t. a Serre class is abelian | --- [](https://gitpod.io/from-referrer/) | t-category-theory large-import | 276/6 | Mathlib/CategoryTheory/Abelian/SerreClass/Localization.lean | 1 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day |
| 35442 | dhyan-aranha | feat: Affine line with doubled origin counter example | --- [](https://gitpod.io/from-referrer/) | new-contributor awaiting-author t-algebraic-geometry | 305/0 | Counterexamples.lean,Counterexamples/AffineLineWithDoubledOrigin.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean | 4 | 21 | ['BryceT233', 'chrisflav', 'dhyan-aranha', 'github-actions'] | nobody | 1 day ago | 14 days ago | 42 minutes |
| 34444 | joelriou | feat(CategoryTheory): exact functors from the localization w.r.t. a Serre class | --- - [ ] depends on: #35966 - [x] depends on: #35612 - [x] depends on: #34495 - [x] depends on: #34496 - [x] depends on: #34498 [](https://gitpod.io/from-referrer/) | WIP t-category-theory large-import blocked-by-other-PR | 421/6 | Mathlib/CategoryTheory/Abelian/SerreClass/Localization.lean,Mathlib/CategoryTheory/Limits/ExactFunctor.lean,Mathlib/CategoryTheory/Localization/Construction.lean,Mathlib/CategoryTheory/Localization/Predicate.lean | 4 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 35308 | martinwintermath | feat(Geometry/Convex/Cone): Add coercion from submodule to cone | Add coercion from submodule to cone and support lemmas. The main feature is * `PointedCone.ofSubmodule` coercing a submodule to a pointed cone and the corresponding `Coe` instance. There are further lemmas coercing membership and lattice operations. --- [](https://gitpod.io/from-referrer/) | t-convex-geometry awaiting-author | 54/2 | Mathlib/Geometry/Convex/Cone/Pointed.lean | 1 | 9 | ['YaelDillies', 'github-actions', 'martinwintermath'] | YaelDillies | 1 day ago | 1 day ago | 15 days |
| 35890 | grunweg | chore: delete deprecated module Topology/PartialHomeomorph | This module was deprecated on October 3, and is blocking refactoring of the manifold library. --- This PR should only be merged on March 3rd: please delegate instead of merging! [](https://gitpod.io/from-referrer/) | t-topology easy | 0/11 | Mathlib.lean,Mathlib/Topology/PartialHomeomorph.lean | 2 | 5 | ['fpvandoorn', 'github-actions', 'mathlib-bors'] | nobody | 1 day ago | 1 day ago | 3 days |
| 35874 | xgenereux | feat(Adjoin/Polynomial/Bivariate): IsAlgebraic.adjoin_singleton | This PR builds up to the following theorem: - `IsAlgebraic.adjoin_singleton`: Given two transcendental elements `a`, `b` over `R`, if one of them, say `a`, is algebraic over `R[b]` then `b` is algebraic over `R[a]`. In particular, it uses maps between `R[a]` and `R[X]` as well of some of the Bivariate polynomial API. The results are necessary in preparation for the following: Given a function field `K` and `(y : K)` such that `(hy : Transcendental Fq y)` then we have: ``` FiniteDimensional Fq⟮y⟯ K ``` Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- [](https://gitpod.io/from-referrer/) | t-algebra | 90/0 | Mathlib.lean,Mathlib/RingTheory/Adjoin/Polynomial/Bivariate.lean | 2 | 6 | ['github-actions', 'joneugster', 'mathlib-merge-conflicts', 'robin-carlier', 'xgenereux'] | nobody | 1 day ago | 1 day ago | 1 day |
| 35637 | vihdzp | chore(Topology/Order/LeftRight): use `to_dual` | This overlaps with #35635, but the overlap is small (and that PR still needs some work, so I'd rather get this out of the way first). --- [](https://gitpod.io/from-referrer/) | maintainer-merge | 32/26 | Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Tactic/Translate/ToDual.lean,Mathlib/Topology/Order/LeftRight.lean | 3 | 8 | ['JovanGerb', 'github-actions', 'vihdzp'] | jcommelin | 1 day ago | 1 day ago | 9 days |
| 34757 | Hagb | feat(Algebra/MvPolynomial/Rename): some lemmas about `rename` and `killCompl` | --- [](https://gitpod.io/from-referrer/) | t-algebra | 66/1 | Mathlib/Algebra/MvPolynomial/Rename.lean | 1 | 6 | ['Hagb', 'dagurtomas', 'github-actions'] | dagurtomas | 1 day ago | 1 day ago | 24 days |
| 26942 | pechersky | feat(RingTheory/Valuation/ValueGroupIso): isomorphism of value groups when compatible | and also to the ValuativeRel's value group by request from comment in https://github.com/leanprover-community/mathlib4/pull/26754#issuecomment-3051770901 - [ ] depends on: #26588 --- [](https://gitpod.io/from-referrer/) - [x] depends on: #26939 - [x] depends on: #26940 - [x] depends on: #26941 | merge-conflict t-ring-theory t-order | 299/3 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/WithZero.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/RingTheory/Valuation/ValueGroupIso.lean | 6 | 10 | ['faenuccio', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'pechersky'] | faenuccio | 1 day ago | 201 days ago | 10 days |
| 29713 | jessealama | feat (Algebra/Homology): add Euler–Poincaré formula | This PR builds on the generalized Euler characteristic framework from #31121 to prove the Euler-Poincaré formula for chain complexes. PR #31121 defines the Euler characteristic for general homological complexes. This PR specializes those definitions to ℤ-indexed chain complexes and proves the main Euler-Poincaré theorem. ### Main result (in `EulerPoincare.lean`) * `ChainComplex.eulerChar_eq_homologyEulerChar`: For ℤ-indexed bounded chain complexes of finite-dimensional modules over a division ring, the alternating sum of chain dimensions equals the alternating sum of homology dimensions. --- Builds on: #31121 Related to: #29639, #29643, #29646 | awaiting-author t-algebra new-contributor | 428/0 | Mathlib.lean,Mathlib/Algebra/Homology/EulerPoincare.lean | 2 | 25 | ['github-actions', 'jessealama', 'joelriou', 'kim-em', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | dagurtomas | 1 day ago | 129 days ago | 35 days |
| 34624 | homeowmorphism | feat(GroupTheory/FreeGroup/Basic): surjection between types induces surjection between free groups on those types | feat(GroupTheory/FreeGroup/Basic): adds the theorem that if `α` and `β` are arbitrary types and there is a surjection between them, then the induced FreeGroup.map is also surjective. This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236. --- [](https://gitpod.io/from-referrer/) | t-group-theory new-contributor | 14/3 | Mathlib/GroupTheory/FreeGroup/Basic.lean | 1 | 24 | ['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'mathlib-merge-conflicts', 'tb65536', 'vlad902'] | riccardobrasca | 1 day ago | 15 days ago | 25 days |
| 33958 | chrisflav | feat(AlgebraicGeometry): the small affine étale site | From Proetale.
Co-authored-by: Joël Riou |
WIP t-algebraic-geometry | 454/23 | Mathlib.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/AlgebraicGeometry/Sites/AffineEtale.lean,Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean,Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean,Mathlib/CategoryTheory/Limits/MorphismProperty.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean | 9 | 6 | ['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 28072 | kckennylau | feat(RingTheory/Valuation): make tactic rw_val_equiv | Co-authored by Aaron Liu and Bhavik Mehta. A tactic to rewrite relations such as `max (v₁ x) (v₁ y) * v₁ z < 1` into `max (v₂ x) (v₂ y) * v₂ z < 1` , given `h : v₁.IsEquiv v₂`. Allowed relations are `≤`, `<`, `=`, `≠`. Allowed operations are: `0`, `1`, `v₁ r`, `⁻¹`, `^` (both `ℕ` and `ℤ`), `*`, `/`, `min`, `max`. Examples: ```lean example {R Γ₁ Γ₂ : Type} [Ring R] [LinearOrderedCommMonoidWithZero Γ₁] [LinearOrderedCommMonoidWithZero Γ₂] {v₁ : Valuation R Γ₁} {v₂ : Valuation R Γ₂} (h : v₁.IsEquiv v₂) {y z : R} : {x | v₁ x ^ 2 * min (v₁ y) (v₁ z) ≤ 1} = {x | v₂ x ^ 2 * min (v₂ y) (v₂ z) ≤ 1} := by rw_val_equiv h ``` It is also possible to use `←` to rewrite in the opposite direction, and to use `at h1 h3 ⊢` to specify which hypotheses (and/or goal) to rewrite, similar to the syntax of `rw`. There is also `rwa_val_equiv` to work like `rwa`. --- Zulip: [#Is there code for X? > Tactics for comparing equivalent valuations](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Tactics.20for.20comparing.20equivalent.20valuations) [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 455/13 | Mathlib/RingTheory/Valuation/Basic.lean,MathlibTest/Simproc/ValEquiv.lean | 2 | 44 | ['b-mehta', 'erdOne', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'pechersky', 'plp127'] | erdOne | 1 day ago | 108 days ago | 99 days |
| 33129 | Paul-Lez | feat(Tactic/Simproc/VecPerm): add simproc for permuting entries of a vector | --- [](https://gitpod.io/from-referrer/) | t-meta | 160/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/VecPerm.lean,MathlibTest/Simproc/VecPerm.lean | 4 | 83 | ['JovanGerb', 'Paul-Lez', 'b-mehta', 'eric-wieser', 'github-actions', 'ocfnash'] | JovanGerb | 1 day ago | 1 day ago | 53 days |
| 35808 | xroblot | feat(RamificationInertia): splitting in the inertia field | --- - [ ] depends on: #35802 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-algebra | 501/12 | Mathlib.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean | 8 | 3 | ['github-actions', 'joneugster', 'mathlib-dependent-issues'] | nobody | 1 day ago | 5 days ago | 34 seconds |
| 34513 | urkud | feat(ContinuousAlternatingMap): generalize some definitions | --- - [ ] depends on: #34491 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-analysis | 308/184 | Mathlib/Analysis/Normed/Module/Alternating/Basic.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.lean,Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean | 7 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 1 day ago | unknown | unknown |
| 35984 | urkud | feat(Topology/VectorBundle): add `simp` lemmas | --- [](https://gitpod.io/from-referrer/) | t-topology | 21/8 | Mathlib/Topology/VectorBundle/Basic.lean,Mathlib/Topology/VectorBundle/Hom.lean | 2 | 1 | ['github-actions'] | nobody | 1 day ago | unknown | unknown |
| 35597 | BryceT233 | feat(AdicTopology): add lemmas about adic topology | This PR adds APIs to transport topological and uniform properties of adic topologies across ring equivalences, By upgrading an ideal-preserving ring equivalence to a `UniformEquiv`, we provide natural congruence lemmas for adic completeness, precompleteness, and Hausdorffness, which serve as necessary topological preliminaries for the ongoing formalization of the Cohen Structure Theorem. Co-authored-by: @Thmoas-Guan --- [](https://gitpod.io/from-referrer/) | t-topology new-contributor | 55/2 | Mathlib/RingTheory/AdicCompletion/Topology.lean,Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean | 2 | 7 | ['erdOne', 'github-actions'] | urkud | 1 day ago | 1 day ago | 10 days |
| 35707 | BryceT233 | feat(RingTheory/MvPowerSeries): introduce `truncTotal` | This PR introduces the total degree truncation of multivariate formal power series when the index is finite, and uses it to establish the algebraic equivalence between `MvPowerSeries` and the adic completion of `MvPolynomial` with respect to the ideal spanned by all variables `idealOfVars`. --- [](https://gitpod.io/from-referrer/) | new-contributor t-ring-theory | 207/2 | Mathlib.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean | 4 | 4 | ['github-actions', 'joneugster', 'mathlib-bors'] | nobody | 1 day ago | 1 day ago | 7 days |
| 35659 | BryceT233 | chore(Data/Finsupp): update pointwise module structure | This is the 3rd PR split from #34936 to make the review process easier. It updates the pointwise module structure `Module (ι → R) (ι →₀ M)` where `R` is a semiring and `M` is an `R`-module. --- [](https://gitpod.io/from-referrer/) | t-data new-contributor | 25/18 | Mathlib/Data/Finsupp/Pointwise.lean | 1 | 2 | ['github-actions'] | joneugster | 1 day ago | 1 day ago | 9 days |
| 35647 | BryceT233 | feat(RingTheory/Ideal/Quotient): add a canonical inclusion map | This is the second PR split from the larger PR https://github.com/leanprover-community/mathlib4/pull/34936 to make the review process easier. It introduces `Submodule.powSmulQuotInclusion`, which is the canonical inclusion from `I ^ a • N ⧸ I ^ b • (I ^ a • N)` to `M ⧸ I ^ c • N` where `c = b + a`, and provides auxiliary lemmas for it --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor | 37/0 | Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean | 1 | 9 | ['BryceT233', 'erdOne', 'github-actions', 'wwylele'] | chrisflav | 1 day ago | 1 day ago | 9 days |
| 35646 | BryceT233 | feat(Algebra): add two lemmas about submodule smul | This is the first PR split from the larger PR #34936 to make the review process easier. It adds the following two lemmas regarding pointwise smul and restrictScalars: `Submodule.restrictScalars_image_smul_eq_smul_restrictScalars` and `Submodule.restrictScalars_map_smul_eq_smul_restrictScalars` --- [](https://gitpod.io/from-referrer/) | new-contributor t-algebra | 29/0 | Mathlib/Algebra/Algebra/Operations.lean,Mathlib/RingTheory/Ideal/Maps.lean | 2 | 4 | ['github-actions', 'joneugster'] | nobody | 1 day ago | 1 day ago | 9 days |
| 35985 | urkud | feat: vector bundle of `ContinuousAlternatingMap`s | --- - [ ] depends on: #35984 - [ ] depends on: #34491 - [ ] depends on: #34513 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR | 872/192 | Mathlib/Analysis/Normed/Module/Alternating/Basic.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.lean,Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/VectorBundle/Basic.lean,Mathlib/Topology/VectorBundle/ContinuousAlternatingMap.lean,Mathlib/Topology/VectorBundle/Hom.lean | 10 | 3 | ['github-actions', 'mathlib-bors', 'mathlib-dependent-issues'] | nobody | 1 day ago | unknown | unknown |
| 35987 | grunweg | chore(Tactic/FunProp): document that config options must come before … | …the discharger This being undocumented just bit me: let's make the documentation clearer --- [](https://gitpod.io/from-referrer/) | t-meta | 1/0 | Mathlib/Tactic/FunProp/Elab.lean | 1 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day |
| 33790 | eliasjudin | feat(CategoryTheory/Preadditive/Mat): add natural transformation and isomorphism extension theorems | Add extensionality lemmas for natural transformations and comparisons `L ≅ Mat_.lift F` in the additive envelope `Mat_`. - Add `Mat_.natTrans_ext`: a natural transformation `F ⟶ G` between functors `Mat_ C ⥤ D` (with `G` additive) is determined by its components on objects of the form `(embedding C).obj X`. - Add `Mat_.liftIso_ext_comp_embeddingLiftIso`: a small uniqueness lemma for comparisons `L ≅ lift F`. These lemmas streamline arguments around the universal property of `Mat_` by reducing equalities to components on objects coming from `C` via `embedding C`. No new instances or simp attributes; only `Mathlib/CategoryTheory/Preadditive/Mat.lean` changes. --- [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor awaiting-author | 68/20 | Mathlib/CategoryTheory/Preadditive/Mat.lean | 1 | 15 | ['eliasjudin', 'github-actions', 'joelriou', 'kim-em', 'mathlib-merge-conflicts'] | nobody | 1 day ago | 53 days ago | 5 hours |
| 25737 | robin-carlier | feat(AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms): Normal forms for `P_δ`s | We prove that admissible lists indeed provide a normal form for morphisms of satisfying `P_δ`. To this end, we introduce `standardδ`, a construction that takes a list and turn it into a composition of `δ i`s in `SimplexCategoryGenRel`. We then prove that, thanks to the first simplicial identity, composition on the left corresponds to simplicial insertion in the list. This gives existence of a normal form for every morphism satisfying `P_δ`. For unicity, we introduce an auxiliary function `simplicialEvalδ : (List ℕ) → ℕ → ℕ` and show that for admissible lists, it lifts to `ℕ` the `orderHom` attached to `toSimplexCategory.map standardδ`, and that we can recover elements of the list only by looking at values of this function. Part of a series of PR formalising that `SimplexCategoryGenRel` is equivalent to `SimplexCategory`. --- - [x] depends on: #25736 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #21746.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/21746* | t-algebraic-topology delegated t-category-theory | 181/2 | Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean | 1 | 6 | ['github-actions', 'joelriou', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | 134 days ago | 6 hours |
| 35594 | chrisflav | feat(RingTheory): `Extension.CotangentSpace` commutes with base change | From Pi1. --- - [x] depends on: #35557 - [x] depends on: #35699 [](https://gitpod.io/from-referrer/) | t-ring-theory | 136/0 | Mathlib.lean,Mathlib/RingTheory/Extension/Basic.lean,Mathlib/RingTheory/Extension/Cotangent/BaseChange.lean,Mathlib/RingTheory/Extension/Cotangent/Basic.lean | 4 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 1 day ago | 1 day ago | 1 day |
| 25740 | robin-carlier | feat(AlgebraicTopology/SimplexCategory/GeneratorsRelations): `SimplexCategoryGenRel.toSimplexCategory` is an equivalence | We use the normal forms for morphisms in `SimplexCategoryGenRel` to prove that `SimplexCategoryGenRel.toSimplexCategory` is an equivalence. We prove in order that there exists unique lifts in `SimplexCategoryGenRel` of mono (resp. epis) in `SimplexCategory`, and use this to deduce fully faithfulness of `SimplexCategoryGenRel.toSimplexCategory` thanks to the existing epi-mono factorisation in `SimplexCategory`. Part of a series of PR formalising that `SimplexCategoryGenRel` is equivalent to `SimplexCategory`. --- - [ ] depends on: #25737 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #21747.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/21747* | t-algebraic-topology blocked-by-other-PR | 555/2 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Equivalence.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 35991 | xroblot | feat(RamificationInertia): various results about decomposition field and inertia field | --- - [ ] depends on: #35808 - [ ] depends on: #35493 [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR | 746/36 | Mathlib.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/FieldTheory/IntermediateField/Algebraic.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean,Mathlib/RingTheory/Localization/AtPrime/Extension.lean | 14 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 1 day ago | unknown | unknown |
| 32989 | kim-em | fix(Tactic/Simps): skip @[defeq] inference for non-exposed definitions | This PR makes `@[simps]` check whether the source definition's body is exposed before calling `inferDefEqAttr`. When the body is not exposed, we skip the `@[defeq]` inference to avoid validation errors. Without this fix, using `@[simps]` on a definition that is not `@[expose]`d produces an error like: ``` Theorem Foo_bar has a `rfl`-proof and was thus inferred to be `@[defeq]`, but validating that attribute failed: Not a definitional equality: the left-hand side ... is not definitionally equal to the right-hand side ... Note: This theorem is exported from the current module. This requires that all definitions that need to be unfolded to prove this theorem must be exposed. ``` The fix checks `(← getEnv).setExporting true |>.find? cfg.srcDeclName |>.any (·.hasValue)` to determine if the definition body is visible in the public scope, and only calls `inferDefEqAttr` if it is. 🤖 Prepared with Claude Code | t-meta awaiting-author merge-conflict | 51/3 | Mathlib/CategoryTheory/Galois/EssSurj.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean,Mathlib/Tactic/Simps/Basic.lean,MathlibTest/SimpsModule.lean | 4 | 16 | ['JovanGerb', 'Vierkantor', 'github-actions', 'joneugster', 'kim-em', 'mathlib-merge-conflicts'] | joneugster | 1 day ago | 39 days ago | 37 days |
| 35963 | Parcly-Taxel | refactor: review Kleene algebra axioms | The docstring did not match the actual conditions in the `KleeneAlgebra` class and there was one more condition than necessary. We replace `one_le_kstar, mul_kstar_le_kstar, kstar_mul_le_kstar` with ```lean one_add_mul_kstar (a : α) : 1 + a * a∗ = a∗ one_add_kstar_mul (a : α) : 1 + a∗ * a = a∗ ``` From the pair, the trio is trivially derivable. The pair's derivation from the trio is Proposition 2 in Kozen's 1994 paper. We also remove the `bot` and `bot_le` fields in `IdemSemiring`, since the remaining axioms already show `0 ≤ a` for all `a`. | t-algebra | 102/93 | Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/Computability/Language.lean | 4 | 11 | ['Parcly-Taxel', 'github-actions', 'plp127', 'vihdzp'] | nobody | 1 day ago | 1 day ago | 1 day |
| 35974 | justus-springer | feat(Algebra/Polynomial/Bivariate): more API for swap | --- [](https://gitpod.io/from-referrer/) | t-algebra maintainer-merge | 10/0 | Mathlib/Algebra/Polynomial/Bivariate.lean | 1 | 2 | ['github-actions', 'robin-carlier'] | nobody | 1 day ago | 1 day ago | 1 day |
| 35993 | xgenereux | chore: fix typo and add to simp | There is a typo in the first lemma. As for the simp set, we of course can't have both, I think it makes more sense like this. I had an instance where having `symm_toRingEquiv` in the simp set would stop my simp call. In particular when you are applying the morphism to an element you don't get the simplification via `AlgEquiv.coe_ringEquiv`. (If we're given `(↑f).symm a` if should simplify to `f.symm a` which, to my understanding, is achieved by pulling out the coe and then applying `AlgEquiv.coe_ringEquiv`.) --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-CI | 2/3 | Mathlib/Algebra/Algebra/Equiv.lean | 1 | 1 | ['github-actions'] | nobody | 1 day ago | unknown | unknown |
| 35095 | thorimur | feat: overlapping instances linter | This PR contributes a syntax linter that fires on declarations with local instances which overlap on data-carrying projections, developed as an interactive version of @JovanGerb 's environment linter for the same purpose (#33677).
It is currently prohibitively expensive to run this linter in CI (see [bench results](https://radar.lean-lang.org/repos/mathlib4/commits/5a9f0ed1fe60b3a5c94880df4130b1bc1be764ed?reference=789108e1c80a056f4ccbfbc7cc1f9d40594087d3)). This linter therefore only runs interactively, in the language server.
We may want a faster, compiled version to run in CI as an environment linter for a hybrid strategy.
Co-authored-by: Jovan Gerbscheid |
large-import | 619/9 | Mathlib.lean,Mathlib/Algebra/Module/Lattice.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Init.lean,Mathlib/Lean/ContextInfo.lean,Mathlib/Lean/Elab/InfoTree.lean,Mathlib/Lean/Message.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/OverlappingInstances.lean,MathlibTest/OverlappingInstances.lean | 11 | 26 | ['JovanGerb', 'Vierkantor', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'thorimur'] | nobody | 1 day ago | unknown | unknown |
| 15355 | adomani | feat: MiM PR report | --- [](https://gitpod.io/from-referrer/) | WIP merge-conflict | 193/0 | .github/workflows/monthly_pr_report.yaml,scripts/README.md,scripts/find_labels.sh | 3 | 18 | ['YaelDillies', 'adomani', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | nobody | 1 day ago | unknown | unknown |
| 34263 | grunweg | feat: mfderiv_smul | Some invisible mathematics is showing up when working with scalar multiplication by a function: a priori, the `mfderiv` yields an element in a suitable tangent space --- which we identity implicitly with the corresponding vector/scalar. We use a `letI` with an explicit type ascription to deal with this. From the path towards geodesics and the Levi-Civita connection. Co-authored-by: Patrick Massot [patrickmassot@free.fr](mailto:patrickmassot@free.fr) --- - Better ideas on the implicit identification above are welcome. - As are comments on the lemma location: as this proof uses several lemmas about `mfderiv`, it seemed easiest to create a new file for import reasons. - [ ] depends on: #34262 [](https://gitpod.io/from-referrer/) | t-differential-geometry blocked-by-other-PR | 73/0 | Mathlib.lean,Mathlib/Geometry/Manifold/MFDeriv/SMul.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 day ago | unknown | unknown |
| 34236 | homeowmorphism | feat(GroupTheory/FinitelyPresentedGroup): add finitely presented groups | Formulation of finitely presented groups feat(GroupTheory/FinitelyPresentedGroup): add finitely presented groups We define the notion of `IsPresented` and `IsFinitelyPresented` with equivalent datatype notions, what it means for a subgroup to be finitely generated in the normal closure, and some instances of finitely presented groups. This started as an ItaLean2025 project. The related Zulip thread is here: https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Finitely.20Presented.20Groups/with/567565752. Use of AI: * Aristotle was used for giving a preliminary proof of some statements as this is my first contribution and I wanted to understand how to prove things; they have since been changed. * ChatGPT 5.2 was used to generate some of the proof sub-statements for efficiency once the mathematical blueprints of the proofs have been worked out. * ChatGPT 5.3 was used to rapidly refactor the code. Human review by PR author not finished. --- - [ ] depends on: #34580 - [ ] depends on: #34624 - [ ] depends on: #35033 - [ ] depends on: #34621 - [ ] depends on: #35029 - [ ] depends on: #35994 [](https://gitpod.io/from-referrer/) | t-group-theory new-contributor blocked-by-other-PR | 477/2 | Mathlib.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean | 5 | 14 | ['github-actions', 'homeowmorphism', 'kbuzzard', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 1 day ago | 39 days ago | 42 seconds |
| 22464 | adomani | feat(CI): declarations diff in Lean | Rewrites the `declaration_diff` script in Lean. You can see the effect of the new script in the testing branch #22497. The new CI step runs in approximately 5mins, but is separate from the `build` step. --- [](https://gitpod.io/from-referrer/) | awaiting-author CI merge-conflict | 151/0 | .github/workflows/PR_summary_lean.yml,scripts/README.md,scripts/declarations_diff.lean,scripts/declarations_diff_lean_shell_glue.sh | 4 | 8 | ['bryangingechen', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 22648 | adomani | test: lean implementation decl diff quandle | --- [](https://gitpod.io/from-referrer/) | merge-conflict | 210/1 | .github/workflows/PR_summary_lean.yml,Mathlib/Algebra/Quandle.lean,scripts/README.md,scripts/declarations_diff.lean,scripts/declarations_diff_lean_shell_glue.sh | 5 | 5 | ['adomani', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 29909 | Vierkantor | feat(CI): add build output to CI workflows | This PR uses the Zulip build report script (originally developed for the nightly-regression-report workflow) to add a summary of build output to other Zulip posts about workflow results. This allows us to more easily see the origin of a failure. This requires redoing the script a little to make it a bit more flexible, and the output is slightly reformatted to become consistent across the various workflows (4 of them that post to Zulip). We don't do so for the nightly-testing failures, since those run in a different workflow, and it would be a lot of work to access the command output from another workflow. --- [](https://gitpod.io/from-referrer/) | CI delegated merge-conflict | 55/35 | .github/workflows/nightly-docgen.yml,.github/workflows/nightly-regression-report.yml,scripts/zulip_build_report.sh | 3 | 11 | ['Vierkantor', 'adomani', 'github-actions', 'joneugster', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | joneugster | 1 day ago | 4 days ago | 48 days |
| 34204 | loefflerd | feat(LinearAlgebra/QuadraticForm): Sylvester's law of inertia | Prove the uniqueness part of Sylvester's law of inertia (we already have the existence part, but the uniqueness is a long-standing TODO). This PR is based on work carried out by Sina Keller, Philipp Schumann, and Nicolas Trutmann in the course of their studies at ETH Zürich. --- - [x] depends on: #34110 - [x] depends on: #34309 - [x] depends on: #34493 | t-algebra | 265/0 | Mathlib.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/QuadraticForm/Signature.lean | 3 | 38 | ['AntoineChambert-Loir', 'github-actions', 'joelriou', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp'] | joelriou | 1 day ago | 1 day ago | 7 days |
| 35477 | harahu | chore(Geometry): fix markdown lists | We make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. Furthermore, we split some text out of the ultimate item of some markdown lists, where the text was accidentally attached to it. --- [](https://gitpod.io/from-referrer/) | 11/9 | Mathlib/Geometry/Diffeology/Basic.lean,Mathlib/Geometry/Euclidean/Sphere/Ptolemy.lean,Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean,Mathlib/Geometry/Manifold/MFDeriv/Defs.lean | 6 | 9 | ['github-actions', 'grunweg', 'harahu', 'mathlib-merge-conflicts'] | grunweg | 1 day ago | 3 days ago | 10 days | |
| 34727 | ocfnash | feat: the Geck construction yields a Lie algebra with the expected Cartan matrix | --- Closes https://github.com/leanprover-community/mathlib4/issues/28714 [](https://gitpod.io/from-referrer/) | WIP t-algebra large-import | 830/2 | Mathlib.lean,Mathlib/Algebra/Lie/Basis.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/TraceForm.lean,Mathlib/Algebra/Lie/Weights/Cartan.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Data/Set/Finite/Range.lean,Mathlib/LinearAlgebra/Basis/Basic.lean,Mathlib/LinearAlgebra/LinearIndependent/Defs.lean,Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basis.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/ModularLattice.lean,Mathlib/Order/SupIndep.lean,Mathlib/RingTheory/Regular/Category.lean | 16 | 1 | ['github-actions'] | nobody | 1 day ago | unknown | unknown |
| 35977 | jessealama | feat(Algebra/Homology): add dimension lemmas for homological complex differentials | Show that `dFrom` and `dTo` in a homological complex vanish when the target or source object is zero, and add `Mathlib.Algebra.Homology.ChainComplex.Dimension` with dimension-related properties for complexes of modules over a division ring over an arbitrary `ComplexShape ι`: zero range from zero objects, finrank equalities between `dFrom`/`dTo` ranges and the underlying differential, inclusion of the range of `dTo` in the kernel of `dFrom`, and a finrank equality for adjacent differentials in ℤ-indexed chain complexes. Spun off from #29713. | t-algebra | 111/0 | Mathlib.lean,Mathlib/Algebra/Homology/ChainComplex/Dimension.lean,Mathlib/Algebra/Homology/HomologicalComplex.lean | 3 | 2 | ['github-actions', 'mathlib-bors'] | nobody | 1 day ago | 1 day ago | 5 hours |
| 29186 | winstonyin | feat: IsIntegralCurve for solutions to ODEs | I define `IsIntegralCurve` etc. for solutions to ODEs on vector spaces. The translation and scaling lemmas are also included. This parallels `IsMIntegralCurve` etc. for manifolds. Moved from #26534. - [x] depends on: #26563 --- [](https://gitpod.io/from-referrer/) | t-dynamics t-differential-geometry t-analysis | 309/17 | Mathlib.lean,Mathlib/Analysis/ODE/Basic.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean | 5 | 32 | ['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mcdoll', 'michaellee94', 'sgouezel', 'winstonyin'] | sgouezel | 1 day ago | 3 days ago | 45 days |
| 35096 | dagurtomas | chore(CategoryTheory): reduce API duplication for concrete categories | --- [](https://gitpod.io/from-referrer/) | WIP merge-conflict | 186/1376 | Mathlib/Algebra/Category/AlgCat/Basic.lean,Mathlib/Algebra/Category/CommAlgCat/Basic.lean,Mathlib/Algebra/Category/CommBialgCat.lean,Mathlib/Algebra/Category/Grp/Adjunctions.lean,Mathlib/Algebra/Category/Grp/Basic.lean,Mathlib/Algebra/Category/Grp/Colimits.lean,Mathlib/Algebra/Category/Grp/EpiMono.lean,Mathlib/Algebra/Category/Grp/Kernels.lean,Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean,Mathlib/Algebra/Category/Grp/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/Injective.lean,Mathlib/Algebra/Category/ModuleCat/Kernels.lean,Mathlib/Algebra/Category/ModuleCat/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean,Mathlib/Algebra/Category/ModuleCat/Products.lean,Mathlib/Algebra/Category/ModuleCat/Projective.lean,Mathlib/Algebra/Category/ModuleCat/Semi.lean,Mathlib/Algebra/Category/MonCat/Adjunctions.lean,Mathlib/Algebra/Category/MonCat/Basic.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/Algebra/Category/MonCat/Limits.lean,Mathlib/Algebra/Category/Ring/Adjunctions.lean,Mathlib/Algebra/Category/Ring/Basic.lean,Mathlib/Algebra/Category/Ring/Colimits.lean,Mathlib/Algebra/Category/Ring/FilteredColimits.lean,Mathlib/Algebra/Category/Ring/FinitePresentation.lean,Mathlib/Algebra/Category/Ring/Instances.lean,Mathlib/Algebra/Category/Ring/Limits.lean,Mathlib/Algebra/Category/Semigrp/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean,Mathlib/CategoryTheory/ConcreteCategory/Basic.lean,Mathlib/CategoryTheory/Extensive.lean,Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Internal/Module.lean,Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean,Mathlib/CategoryTheory/SingleObj.lean,Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean,Mathlib/Order/Category/BddDistLat.lean,Mathlib/Order/Category/BddLat.lean,Mathlib/Order/Category/BddOrd.lean,Mathlib/Order/Category/BoolAlg.lean,Mathlib/Order/Category/DistLat.lean,Mathlib/Order/Category/FinBddDistLat.lean,Mathlib/Order/Category/Frm.lean,Mathlib/Order/Category/HeytAlg.lean,Mathlib/Order/Category/Lat.lean,Mathlib/Order/Category/LinOrd.lean,Mathlib/Order/Category/PartOrd.lean,Mathlib/Order/Category/PartOrdEmb.lean,Mathlib/Order/Category/Preord.lean,Mathlib/Topology/Algebra/Category/ProfiniteGrp/Completion.lean,Mathlib/Topology/Category/Profinite/Basic.lean,Mathlib/Topology/Category/TopCat/Basic.lean,Mathlib/Topology/Category/TopCat/EffectiveEpi.lean,Mathlib/Topology/Category/TopCat/GrothendieckTopology.lean,Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean,Mathlib/Topology/Category/TopCat/Limits/Konig.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean,Mathlib/Topology/Gluing.lean | 68 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 35110 | bryangingechen | ci: refactor maintainer_*.yml workflows to use new helper actions | The workflows `maintainer_{bors,merge}.yml` workflows were rewritten in #26288 so that they were split into two workflows. The first workflow is triggered by an issue comment, PR review, or PR review comment and does not have access to secrets. The second workflow is triggered by the successful completion of the first workflow and does the actual labeling of the PR using its access to secrets. Data about the PR and the triggering comment / review is passed between workflows by use of a workflow artifact. It turns out this is a fairly useful pattern, so I've created [leanprover-community/privilege-escalation-brdge](https://github.com/leanprover-community/privilege-escalation-bridge) with some helper actions that we will be able to use in more workflows. This PR refactors the abovementioned PRs to use the new actions. There is a slight change in behavior: previously PRs which were opened from a branch in this repo (as opposed to a branch in a fork) would just be handled using some steps in the first workflow (since the workflow does get access to secrets for such PRs) and the second workflow would not be triggered. Now all PRs are treated equally -- they all go through both workflows. This will slow down labeling for the (rare) PRs which are still opened from branches in this repo, however, I think that's outweighed by the resulting simplification of the workflows. Other than this though the behavior should be unchanged. Prepared with codex. --- [](https://gitpod.io/from-referrer/) | CI awaiting-author merge-conflict | 106/393 | .github/workflows/maintainer_bors.yml,.github/workflows/maintainer_bors_wf_run.yml,.github/workflows/maintainer_merge.yml,.github/workflows/maintainer_merge_wf_run.yml | 4 | 8 | ['bryangingechen', 'github-actions', 'joneugster', 'mathlib-merge-conflicts'] | joneugster | 1 day ago | unknown | unknown |
| 35113 | bryangingechen | ci: refactor commit_verification so it works on PRs from forks | Currently the commit verification workflow fails when run on a PR from a fork because it tries to post a comment, but its GITHUB_TOKEN is read-only. [Example failure](https://github.com/leanprover-community/mathlib4/actions/runs/21796757425/job/62885536927?pr=34973) This PR refactors the commit verification workflow using the new [leanprover-community/privilege-escalation-bridge](https://github.com/leanprover-community/privilege-escalation-bridge), splitting it into two workflows where the second one (triggered by `workflow_run` has access to a GITHUB_TOKEN that can post comments). We also make the workflow run the commit verification scripts from `master` rather than the PR branch to close a small security issue where someone could spoof verification / get the workflow to post arbitrary comments by modifying the scripts in their branch. Prepared with codex. --- [](https://gitpod.io/from-referrer/) | CI awaiting-author merge-conflict | 97/24 | .github/workflows/commit_verification.yml,.github/workflows/commit_verification_wf_run.yml | 2 | 26 | ['bryangingechen', 'github-actions', 'joneugster', 'marcelolynch', 'mathlib-merge-conflicts'] | joneugster | 1 day ago | unknown | unknown |
| 35349 | RemyDegenne | feat: data processing inequality for the Kullback-Leibler divergence | --- - [ ] depends on: #34841 - [ ] depends on: #35089 - [ ] depends on: #27953 [](https://gitpod.io/from-referrer/) | WIP t-measure-probability large-import blocked-by-other-PR merge-conflict | 994/1 | Mathlib.lean,Mathlib/Analysis/Convex/Deriv.lean,Mathlib/InformationTheory/KullbackLeibler/ChainRule.lean,Mathlib/InformationTheory/KullbackLeibler/DataProcessing.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/RadonNikodym.lean,Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean,Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean,Mathlib/MeasureTheory/Measure/Trim.lean,Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean,Mathlib/Probability/Kernel/Composition/RadonNikodym.lean | 10 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 35412 | joneugster | feat(Tactic/Linter): add unicode linter for unicode variant-selectors | This PR continues the work from #17129. Original PR: https://github.com/leanprover-community/mathlib4/pull/17129 | t-linter merge-conflict | 281/49 | Mathlib/GroupTheory/GroupExtension/Defs.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Widget/Conv.lean,Mathlib/Tactic/Widget/GCongr.lean,MathlibTest/LintStyle.lean,MathlibTest/hint.lean,MathlibTest/hintAll.lean | 11 | 5 | ['github-actions', 'joneugster', 'mathlib-merge-conflicts'] | grunweg | 1 day ago | 7 days ago | 8 days |
| 35602 | JovanGerb | feat: replace `IsWellFounded` with `WellFounded` | This PR is an attempt to deprecate `IsWellFounded`. The reason it that it is entirely equivalent to `WellFounded`, with the only difference being that `IsWellFounded` is a class. This PR instead marks `WellFounded` as a class. What is annoying is that you sometimes want the API to use it as a class and sometimes as an explicit argument, and it's not entirely clear to me what the best compromise is: duplicating API, or just picking one form and using it. --- [](https://gitpod.io/from-referrer/) | t-data merge-conflict | 431/473 | Archive/Imo/Imo1988Q6.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/Group/UniqueProds/Basic.lean,Mathlib/Algebra/Lie/Engel.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean,Mathlib/CategoryTheory/CofilteredSystem.lean,Mathlib/CategoryTheory/Subobject/ArtinianObject.lean,Mathlib/CategoryTheory/Subobject/NoetherianObject.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean,Mathlib/Data/Finset/Dedup.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/Finsupp/WellFounded.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/Data/Nat/Cast/WithTop.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Nat/WithBot.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Rel.lean,Mathlib/Data/Set/Finite/Lemmas.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Deprecated/Estimator.lean,Mathlib/GroupTheory/ArchimedeanDensely.lean,Mathlib/LinearAlgebra/ExteriorPower/Basis.lean,Mathlib/Logic/Hydra.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Cofinal.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Cover.lean,Mathlib/Order/Extension/Well.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/InitialSeg.lean,Mathlib/Order/Minimal.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/Order/RelIso/Set.lean,Mathlib/Order/RelSeries.lean,Mathlib/Order/Shrink.lean,Mathlib/Order/SuccPred/Archimedean.lean,Mathlib/Order/WellFounded.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/Order/WellQuasiOrder.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Bezout.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean,Mathlib/RingTheory/FiniteLength.lean,Mathlib/RingTheory/Length.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean,Mathlib/RingTheory/Noetherian/Basic.lean,Mathlib/RingTheory/Noetherian/Defs.lean,Mathlib/RingTheory/Polynomial/UniqueFactorization.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/SimpleModule/Basic.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Ideal.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean,Mathlib/RingTheory/Valuation/Archimedean.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/SetTheory/Ordinal/Rank.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/SetTheory/ZFC/PSet.lean,Mathlib/SetTheory/ZFC/Rank.lean,Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean,Mathlib/Topology/NoetherianSpace.lean | 81 | 27 | ['JovanGerb', 'SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | vihdzp | 1 day ago | unknown | unknown |
| 35766 | DavidLedvinka | feat(Probability): add Monotonicity of setBernoulli on IsUpperSet | merge-conflict | 254/47 | Mathlib.lean,Mathlib/MeasureTheory/Measure/AEMeasurable.lean,Mathlib/MeasureTheory/Measure/AbsolutelyContinuous.lean,Mathlib/MeasureTheory/Measure/Dirac.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean,Mathlib/Order/UpperLower/Relative.lean,Mathlib/Probability/Combinatorics/BinomialRandomGraph/Defs.lean,Mathlib/Probability/Distributions/Bernoulli.lean,Mathlib/Probability/Distributions/SetBernoulli.lean,Mathlib/Probability/ProductMeasure.lean,Mathlib/Topology/UnitInterval.lean | 11 | 16 | ['DavidLedvinka', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown | |
| 35790 | Brian-Nugent | feat(CategoryTheory/Algebra): Flasque Sheaves have vanishing cohomology | This is a work in progress. --- - [ ] depends on: #34742 - [ ] depends on: #34267 - [ ] depends on: #35785 [](https://gitpod.io/from-referrer/) | WIP new-contributor large-import blocked-by-other-PR merge-conflict | 796/3 | Mathlib.lean,Mathlib/Algebra/Category/Grp/AB.lean,Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/Algebra/Homology/ShortComplex/Exact.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean,Mathlib/Topology/Sheaves/Abelian.lean,Mathlib/Topology/Sheaves/AddCommGrpCat.lean,Mathlib/Topology/Sheaves/Flasque.lean,Mathlib/Topology/Sheaves/Presheaf.lean,Mathlib/Topology/Sheaves/Sheaf.lean,Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean,Mathlib/Topology/Sheaves/Skyscraper.lean,Mathlib/Topology/Sheaves/ZeroOutside.lean | 14 | 7 | ['Brian-Nugent', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smorel394'] | dagurtomas | 1 day ago | unknown | unknown |
| 26743 | grunweg | feat: product rule for Lie bracket on manifolds | On the path towards geodesics and the Levi-Civita connection. --- [](https://gitpod.io/from-referrer/) | t-differential-geometry | 199/27 | Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean,Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean,Mathlib/Geometry/Manifold/VectorField/Pullback.lean | 4 | 7 | ['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | PatrickMassot | 1 day ago | 1 day ago | 12 days |
| 35998 | gasparattila | feat: affine isomorphisms between spaces of affine maps | These isomorphisms are analogous to `LinearEquiv.arrowCongr` and `LinearEquiv.congrLeft`. --- [](https://gitpod.io/from-referrer/) | t-algebra | 123/0 | Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean | 1 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 hour |
| 26221 | grunweg | Mr. Covariant Derivatives | This PR is a work in progress, and will land in individual pieces. Some contributions include - additional API for differentiability of vector bundle sections - finite sums, differences and scalar products of smooth sections are smooth - the same result for mdifferentiable - add missing mdifferentiable congruence lemmas - define smooth local frames of a vector bundle - a general tensoriality criterion (to be cleaned up!) - define covariant derivatives, proving their tensoriality and that convex combinations of these are covariant derivatives - the classification of covariant derivatives over a trivial bundle - additional API for the Lie bracket of vector fields: the product rule (one sorry left!), Lie bracket at zero vanishes - torsion of a connection, torsion-free connections - Gram-Schmidt procedure for sections of a Riemannian vector bundle - orthonormal frames on a Riemannian vector bundle - connections compatible with a metric; definition of the Levi-Civita connection - uniqueness of the Levi-Civita connection - Christoffel symbols - in progress: existence of the Levi-Civita connection (connection done; torsion-freeness and compatibility in progress) - custom elaborators for sections in a vector bundle (converting dependent to non-dependent functions) - custom elaborators for inferring a model with corners, in differentiability/smoothness definitions - a `#check'` command and tactic which only shows explicit arguments More to come soon! Joint work with @PatrickMassot; supported by the FMJH. --- - [x] depends on: #26360 - [x] depends on: #26672 - [x] depends on: #26673 - [x] depends on: #26674 - [x] depends on: #26864 (more of a by-product) - [x] depends on: #26865 - [x] depends on: #26866 - [x] depends on: #26870 - [x] depends on: #26871 - [x] depends on: #26671 - [x] depends on: #26676 - [x] depends on: #26677 - [x] depends on: #26678 - [x] depends on: #26686 - [x] depends on: #26687 - [x] depends on: #26688 - [x] depends on: #26702 - [x] depends on: #26709 - [x] depends on: #26734 - [ ] depends on: #26743 (still WIP) - [x] depends on: #26894 - [x] depends on: #26921 - [x] depends on: #26922 - [x] depends on: #27020 - [x] depends on: #27021 - [x] depends on: #30307 - [x] depends on: #27023 - [ ] depends on: #27024 - [ ] depends on: #27025 - [x] depends on: #30338 - [ ] depends on: #30083 - [ ] depends on: #30339 - [ ] depends on: #31194 - [ ] depends on: #34262 - [ ] depends on: #34263 [](https://gitpod.io/from-referrer/) | t-differential-geometry blocked-by-other-PR merge-conflict | 5910/258 | Mathlib.lean,Mathlib/Geometry/Manifold/CheatSheet.md,Mathlib/Geometry/Manifold/PartitionOfUnity.lean,Mathlib/Geometry/Manifold/Riemannian/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/LeviCivita.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Lift.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Prelim.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Torsion.lean,Mathlib/Geometry/Manifold/VectorBundle/GramSchmidtOrtho.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean,Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean,Mathlib/Geometry/Manifold/VectorBundle/Misc.lean,Mathlib/Geometry/Manifold/VectorBundle/OrthonormalFrame.lean,Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean,Mathlib/Geometry/Manifold/VectorBundle/Tensoriality.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean,Mathlib/Geometry/Manifold/VectorField/Pullback.lean,Mathlib/Topology/FiberBundle/Trivialization.lean | 20 | 13 | ['github-actions', 'grunweg', 'idontgetoutmuch', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 34138 | pfaffelh | feat(MeasureTheory): Introduce `MassFunction α` giving rise to a `Measure α ⊤` | Define `MassFunction α := α → ℝ≥0∞` Define `toMeasure (w : MassFunction α) : @Measure α ⊤` as a sum of diracs Show properties of the resulting objects This PR intends to start a more userfriendly interaction with probability mass functions (`PMF`). There are two main differences between `MassFunction` and `PMF`: * `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `MassFunction`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.) * The `toMeasure` function of `MassFunction` directly defines the measure as a sum of diracs, which immediately makes computations possible. Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change) --- [](https://gitpod.io/from-referrer/) | t-measure-probability new-contributor | 224/0 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/MassFunction.lean | 4 | 10 | ['DavidLedvinka', 'github-actions', 'metakunt', 'pfaffelh'] | kex-y | 1 day ago | 1 day ago | 41 days |
| 30357 | grunweg | chore: golf using custom elaborators | Test the elaborators on a large scale by trying them out. They mostly work very well. Benchmarking results so far are very positive! Unexpected errors: - the defeq check on the set fails in `Riemannian/Basic.lean`; TODO minimise and investigate - `Atlas.lean`: coercion on I itself does not fire? - `SpecificFunctions.lean`: more normed-space-like thingies, perhaps wontfix? --- XXX: revert ContMDiffOn.smul_section_of_tsupport rename! TODO: check if there are further opportunities to golf, with newly added lemmas re-bench! - [x] depends on: #30463 [](https://gitpod.io/from-referrer/) | t-differential-geometry awaiting-author merge-conflict | 1086/1336 | Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean,Mathlib/Geometry/Manifold/Algebra/LieGroup.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean,Mathlib/Geometry/Manifold/Algebra/Structures.lean,Mathlib/Geometry/Manifold/BumpFunction.lean,Mathlib/Geometry/Manifold/Complex.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean,Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/ContMDiffMap.lean,Mathlib/Geometry/Manifold/Diffeomorph.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/Geometry/Manifold/Instances/Icc.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean,Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean,Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean,Mathlib/Geometry/Manifold/Riemannian/Basic.lean,Mathlib/Geometry/Manifold/Riemannian/PathELength.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Geometry/Manifold/SmoothEmbedding.lean,Mathlib/Geometry/Manifold/VectorBundle/Hom.lean,Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean,Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean,Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean,Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean,Mathlib/Geometry/Manifold/VectorField/Pullback.lean,Mathlib/Geometry/Manifold/WhitneyEmbedding.lean,Mathlib/NumberTheory/ModularForms/Basic.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/Manifold.lean,build.yml,small diffeo tasks-projects for newbes.md,test.lean | 46 | 14 | ['github-actions', 'grunweg', 'leanprover-bot', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 36007 | grunweg | chore(Geometry/Manifold/Algebra): golf using custom elaborators | --- Split out from #30357. [](https://gitpod.io/from-referrer/) | t-differential-geometry | 110/112 | Mathlib/Geometry/Manifold/Algebra/LieGroup.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean,Mathlib/Geometry/Manifold/Algebra/Structures.lean | 4 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day |
| 36009 | grunweg | chore(Geometry/Manifold/MFDeriv/SpecificFunctions): golf using custom… | … elaborators --- Split out from #30357. [](https://gitpod.io/from-referrer/) | t-differential-geometry | 185/241 | Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean | 1 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day |
| 36010 | grunweg | chore(Geometry/Manifold/MFDeriv): golf using custom elaborators | --- Split out from #30357. [](https://gitpod.io/from-referrer/) | t-differential-geometry | 64/70 | Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean,Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean,Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean,Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean | 4 | 1 | ['github-actions'] | nobody | 1 day ago | unknown | unknown |
| 36011 | grunweg | chore(Geometry/Manifold/VectorBundle/MDifferentiable): golf using cus… | …tom elaborators --- Split out from #30357. [](https://gitpod.io/from-referrer/) | t-differential-geometry | 104/160 | Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean | 1 | 1 | ['github-actions'] | nobody | 1 day ago | unknown | unknown |
| 35724 | matthewjasper | feat(RingTheory/DedekindDomain/AdicValuation): v-adic integers of `K` are a localization at v^c | Part of showing `R` is dense in `O_v`, which is used to show that `R / v` is isomorphic to the residue field of `O_v` and to construct the base change isomorphism for finite adeles. --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor large-import FLT | 59/0 | Mathlib/RingTheory/DedekindDomain/AdicValuation.lean | 1 | 6 | ['github-actions', 'matthewjasper', 'riccardobrasca'] | riccardobrasca | 1 day ago | 1 day ago | 6 days |
| 35291 | mcdoll | feat(Fourier): improved version of Riemann-Lebesgue | --- The Riemann-Lebesgue lemma is merely a side note of the fact that we need to relate the extension of the Schwartz Fourier transform to L1 to the original one. RL on Schwartz is trivial by embedding into the correct space. - [ ] depends on: #35953 - [ ] depends on: #35954 [](https://gitpod.io/from-referrer/) | WIP large-import merge-conflict blocked-by-other-PR | 249/140 | Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean,Mathlib/Analysis/Fourier/FourierTransform.lean,Mathlib/Analysis/Fourier/L1Space.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean | 6 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 34705 | mpenciak | feat(AlgebraicGeometry): Grassmannian functor | This PR shows that the association `A → A ⊗[R] M` for an `R`-module `M`, and `R`-algebra `A` forms a functor. (Disclosure: This PR was partially prepared by Claude) --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 109/2 | Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Grassmannian.lean | 2 | 7 | ['github-actions', 'mathlib-merge-conflicts', 'mpenciak', 'robin-carlier'] | mariainesdff | 1 day ago | 1 day ago | 18 days |
| 35513 | vihdzp | refactor: redefine `Order.cof` for a preorder | ... instead of using an unbundled relation. This makes it easier to work with, and avoids some `swap rᶜ` incantations. There are still a bunch of lemmas that make use of unbundled order relations; these will get fixed in follow-up PRs. --- - [x] depends on: #35517 - [x] depends on: #35519 [](https://gitpod.io/from-referrer/) | t-set-theory t-order maintainer-merge | 220/241 | Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/Order/Cofinal.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean | 3 | 9 | ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | b-mehta | 1 day ago | 4 days ago | 7 days |
| 36006 | gasparattila | feat(LinearAlgebra): dimension of `P →ᵃ[R] W` | --- - [ ] depends on: #35998 [](https://gitpod.io/from-referrer/) | t-algebra large-import blocked-by-other-PR | 149/0 | Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean | 2 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 1 day ago | unknown | unknown |
| 34826 | wwylele | feat(Geometry/Euclidean): volume of a simplex | WIP. sorry-free but still need cleaning up and breaking into smaller PRs --- - [ ] depends on: #34697 - [ ] depends on: #34858 - [ ] depends on: #34859 - [ ] depends on: #35039 - [ ] depends on: #35358 - [ ] depends on: #35365 - [ ] depends on: #35837 [](https://gitpod.io/from-referrer/) | t-euclidean-geometry blocked-by-other-PR | 941/0 | Mathlib.lean,Mathlib/Geometry/Euclidean/Volume/Integral.lean,Mathlib/Geometry/Euclidean/Volume/Measure.lean,Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean | 4 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 1 day ago | unknown | unknown |
| 36014 | euprunin | chore: golf proofs | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Polynomial.smeval_commute_left`: unchanged 🎉 * `lp.norm_rpow_eq_tsum`: unchanged 🎉 * `ComputablePred.rice`: unchanged 🎉 * `ZNum.cmp_to_int`: unchanged 🎉 * `ZMod.inv_coe_unit`: unchanged 🎉 * `Ideal.Filtration.submodule_fg_iff_stable`: 343 ms before, 197 ms after 🎉 * `t2Space_of_properSMul_of_t1Group`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 10/43 | Mathlib/Algebra/Polynomial/Smeval.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Computability/Halting.lean,Mathlib/Data/Num/ZNum.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/RingTheory/Filtration.lean,Mathlib/Topology/Algebra/ProperAction/Basic.lean | 7 | 1 | ['github-actions'] | nobody | 1 day ago | unknown | unknown | |
| 35329 | BryceT233 | feat(Data/Finsupp): add computational lemmas for cons and single | This PR introduces `cons_eq_single_zero_iff` and `cons_eq_single_succ_iff`, which are helper lemmas designed to facilitate calculations (or simplification) of equalities involving `Finsupp.cons` and `Finsupp.single`. --- [](https://gitpod.io/from-referrer/) | t-data new-contributor | 25/0 | Mathlib/Data/Finsupp/Fin.lean | 1 | 2 | ['github-actions'] | TwoFX | 1 day ago | 1 day ago | 15 days |
| 36015 | mcdoll | chore(Analysis/SchwartzMap): unify style for `mkCLM` uses | Avoid using `refine` for definitions and unify the indentation. --- [](https://gitpod.io/from-referrer/) | t-analysis | 86/85 | Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean | 2 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day |
| 35953 | mcdoll | feat(Analysis/SchwartzMap): estimates for `Lp` and `BCF` norms | --- [](https://gitpod.io/from-referrer/) | t-analysis | 50/0 | Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean | 2 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 18 hours |
| 33935 | mckoen | feat(CategoryTheory/Monoidal/Arrow): define monoidal structure on arrow category | defines a monoidal category structure on the arrow category of a cartesian closed category. --- - [x] depends on: #33974 - [x] depends on: #34887 [](https://gitpod.io/from-referrer/) | t-category-theory | 487/0 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Arrow.lean,Mathlib/CategoryTheory/Monoidal/Limits/Shapes/Pullback.lean | 3 | 6 | ['dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mckoen'] | nobody | 1 day ago | 5 days ago | 2 days |
| 34491 | urkud | feat(ContinuousMultilinearMap): generalize some definitions | ... from normes spaces to topological vector spaces --- - [ ] depends on: #35430 [](https://gitpod.io/from-referrer/) | t-analysis delegated | 182/112 | Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean | 5 | 24 | ['PatrickMassot', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'urkud'] | mariainesdff | 1 day ago | 1 day ago | 19 days |
| 35994 | homeowmorphism | feat(FreeGroup): add reindexing lemmas for injective/surjective/bijective maps composed with freeGroupCongr | Add lemmas in `FreeGroup.Map` showing that precomposing with `freeGroupCongr` preserves * `Function.Surjective`, * `Function.Injective`, * `Function.Bijective`, * Plus: a definition to transport `MulEquiv` s across generator reindexing (happy to get rid of this last one if reviewers don't think it'll be useful). This is a dependency of a larger PR to formalize finitely presented groups #34236. Use of AI: it was a refactor of the above larger project vibe-coded by Codex-GPT-5.3 which I then made changes to and checked. Copilot seems to think there are more problems to fix before making an official PR so this is pending a second review by author. --- [](https://gitpod.io/from-referrer/) | t-group-theory new-contributor | 36/0 | Mathlib/GroupTheory/FreeGroup/Basic.lean | 1 | 10 | ['copilot-pull-request-reviewer', 'github-actions', 'mathlib-bors'] | nobody | 1 day ago | unknown | unknown |
| 25906 | pfaffelh | feat(Topology/Compactness/CompactSystem): closed and compact square cylinders form a compact system | feat (Topology/Compactness/CompactSystem): Closed and compact square cylinders form a compact system. A square cylinder is a set of the form `s.pi t` in a product space. A closed compact square cylinder has `IsClosed (t i)` and `IsCompact (t i)` for all `i ∈ s`. This set system is a compact system (as introduced in PR #25899). Streamline the definition of square cylinders in MeasureTheory/Constructions/Cylinders on the way. Co-authors: Rémy Degenne remy.degenne@inria.fr --- - [ ] depends on: #25899 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24542.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24542* | merge-conflict t-topology | 716/65 | Mathlib.lean,Mathlib/Data/Set/Accumulate.lean,Mathlib/Data/Set/Dissipate.lean,Mathlib/Data/Set/Prod.lean,Mathlib/MeasureTheory/Constructions/Cylinders.lean,Mathlib/MeasureTheory/Constructions/ProjectiveFamilyContent.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/Topology/Compactness/CompactSystem.lean | 8 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 35900 | matthewjasper | chore: Fix non-defeq diamonds on OrderDual | This only makes changes to fix the diamonds, rather than the general defeq abuse with `OrderDual`. --- - [ ] depends on: #35995 [](https://gitpod.io/from-referrer/) | new-contributor t-order | 213/116 | Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/Group/Synonym.lean,Mathlib/Algebra/Order/GroupWithZero/Action/Synonym.lean,Mathlib/Algebra/Order/GroupWithZero/Synonym.lean,Mathlib/Algebra/Order/Module/Defs.lean,Mathlib/Algebra/Order/Module/Synonym.lean,Mathlib/Algebra/Order/Ring/Cast.lean,Mathlib/Algebra/Order/Ring/Synonym.lean,Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Normed/Group/Constructions.lean,Mathlib/Data/Nat/Cast/Synonym.lean,Mathlib/Order/Lattice.lean | 13 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 1 day ago | 1 day ago | 2 days |
| 34906 | seewoo5 | feat(NumberTheory/Bernoulli): von Staudt-Clausen theorem | --- Rado's proof ("A New Proof of a Theorem of v. Staudt", JLMS 1935) of [von Staudt-Clausen theorem](https://en.wikipedia.org/wiki/Von_Staudt%E2%80%93Clausen_theorem). Initially written by AxiomProver (see commit 97a308e) with further golfs with Claude and Codex. [](https://gitpod.io/from-referrer/) | t-number-theory large-import | 496/4 | Mathlib/NumberTheory/Bernoulli.lean,docs/references.bib | 2 | 2 | ['github-actions', 'kckennylau'] | MichaelStollBayreuth | 1 day ago | 5 days ago | 10 days |
| 35328 | astrainfinita | chore: use `IsLUB` `IsGLB` in `CompleteLattice` | --- - [ ] depends on: #35297 [](https://gitpod.io/from-referrer/) | t-order | 322/415 | Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/CategoryTheory/Subfunctor/Basic.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Set/BooleanAlgebra.lean,Mathlib/Geometry/Convex/Cone/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/Bounds/Image.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/CompleteBooleanAlgebra.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/CompleteLattice/Lemmas.lean,Mathlib/Order/CompleteLattice/PiLex.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/Concept.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/Copy.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Hom/Order.lean,Mathlib/Order/Interval/Basic.lean,Mathlib/Order/Nucleus.lean,Mathlib/Order/ScottContinuity/Prod.lean,Mathlib/Order/SupClosed.lean,Mathlib/Probability/Process/Filtration.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/Topology/Algebra/Group/GroupTopology.lean,Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean,Mathlib/Topology/Algebra/Ring/Basic.lean,Mathlib/Topology/UniformSpace/Basic.lean | 39 | 20 | ['astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | Vierkantor | 1 day ago | 6 days ago | 8 days |
| 35401 | joelriou | feat(CategoryTheory/Sites): the equivalence between `DescentData'` and `DescentData` | Co-authored-by: Christian Merten --- - [x] depends on: #35393 - [x] depends on: #35396 [](https://gitpod.io/from-referrer/) | t-category-theory | 64/3 | Mathlib/CategoryTheory/Sites/Descent/DescentDataPrime.lean | 1 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | adamtopaz | 1 day ago | 4 days ago | 4 days |
| 35599 | tb65536 | feat(RingTheory/Lasker): second uniqueness theorem for primary decomposition | This PR proves the second uniqueness theorem for primary decomposition. --- - [x] depends on: #34221 [](https://gitpod.io/from-referrer/) | t-ring-theory t-algebra | 84/6 | Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean,Mathlib/RingTheory/IsPrimary.lean,Mathlib/RingTheory/Lasker.lean | 3 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | riccardobrasca | 1 day ago | 4 days ago | 7 days |
| 35607 | gasparattila | fix(Tactic): make `eta_expand` idempotent | The docstring of `eta_expand` says that it puts terms into a normal form, implying that it is idempontent, however, this is not the case in some tricky cases. This PR changes `eta_expand` so that it gives the normal form in one step. --- [](https://gitpod.io/from-referrer/) | t-meta | 57/16 | Mathlib/Tactic/DefEqTransformations.lean,MathlibTest/DefEqTransformations.lean | 2 | 2 | ['github-actions', 'mathlib-bors'] | adamtopaz | 1 day ago | 10 days ago | 10 days |
| 35661 | chrisflav | feat(Geometry/Manifold): a smooth map induces a morphism of locally ringed spaces | --- I have put things in the `IsManifold` namespace, because `IsManifold.locallyRingedSpace` is in that namespace. It seems to me that this namespace is not very fitting, because `IsManifold` is not mentioned once. Since I am unfamiliar with this part of the library, I refrained from changing it, but I am happy to do so if preferred. [](https://gitpod.io/from-referrer/) | t-algebraic-geometry t-differential-geometry | 152/1 | Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/Geometry/Manifold/LocalInvariantProperties.lean,Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean | 4 | 2 | ['chrisflav', 'github-actions'] | ocfnash | 1 day ago | 9 days ago | 9 days |
| 35693 | euprunin | chore: avoid passing explicit lemmas to `grind` and (terminal) `simp_all` where unnecessary | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `SimpleGraph.Walk.IsCycle.getVert_injOn`: 684 ms before, 596 ms after 🎉 * `List.HasPeriod.gcd`: 846 ms before, 807 ms after 🎉 * `List.Sublist.orderedInsert_sublist`: unchanged 🎉 * `Affine.Simplex.exists_forall_dist_eq_iff_exists_excenterExists_and_eq_excenter`: unchanged 🎉 * `Matrix.pow_apply_pos_iff_nonempty_path`: unchanged 🎉 * `RootPairing.Hom.coweightHom_injective`: unchanged 🎉 * `RootPairing.isReduced_iff'`: unchanged 🎉 * `Set.Ico_eq_Ico_iff`: unchanged 🎉 * `Set.Ioc_eq_Ioc_iff`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 9/9 | Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Data/List/PeriodicityLemma.lean,Mathlib/Data/List/Sort.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean,Mathlib/LinearAlgebra/RootSystem/Hom.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/Order/Interval/Set/LinearOrder.lean | 8 | 1 | ['github-actions'] | dupuisf | 1 day ago | 8 days ago | 8 days | |
| 35702 | plp127 | feat: uniqueness of partial fraction decomposition | We prove a uniqueness theorem for each existence theorem in the file. --- - [x] depends on: #35000 - [x] depends on: #35703 [](https://gitpod.io/from-referrer/) | t-algebra | 254/18 | Mathlib/Algebra/Polynomial/PartialFractions.lean | 1 | 3 | ['github-actions', 'mathlib-bors', 'mathlib-dependent-issues'] | dagurtomas | 1 day ago | 4 days ago | 4 days |
| 35731 | euprunin | chore: golf using `exact`/`simpa` | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `AlgebraicGeometry.Scheme.Cover.exists_of_trans_eq_trans`: unchanged 🎉 * `AlgebraicGeometry.compactSpace_iff_exists`: unchanged 🎉 * `SimplexCategory.eq_id_of_mono`: unchanged 🎉 * `SimplexCategory.eq_id_of_epi`: unchanged 🎉 * `CategoryTheory.GrothendieckTopology.isIso_toPlus_of_isSheaf`: unchanged 🎉 * `CategoryTheory.Functor.isTriangulated_of_op`: unchanged 🎉 * `SimpleGraph.chromaticNumber_top`: unchanged 🎉 * `SimpleGraph.Subgraph.singletonSubgraph_connected`: unchanged 🎉 * `SimpleGraph.Walk.exists_length_eq_one_iff`: unchanged 🎉 * `Turing.TM2to1.addBottom_modifyNth`: unchanged 🎉 * `IsNoetherian.iff_fg`: unchanged 🎉 * `contMDiff_inclusion`: unchanged 🎉 * `FermatLastTheoremForThree_of_FermatLastTheoremThreeGen`: 146 ms before, 91 ms after 🎉 * `FermatLastTheoremForThreeGen.lambda_sq_dvd_c`: 313 ms before, 218 ms after 🎉 * `WithTop.isGLB_sInf`: unchanged 🎉 * `WithBot.succ_eq_bot`: 56 ms before, <30 ms after 🎉 * `WithTop.pred_eq_top`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 22/88 | Mathlib/AlgebraicGeometry/Cover/Directed.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/CategoryTheory/Sites/Plus.lean,Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean,Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean,Mathlib/FieldTheory/Finiteness.lean,Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/NumberTheory/FLT/Three.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/SuccPred/WithBot.lean | 13 | 22 | ['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] | robin-carlier | 1 day ago | 4 days ago | 7 days | |
| 35732 | TJHeeringa | feat: Added reproducing kernels | Develops the basic theory of reproducing kernels, which underlies the reproducing kernel Hilbert spaces. It shows that the kernels form an ordered semiring and common ways of constructing kernels from other kernels. --- [](https://gitpod.io/from-referrer/) | new-contributor t-analysis | 1193/0 | Mathlib.lean,Mathlib/KernelTheory/Kernel.lean | 2 | 5 | ['TJHeeringa', 'github-actions', 'joneugster', 'vihdzp'] | j-loreaux | 1 day ago | 6 days ago | 6 days |
| 35760 | astrainfinita | chore: deprecate `ConditionallyCompleteLinearOrderedField` | Use the new mixin typeclass instead. Also, move the API for conditionally complete linear ordered fields into the `ConditionallyCompleteLinearOrderedField` namespace, and make instances scoped to this namespace. We should usually use `ℝ` instead. --- [](https://gitpod.io/from-referrer/) | t-algebra t-order | 82/30 | Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Data/Real/CompleteField.lean | 2 | 3 | ['astrainfinita', 'github-actions', 'leanprover-radar'] | Vierkantor | 1 day ago | 6 days ago | 6 days |
| 26394 | winstonyin | feat: existence of local flows on manifolds | This PR continues the work from #21777. Original PR: https://github.com/leanprover-community/mathlib4/pull/21777 Transfer the existence theorem of local flows on vector spaces to manifolds. The precise statement is: > If a vector field `v` on a manifold `M` is continuously differentiable at an interior point `x₀`, then for a given `t₀` there exists a neighbourhood `u` of `x₀`, a positive `ε`, and `γ : M → ℝ → M` such that `γ x` is an integral curve of `v` on `(t₀ - ε, t₀ + ε)` for all `x ∈ u`. This is powerful because all curves `γ x` (each with initial condition `x ∈ u`) share the same existence time interval `(t₀ - ε, t₀ + ε)`, rather than each curve having its own `ε`. This will allow us to show that $C^1$ vector fields on compact manifolds always have global integral curves / global flows. Any suggestions to shorten the proof or split out useful lemmas are welcome! - [x] depends on: #26392 --- [](https://gitpod.io/from-referrer/) | t-differential-geometry | 135/52 | Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Order/Filter/Prod.lean | 3 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] | nobody | 1 day ago | unknown | unknown |
| 35775 | IvanRenison | feat(Data/List): add theorem `length_eq_two'` | --- [](https://gitpod.io/from-referrer/) | t-data | 3/0 | Mathlib/Data/List/Basic.lean | 1 | 2 | ['IvanRenison', 'github-actions', 'vihdzp'] | Vierkantor | 1 day ago | 6 days ago | 6 days |
| 35786 | DavidLedvinka | feat(Order): Add simp lemma for `IsRelUpperSet` and `IsRelLowerSet` | This is useful in scenarios when `simp` can simplify the relation to true. | t-order | 8/0 | Mathlib/Order/UpperLower/Relative.lean | 1 | 3 | ['DavidLedvinka', 'eric-wieser', 'github-actions'] | bryangingechen | 1 day ago | 5 days ago | 6 days |
| 35819 | CBirkbeck | feat(NumberTheory/ModularForm/EisensteinSeries/E2): Prove E2 is MDifferentiable | Proof that E2 is MDifferentiable. This proof comes from the Sphere packing project where it was produced by Gauss. Co-authored-by: Math.inc's Gauss --- [](https://gitpod.io/from-referrer/) | t-number-theory | 40/0 | Mathlib.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/MDifferentiable.lean | 2 | 3 | ['github-actions', 'joneugster', 'seewoo5'] | tb65536 | 1 day ago | 5 days ago | 5 days |
| 35820 | smmercuri | feat: unit lemmas and embedding for `FiniteAdeleRing` | --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 33/0 | Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean | 1 | 1 | ['github-actions'] | alreadydone | 1 day ago | 5 days ago | 5 days |
| 35828 | AntoineChambert-Loir | feat(RingTheory/GradedAlgebra/Homogeneous/Hom): homogeneous algebra maps and evaluation | Define the notion of homogeneous algebra morphism between algebra maps. Prove that the evaluation of a (weighted) homogeneous multivariate polynomial at adequate elements of a graded algebra define a homogeneous algebra morphism. co-authored with @mariainesdff --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 74/0 | Mathlib.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Hom.lean | 3 | 2 | ['github-actions', 'joneugster'] | mattrobball | 1 day ago | 5 days ago | 5 days |
| 35842 | WenrongZou | feat(MvPowerSeries): subst_C and omit some finiteness of index set | --- I add some elementary lemma related to substitution of multi variate power series and omit some finiteness of index set (for example in `map_subst` and `HasSubst.X_pow`). [](https://gitpod.io/from-referrer/) | t-ring-theory | 78/18 | Mathlib/Data/Finsupp/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Expand.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Expand.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean | 5 | 2 | ['WenrongZou', 'github-actions'] | chrisflav | 1 day ago | 4 days ago | 4 days |
| 35866 | gad-wiseman | feat(Topology/Homotopy/Basic): maps homotopic rel S agree on S | --- This adds an easy lemma showing maps that are `HomotopicRel` a set agree on it. | t-topology new-contributor | 5/0 | Mathlib/Topology/Homotopy/Basic.lean | 1 | 2 | ['github-actions'] | dagurtomas | 1 day ago | 4 days ago | 4 days |
| 35584 | joelriou | feat(CategoryTheory/Sites): the monoidal category structure on sheaves using fiber functors | In #19915, a monoidal category structure on categories of sheaves was constructed under the assumption that the class of morphisms of presheaves which become isomorphisms after sheafification is stable by tensor products. It was also proven that this condition could be checked when we are able to construct the internal hom of (pre)sheaves. In this PR, we give an alternative condition, which involves the existence of enough points for the site. --- - [x] depends on: #35691 - [x] depends on: #35575 - [ ] depends on: #35572 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR t-category-theory | 358/46 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Limits/Colimits.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/Point/IsMonoidalW.lean,Mathlib/CategoryTheory/Sites/Point/Monoidal.lean,Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean | 7 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 36018 | wwylele | feat(LinearAlgebra/AffineSpace): shifting a subspace towards a point | This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane. --- [](https://gitpod.io/from-referrer/) | t-algebra | 254/0 | Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean | 3 | 2 | ['github-actions', 'mathlib-bors'] | nobody | 1 day ago | unknown | unknown |
| 35773 | joelriou | refactor(Algebra/Category/ModuleCat): another approach to the module structure on stalks | WIP --- - [ ] depends on: #35572 - [ ] depends on: #35806 [](https://gitpod.io/from-referrer/) | WIP t-algebra t-category-theory blocked-by-other-PR merge-conflict | 456/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Point.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Point.lean,Mathlib/CategoryTheory/Monoidal/Limits/Colimits.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Monoidal.lean | 6 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 34863 | JovanGerb | feat(to_dual): support recursively reordering arguments | This PR implements the feature of recursively reordering arguments of arguments in `to_dual`. All of the material on reorderings has been put in the new file `Mathlib.Tactic.Translate.Reorder`. Ideally, when tagging a structure with `to_dual`, it will try to automatically add the correct `reorder` arguments. But this is only a small quality of life improvement, so I will leave that for a potential future PR. Currently, you have to manually re-tag the projections and constructor if you want them to get a `reorder`. This PR also improves the trace messages of `trace.translate_detail`. This PR also adds new error messages for when the given `(reorder := ...)` is malformed. --- [](https://gitpod.io/from-referrer/) | t-meta | 573/379 | Mathlib.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/Order/Basic.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Directed.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Lattice.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ToDual.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/Reorder.lean,Mathlib/Tactic/Translate/ToDual.lean,MathlibTest/ToDual.lean,MathlibTest/toAdditive.lean | 15 | 7 | ['JovanGerb', 'bryangingechen', 'github-actions', 'mathlib-merge-conflicts'] | bryangingechen | 1 day ago | 1 day ago | 16 days |
| 35939 | joelriou | feat(Algebra/Homology): a homology exact sequence for triangles of cochain complexes | ... which become distinguished in the derived category. --- - [x] depends on: #35938 - [x] depends on: #35937 [](https://gitpod.io/from-referrer/) | t-category-theory | 118/0 | Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean | 2 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 1 day ago | 1 day ago | 1 day |
| 35789 | BryceT233 | feat(RingTheory): add some easy lemmas | This PR adds three small helper lemmas needed for the ongoing formalization of the Cohen Structure Theorem. --- [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor | 8/1 | Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/MvPolynomial/Ideal.lean | 2 | 8 | ['BryceT233', 'eric-wieser', 'github-actions', 'vihdzp'] | riccardobrasca | 1 day ago | 1 day ago | 5 days |
| 36019 | stepan2698-cpu | chore: update undergrad.yaml | Adds links to various algebraic subjects which are listed in undergrad.yaml as missing from mathlib. --- [](https://gitpod.io/from-referrer/) | 12/12 | docs/undergrad.yaml | 1 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day | |
| 36017 | SproutSeeds | feat(Algebra/Order/BigOperators/Group/Finset): add sum_mul_le_sum_sum_filter_of_le_card_filter | ## Summary This PR adds a weighted finite-cover double-counting lemma in `Finset`: - `Finset.sum_mul_le_sum_sum_filter_of_le_card_filter` (`Mathlib/Algebra/Order/BigOperators/Group/Finset.lean:234`) and refactors - `Finset.sum_le_sum_sum_filter_of_forall_exists` (`Mathlib/Algebra/Order/BigOperators/Group/Finset.lean:256`) to be a corollary via `m := fun _ => 1`. ## New theorem ```lean theorem sum_mul_le_sum_sum_filter_of_le_card_filter [DecidableEq ι] [DecidableEq β] (s : Finset ι) (t : Finset β) (R : ι → β → Prop) [DecidableRel R] (w m : ι → ℕ) (hcover : ∀ x ∈ s, m x ≤ #(t.filter (fun y => R x y))) : (∑ x ∈ s, m x * w x) ≤ ∑ y ∈ t, ∑ x ∈ s.filter (fun x => R x y), w x ``` ## Motivation This packages a reusable double-counting pattern: - per-element lower bounds on incidence multiplicity (`m x`) - weighted accumulation over incidences - a global lower bound obtained by swapping/filtering finite sums. The existing existential-cover inequality is recovered as the `m := 1` special case. ## Non-sunflower use cases 1. Incidence bounds in finite bipartite settings with minimum left-degree constraints. 2. Weighted charging arguments where each object must be charged at least `m x` times. ## API / compatibility - No imports added. - No existing theorem names changed. - No breaking API change; one existing theorem is only refactored to use the new lemma. ## Verification ```bash ~/.elan/bin/lake env lean Mathlib/Algebra/Order/BigOperators/Group/Finset.lean ``` ## AI usage I used AI tools for drafting/exploration, then manually selected the final statements, edited the Lean code, and ran local checks. | new-contributor t-algebra | 40/0 | Mathlib/Algebra/Order/BigOperators/Group/Finset.lean | 1 | 3 | ['github-actions'] | nobody | 1 day ago | unknown | unknown |
| 35286 | urkud | chore: reduce defeq abuse | Cherry-picked from #35182, improved --- [](https://gitpod.io/from-referrer/) | 56/33 | Mathlib/Algebra/Module/SnakeLemma.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Kaehler/Basic.lean,Mathlib/RingTheory/KrullDimension/Polynomial.lean | 5 | 10 | ['github-actions', 'kbuzzard', 'kim-em', 'urkud'] | dwrensha | 1 day ago | 1 day ago | 12 days | |
| 36016 | kim-em | chore(scripts): add analyze_defeq_abuse.py and gist updater | This PR adds `scripts/analyze_defeq_abuse.py`, which classifies every `set_option backward.isDefEq.respectTransparency false in` in Mathlib using `#defeq_abuse`, recording results in a SQLite database, and `scripts/update_defeq_abuse_gist.py` which publishes the frequent failure patterns to a GitHub gist. Current gist: https://gist.github.com/kim-em/6a26f33c00bf444502eddf05296ec644 🤖 Prepared with Claude Code | CI | 1244/0 | .gitignore,scripts/README.md,scripts/analyze_defeq_abuse.py,scripts/update_defeq_abuse_gist.py | 4 | 1 | ['github-actions'] | nobody | 1 day ago | unknown | unknown |
| 26464 | joelriou | feat(LinearAlgebra): generators of pi tensor products | In this PR, we show that the `R`-module `⨂[R] i, M i` is finitely generated if the index type is finite and all `M i` are finitely generated. This follows from a more precise result about generators of `⨂[R] i, M i`. --- This PR continues the work from #18725. Original PR: https://github.com/leanprover-community/mathlib4/pull/18725 | file-removed awaiting-author t-algebra merge-conflict | 278/7 | Mathlib.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/SubtypeNeLift.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/DFinsupp.lean,Mathlib/LinearAlgebra/PiTensorProduct/DirectSum.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/TensorPower/Basic.lean,Mathlib/LinearAlgebra/TensorPower/Symmetric.lean,Mathlib/RingTheory/PiTensorProduct.lean,Mathlib/SetTheory/Cardinal/Finite.lean | 12 | 33 | ['eric-wieser', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] | mattrobball | 1 day ago | 133 days ago | 83 days |
| 29699 | Thmoas-Guan | feat(Algebra/RingTheory): global dimension of regular ring | In this PR, we proved that the global (homological dimension) of regular ring is equal to its krull dimension. --- - [ ] depends on: #28684 - [ ] depends on: #31999 - [ ] depends on: #29534 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-algebra merge-conflict | 3676/42 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Maximal.lean,Mathlib/RingTheory/GlobalDimension.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean,Mathlib/RingTheory/Regular/AuslanderBuchsbaum.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/GlobalDimension.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/GlobalDimension.lean | 27 | 16 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 29703 | Thmoas-Guan | feat(Algebra/RingTheory): Hilbert's Syzygy theorem (projective version) | In this PR, we proved for field `k`, `MvPolynomial (Fin n) k` has global dimension `n`. --- - [ ] depends on: #29701 - [ ] depends on: #29699 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-ring-theory merge-conflict | 3910/42 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Maximal.lean,Mathlib/RingTheory/GlobalDimension.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean,Mathlib/RingTheory/Regular/AuslanderBuchsbaum.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/GlobalDimension.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/GlobalDimension.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/Polynomial.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/Syzygy.lean | 29 | 17 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 29802 | Thmoas-Guan | feat(Algebra/RingTheory): Auslander–Buchsbaum–Serre criterion and its corollaries | In this PR, we proved that: 1: The full version of Auslander–Buchsbaum–Serre criterion 2: Localization of regular local ring is regular 3: Global dimension finite implies regular (doesn't need local) 4: Regular ring only need to be verified at maximal ideals. --- - [ ] depends on: #29534 - [ ] depends on: #29699 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import t-ring-theory merge-conflict | 4461/42 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Basic.lean,Mathlib/RingTheory/CohenMacaulay/Maximal.lean,Mathlib/RingTheory/GlobalDimension.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean,Mathlib/RingTheory/Regular/AuslanderBuchsbaum.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/Ischebeck.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/RegularLocalRing/AuslanderBuchsbaumSerre.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/GlobalDimension.lean,Mathlib/RingTheory/RegularLocalRing/Localization.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/GlobalDimension.lean,Mathlib/RingTheory/RegularLocalRing/RegularRing/Localization.lean | 30 | 17 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | unknown | unknown |
| 31999 | Thmoas-Guan | feat(RingTheory): global dimension equals the supremum over localizations | Global dimension of ring is equal to supremum of global dimension over localizations at all prime/maximal ideal. --- - [ ] depends on: #32000 - [ ] depends on: #31998 - [ ] depends on: #29558 [](https://gitpod.io/from-referrer/) | awaiting-author blocked-by-other-PR t-ring-theory merge-conflict | 501/8 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean,Mathlib/RingTheory/GlobalDimension.lean,Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean | 6 | 15 | ['Thmoas-Guan', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 day ago | 98 days ago | 1 day |
| 35467 | ZRTMRH | feat(Combinatorics): add Schreier graphs, Cayley graphs, and Cayley sum graphs | ## Summary - Defines Schreier graphs and Cayley graphs as quivers with labeled edges, porting the approach from Lean 3 PR leanprover-community/mathlib3#18693 by @bottine, @YaelDillies, and @antoinelab01. - Proves the labelling prefunctor is a covering for group actions, establishes reachability characterization, connectivity, and vertex-transitivity (right multiplication is a covering isomorphism). - Provides concrete examples: cyclic groups ℤ/nℤ, symmetric groups S_n, and integers ℤ. - Defines Cayley sum graphs as `SimpleGraph` where `Adj u v ↔ u ≠ v ∧ u + v ∈ s`, with translation properties and connection to circulant graphs. ## References - Lean 3 PR: leanprover-community/mathlib3#18693 (Rémi Bottinelli, Yaël Dillies, Antoine Labelle) - Lean 3 branch: https://github.com/leanprover-community/mathlib3/tree/geometric-group-theory ## New files | File | Lines | Content | |------|-------|---------| | `Mathlib/Combinatorics/Quiver/Schreier.lean` | 770 | Core theory | | `Mathlib/Combinatorics/Quiver/SchreierExamples.lean` | 183 | Examples | | `Mathlib/Combinatorics/SimpleGraph/CayleySumGraph.lean` | 159 | Cayley sum graphs | ## Test plan - [x] All three files build clean on latest master - [x] No `sorry` - [x] All public declarations have docstrings - [x] `lake exe mk_all --check` passes - [x] `lake exe runLinter` passes ## AI disclosure This PR was developed with assistance from [Claude Code](https://claude.com/claude-code) (Anthropic's CLI tool). Claude Code was used for: writing proof scaffolding, debugging type errors, style cleanup (naming conventions, `fun ↦` syntax), rebasing onto upstream master, and PR preparation. All mathematical content, design decisions, and proof strategies were directed by the author. The code has been reviewed by the author and their advisor. | t-combinatorics new-contributor | 1101/0 | Mathlib.lean,Mathlib/Combinatorics/Quiver/CayleyExamples.lean,Mathlib/Combinatorics/Quiver/Schreier.lean,Mathlib/Combinatorics/SimpleGraph/CayleySumGraph.lean | 4 | 34 | ['SnirBroshi', 'ZRTMRH', 'github-actions', 'tb65536'] | nobody | 1 day ago | 7 days ago | 14 days |
| 35733 | 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 | 416/0 | Mathlib.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean | 2 | 2 | ['github-actions'] | nobody | 1 day ago | 4 days ago | 7 days |
| 34588 | Ruben-VandeVelde | feat: add generalizations of some padicVal{Nat,Int} lemmas | Also drop the unnecessary primality condition from padicValInt_dvd. From flt-regular. --- [](https://gitpod.io/from-referrer/) | t-number-theory awaiting-author merge-conflict | 34/16 | Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/NumberTheory/Padics/PadicVal/Defs.lean | 2 | 3 | ['github-actions', 'mariainesdff', 'mathlib-merge-conflicts'] | mariainesdff | 1 day ago | 14 days ago | 18 days |
| 35198 | j-loreaux | feat: generalize Hölder's inequality for sums to `Real.HolderTriple` | Currently the API exists only for `Real.HolderConjugate`. This generalizes it in anticipation of #35197, which implements the Hölder framework for `lp` spaces. --- [](https://gitpod.io/from-referrer/) | t-analysis merge-conflict | 161/40 | Mathlib/Analysis/MeanInequalities.lean,Mathlib/Data/Real/ConjExponents.lean | 2 | 3 | ['github-actions', 'mathlib-merge-conflicts'] | ADedecker | 1 day ago | 11 days ago | 17 days |
| 35522 | grunweg | feat: lint for unused `backward` options | --- Based on the `unnecessarySetOptionIn` linter (#35521 and #13653). [](https://gitpod.io/from-referrer/) | t-linter tech debt large-import merge-conflict | 211/4 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/UnnecessarySetOptionIn.lean,MathlibTest/UnnecessarySetOptionIn.lean,lakefile.lean | 7 | 3 | ['github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 35569 | 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. Co-authored-by: Davood H. H. Tehrani [](https://gitpod.io/from-referrer/) | blocked-by-other-PR new-contributor merge-conflict | 290/366 | Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean | 3 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 1 day ago | 11 days ago | 13 minutes |
| 35433 | morrison-daniel | feat(LinearAlgebra/ExteriorAlgebra/Basic): adds multiplication lemmas for `ExteriorAlgebra` | This adds lemmas for dealing with multiplication of elements in the `ExteriorAlgebra`: * `ιMulti_eq_zero_of_not_inj` : a product containing duplicates is zero * `ιMulti_mul_ιMulti` : `ιMulti R m a * ιMulti R n b = ιMulti R (m+n) (Fin.append a b)` * `ιMulti_family_mul_of_not_disjoint` : if two sets of elements are not disjoint their product is zero * `ιMulti_perm` : the permutation corresponding to adjoining two sets of elements and sorting the result * `ιMulti_family_mul_of_disjoint` : the product of two elements of the form `ιMulti_family` is of the form `ιMulti_family` up to sign --- [](https://gitpod.io/from-referrer/) | t-algebra delegated | 89/0 | Mathlib/Data/Finset/Basic.lean,Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean,Mathlib/Order/Hom/PowersetCard.lean | 3 | 10 | ['github-actions', 'mathlib-bors', 'morrison-daniel', 'ocfnash'] | ocfnash | 1 day ago | 1 day ago | 2 days |
| 35781 | mcdoll | feat(Analysis/SchwartzMap): translation of arguments | We only define the translation with subtraction, because this is more common in applications.
Co-authored-by: Michael Douglas |
t-analysis | 44/11 | Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean | 2 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | urkud | 1 day ago | 1 day ago | 5 days |
| 35791 | kim-em | chore: make mk_all always use module format | This PR makes `mk_all` always generate `module`/`public import` format for all libraries, not just `Mathlib`. Previously, `Archive.lean`, `Counterexamples.lean`, and `docs.lean` used plain `import` statements while `Mathlib.lean` used `module`/`public import`, which meant `lake exe mk_all` would always rewrite these three files and produce spurious diffs during development. The `--module` flag is removed since module format is now the only behavior. 🤖 Prepared with Claude Code | 124/122 | Archive.lean,Counterexamples.lean,docs.lean,scripts/mk_all.lean | 4 | 3 | ['chenson2018', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown | |
| 26395 | winstonyin | feat: $C^1$ vector fields on compact manifolds define global flows | This PR continues the work from #22254. Original PR: https://github.com/leanprover-community/mathlib4/pull/22254 Any $C^1$ vector field on a compact boundaryless manifold `M` defines a unique global flow `ℝ → M → M`. - [ ] depends on: #26394 --- [](https://gitpod.io/from-referrer/) | WIP t-differential-geometry blocked-by-other-PR | 212/52 | Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Geometry/Manifold/IntegralCurve/Compact.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Order/Filter/Prod.lean | 4 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'winstonyin'] | nobody | 1 day ago | unknown | unknown |
| 34288 | winstonyin | feat: Integral curve is smooth in initial condition | I prove the local smoothness theorem for integral curves of ODEs on Banach spaces with respect to the initial condition. Serge Lang's _Fundamentals of Differential Geometry_ gives two proofs (Theorem 1.11). The first one is based on Grönwall's inequality. The second one (p. 81 onwards) is based on the implicit function theorem, found by Pugh and Robbin 1968. I've chosen to formalise the second, even though it may be more involved. I wanted to do this as a challenge, and because the second proof also applies to $H^k$ vector fields (Ebin and Marsden 1970), which are not yet in Mathlib. I am open to splitting this up into several smaller PRs. ## Statement Let $f : E \to E$ be a vector field that is $C^n$ at $x_0 : E$ with $n \geq 1$. There exists a neighbourhood $U$ of $x_0$ and time interval $[t_{\mathrm{min}},t_{\mathrm{max}}]$ containing $t_0$ such that for every $x \in U$, there exists an integral curve $\alpha_x : C([t_{\mathrm{min}},t_{\mathrm{max}}], E)$ of $f$ with initial condition $\alpha_x(t_0) = x$, and that $x \mapsto \alpha_x$ is $C^n$. Note that this is not the full smoothness theorem for local flows, which states that the local flow $\alpha : [t_{\mathrm{min}},t_{\mathrm{max}}] \times U \to E$ is $C^n$ at $(t_0, x_0)$. We will prove this in a series of future PRs. ## Proof strategy * Define implicit equation $T_f : E \times C([t_{\mathrm{min}},t_{\mathrm{max}}],E) \to C([t_{\mathrm{min}},t_{\mathrm{max}}],E)$ so that $T(x,\alpha) = 0$ implies that $\alpha$ is an integral curve of $f$ with initial condition $x$. * Prove implicit equation is $C^n$ if $f$ is $C^n$. * Prove $\partial_\alpha T_f$ is invertible for some choice of $[t_{\mathrm{min}},t_{\mathrm{max}}]$. * Extract the local flow $(x : E) \mapsto (\alpha_x : C([t_{\mathrm{min}},t_{\mathrm{max}}],E))$ as the implicit function of $T_f$ around a known integral curve. * Conclude that $x \mapsto \alpha_x$ is $C^n$. ## For reviewers * Where should `Set.Icc.abs_sub_le` go? * Some proofs (marked with TODO) can be shortened after #34120, but I don't want it to be blocking. - [x] depends on: #34860 - [x] depends on: #34861 - [x] depends on: #34862 --- [](https://gitpod.io/from-referrer/) | t-analysis | 869/0 | Mathlib.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/ODE/SmoothFlow.lean,Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean | 4 | 2 | ['github-actions', 'mathlib-dependent-issues'] | j-loreaux | 23 hours ago | 23 hours ago | 7 days |
| 33650 | vihdzp | refactor: deprecate bespoke `Hyperreal` machinery | Currently, these six definitions are in the `Hyperreal` namespace: - `IsSt x r`: a predicate for `r` being a standard part of `x` - `st x`: the standard part of `x` - `Infinitesimal x`: predicate for infinitesimal elements - `InfinitePos x`: predicate for infinite and positive elements - `InfiniteNeg x`: predicate for infinite and negative elements - `Infinite x`: predicate for infinite (positive or negative) elements. We deprecate all six of these and all of their API, in favor of reasoning with [`ArchimedeanClass`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Archimedean/Class.html#ArchimedeanClass) and [`ArchimedeanClass.stdPart`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/StandardPart.html#ArchimedeanClass.stdPart). The replacements are as follows: - `IsSt x r`: `0 ≤ ArchimedeanClass.mk x ∧ stdPart x = r` - `st x`: `stdPart x` - `Infinitesimal x`: `0 < ArchimedeanClass.mk x` - `InfinitePos x`: `0 < x ∧ ArchimedeanClass.mk x < 0` - `InfiniteNeg x`: `x < 0 ∧ ArchimedeanClass.mk x < 0` - `Infinite x`: `ArchimedeanClass.mk x < 0` All of these equivalences are proved within the PR, though these new theorems have also been insta-deprecated. Most of the existing API on these predicates was largely uninteresting boilerplate, and has been deprecated without replacement. For the few results of mathematical interest (those whose proofs are longer than a few lines), I've golfed their proofs as a stress test to ensure that this new API is capable of easily proving them. I've kept everything in the same file to minimize the diff. A future PR will move the obsolete material to `Deprecated.Hyperreal`. --- - [x] depends on: #33644 [](https://gitpod.io/from-referrer/) | t-algebra ready-to-merge | 387/96 | Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Analysis/Real/Hyperreal.lean | 2 | 16 | ['github-actions', 'j-loreaux', 'jcommelin', 'mathlib-bors', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'ocfnash', 'vihdzp', 'wwylele'] | jcommelin | 23 hours ago | 1 day ago | 25 days |
| 25822 | ScottCarnahan | WIP: experiments with vertex algebras | This is a testbed for various attempts at things. Please don't bother reviewing. --- [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #25821.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/25821* | WIP large-import merge-conflict | 8608/290 | Mathlib.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/ChevalleyEilenberg.lean,Mathlib/Algebra/Lie/Cochain.lean,Mathlib/Algebra/Lie/Cocycle.lean,Mathlib/Algebra/Lie/Extension.lean,Mathlib/Algebra/Lie/Extension/CentralExtension.lean,Mathlib/Algebra/Lie/Graded.lean,Mathlib/Algebra/Lie/Loop.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Monoid/Prod.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/Algebra/Polynomial/Nusmeval.lean,Mathlib/Algebra/Polynomial/Smeval.lean,Mathlib/Algebra/Vertex/Affine.lean,Mathlib/Algebra/Vertex/Basic.lean,Mathlib/Algebra/Vertex/Defs.lean,Mathlib/Algebra/Vertex/HVertexOperator.lean,Mathlib/Algebra/Vertex/Lattice.lean,Mathlib/Algebra/Vertex/VertexOperator.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/Finsupp/PointwiseSMul.lean,Mathlib/Data/FunLike/Equiv.lean,Mathlib/Data/Prod/RevLex.lean,Mathlib/Data/Set/SMulAntidiagonal.lean,Mathlib/GroupTheory/GroupAction/Equiv.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/RingTheory/Binomial.lean,Mathlib/RingTheory/DividedPowers/Cauchy.lean,Mathlib/RingTheory/FormalSeries.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/HahnSeries/Basic.lean,Mathlib/RingTheory/HahnSeries/Binomial.lean,Mathlib/RingTheory/HahnSeries/HEval.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Summable.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/PowerSeries/Binomial.lean,Mathlib/RingTheory/PowerSeries/Eval.lean | 43 | 28 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 22 hours ago | unknown | unknown |
| 26377 | Whysoserioushah | feat(RingTheory/SimpleRing/TensorProduct): tensor product of a simple algebra and a central simple algebra is simple | co-authored-by: @jjaassoonn --- | t-ring-theory large-import | 326/8 | Mathlib.lean,Mathlib/RingTheory/SimpleRing/TensorProduct.lean,Mathlib/RingTheory/TwoSidedIdeal/Kernel.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/RingTheory/TwoSidedIdeal/Operations.lean | 5 | 69 | ['Ruben-VandeVelde', 'Whysoserioushah', 'eric-wieser', 'github-actions', 'kbuzzard', 'kckennylau', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vlad902'] | kbuzzard | 22 hours ago | 14 days ago | 28 days |
| 35988 | tb65536 | feat(NumberTheory/Height/Northcott): define Northcott functions | This PR defines Northcott functions and provides some API. Extracted from #35918. --- [](https://gitpod.io/from-referrer/) | t-number-theory t-order | 64/19 | Mathlib.lean,Mathlib/GroupTheory/Descent.lean,Mathlib/NumberTheory/Height/Northcott.lean | 3 | 3 | ['github-actions', 'tb65536', 'vihdzp'] | nobody | 22 hours ago | 1 day ago | 1 day |
| 34402 | loefflerd | feat(Analysis/Complex/UpperHalfPlane): invariant measure | Add the invariant measure on the upper half-plane (& prove that it is indeed invariant). Also includes various minor improvements to upper half-plane & related code: * improve documentation of `GeneralLinearGroup/FinTwo.lean` * remove no-longer-needed coercion notation --- - [x] depends on: #34597 [](https://gitpod.io/from-referrer/) | large-import t-analysis | 320/57 | Mathlib.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Measure.lean,Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean,Mathlib/NumberTheory/ModularForms/Basic.lean,Mathlib/Topology/Algebra/Algebra/Equiv.lean | 9 | 11 | ['github-actions', 'j-loreaux', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'urkud'] | ADedecker | 22 hours ago | 1 day ago | 25 days |
| 28286 | bwangpj | feat(Geometry/Manifold/ContMDiff): basic lemmas for analytic (`C^ω`) functions | Add basic lemmas relating `ContMDiff` in the `C^ω` case to being `Analytic` on charts.
This is upstreamed from [https://github.com/girving/ray](https://github.com/girving/ray).
Co-authored-by: Geoffrey Irving |
awaiting-author t-differential-geometry new-contributor | 36/0 | Mathlib/Geometry/Manifold/ContMDiff/Defs.lean | 1 | 14 | ['bwangpj', 'girving', 'github-actions', 'grunweg', 'kbuzzard', 'mathlib-merge-conflicts', 'sgouezel'] | sgouezel | 22 hours ago | 175 days ago | 22 days |
| 35812 | khwilson | feat(MeasureTheory/Group/GeometryOfNumbers): successive minima and existence of a directional basis | Define the successive minima of a discrete subgroup of a real vector space with respect to a convex set. These invariants show up throughout the geometry of numbers and are the focus of Minkowski's Second Theorem (whose statement is left here with a `proof_wanted`).
Note: The key lemma is that the "gauge set" of the convex set is closed. I took the approach of showing that it is sequentially closed. There's an alternative approach via showing it's the union of a finite number of closed sets. I personally thought this approach was more intuitive, but the union approach may result in a slightly shorter proof.
Co-authored-by: Yaël Dillies |
new-contributor t-measure-probability | 392/33 | Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Convex/Body.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean | 6 | 3 | ['github-actions', 'joneugster'] | nobody | 21 hours ago | 5 days ago | 5 days |
| 33355 | 0xTerencePrime | feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity | This PR introduces the foundations of vertex connectivity for simple graphs, providing a counterpart to the edge connectivity theory in #32870. ### Main definitions - `SimpleGraph.IsVertexReachable`: vertices remain reachable after removing strictly fewer than `k` other vertices. - `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if its order is strictly greater than `k` and any two distinct vertices are `k`-vertex-reachable. Includes basic characterizations for $k=0$ and $k=1$, along with monotonicity lemmas (`anti` and `mono`). | new-contributor t-combinatorics | 198/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/IsolateVerts.lean | 3 | 132 | ['0xTerencePrime', 'SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp'] | YaelDillies | 21 hours ago | 21 hours ago | 26 days |
| 35249 | themathqueen | feat(Analysis/Matrix): linear functional on matrices is positive iff its weight is positive semi-definite | No comments yet, I'm still thinking of the best thing to do here. --- [](https://gitpod.io/from-referrer/) | WIP t-analysis | 167/60 | Mathlib.lean,Mathlib/Analysis/Matrix/GNS.lean,Mathlib/Analysis/Matrix/Order.lean | 3 | 5 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 21 hours ago | unknown | unknown |
| 35997 | themathqueen | feat(Analysis/CStarAlgebra/CFC/Order): conjugating with a star projection in a C*-algebra | When `e` is a star projection and `0 ≤ a ≤ e`, we get `e * a * e = a`. Co-authored-by: Jon Bannon [59937998+JonBannon@users.noreply.github.com](mailto:59937998+JonBannon@users.noreply.github.com) --- [](https://gitpod.io/from-referrer/) | t-analysis | 19/0 | Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean | 1 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 21 hours ago | 1 day ago | 9 hours |
| 35943 | SnirBroshi | feat(Analysis/Complex/Trigonometric): `cos(2x) = 1 - 2 * sin(x)^2` | This is one of the 3 commonly used forms of the cosine double-angle formula. --- [](https://gitpod.io/from-referrer/) | t-analysis | 6/0 | Mathlib/Analysis/Complex/Trigonometric.lean | 1 | 4 | ['SnirBroshi', 'github-actions', 'vihdzp'] | nobody | 21 hours ago | 2 days ago | 2 days |
| 35572 | joelriou | feat(CategoryTheory/Sites/Point): fiber functors are monoidal | If `Φ` is a point of a site, the target category `A` is monoidal and the tensor product commutes with filtered colimits on both variables, then the functors `Φ.presheafFiber : (Cᵒᵖ ⥤ A) ⥤ A)` and `Φ.sheafFiber : Sheaf J A ⥤ A` are monoidal. --- - [ ] depends on: #35961 - [x] depends on: #35806 - [x] depends on: #35691 - [x] depends on: #35575 [](https://gitpod.io/from-referrer/) | t-category-theory WIP blocked-by-other-PR | 290/46 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Limits/Colimits.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/Point/Monoidal.lean,Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean | 6 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 21 hours ago | 6 days ago | 1 day |
| 35961 | joelriou | feat(CategoryTheory/Sites): fiber functors invert morphisms which become isomorphisms after sheafification | The assumptions on the target category are relaxed. --- [](https://gitpod.io/from-referrer/) | t-category-theory | 61/46 | Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean | 3 | 2 | ['github-actions', 'joelriou'] | nobody | 21 hours ago | 21 hours ago | 20 hours |
| 35976 | Phelixh | feat: add add Liu's uncertainty theory foundations (core/distribution/process modules) | --- [](https://gitpod.io/from-referrer/) | new-contributor | 2320/0 | Mathlib/Uncertainty/base.lean,Mathlib/Uncertainty/base_core.lean,Mathlib/Uncertainty/base_distribution.lean,Mathlib/Uncertainty/base_process.lean,Mathlib/Uncertainty/uncertainty.lean | 5 | 22 | ['Phelixh', 'copilot-pull-request-reviewer', 'github-actions'] | nobody | 20 hours ago | unknown | unknown |
| 30750 | 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`. [](https://gitpod.io/from-referrer/) | t-data awaiting-author awaiting-zulip | 162/0 | Mathlib/Data/Quot.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Data/Setoid/Basic.lean | 4 | 5 | ['SnirBroshi', 'TwoFX', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] | TwoFX | 20 hours ago | 96 days ago | 35 days |
| 34711 | urkud | refactor(padicValNat): redefine using `maxPowDvdDiv` | - rename `maxPowDiv` to `maxPowDvdDiv`; - make it return `a / b ^ n` too; - optimize it to use `O(log (logb b a))` steps; - redefine `padicValNat` to be `maxPowDvdDiv .. |>.1` --- [](https://gitpod.io/from-referrer/) | merge-conflict | 275/149 | Mathlib/Data/Nat/MaxPowDiv.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/NumberTheory/Padics/PadicVal/Defs.lean,Mathlib/NumberTheory/SumTwoSquares.lean | 5 | 3 | ['b-mehta', 'github-actions', 'mathlib-merge-conflicts'] | b-mehta and dagurtomas | 20 hours ago | 10 days ago | 10 days |
| 33375 | kex-y | feat(Probability): Local and stable properties | --- Defines local and stable properties which is useful for local martingales. - [x] depends on: #33371 - [x] depends on: #33374 - [ ] depends on: #33372 Co-authored-by: @RemyDegenne [](https://gitpod.io/from-referrer/) | brownian t-measure-probability blocked-by-other-PR | 477/0 | Mathlib/Probability/Process/LocalProperty.lean,Mathlib/Probability/Process/Stopping.lean | 2 | 5 | ['github-actions', 'kex-y', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 20 hours ago | unknown | unknown |
| 33683 | joelriou | feat(AlgebraicTopology/SimplicialSet): the simplicial homotopy induced by an homotopy | In this PR, we show that a homotopy between morphisms of simplicial sets (given as a morphism `X ⊗ Δ[1] ⟶ Y`) induces a "combinatorial" simplicial homotopy. WIP --- - [ ] depends on: #32881 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-algebraic-topology WIP | 733/0 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialObject/SimplicialHomotopy.lean,Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean,Mathlib/AlgebraicTopology/SimplicialSet/ProdStdSimplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/ProdStdSimplexOne.lean,Mathlib/AlgebraicTopology/SimplicialSet/SimplicialHomotopy.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplexOne.lean | 8 | 3 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 20 hours ago | unknown | unknown |
| 34040 | Ruben-VandeVelde | feat: generalize HasCompl.compl image/preimage lemmas to Involutive | --- [](https://gitpod.io/from-referrer/) | t-data awaiting-author | 23/14 | Mathlib/Data/Set/Image.lean | 1 | 5 | ['eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] | eric-wieser | 20 hours ago | 32 days ago | 14 days |
| 35576 | Tehlikeli107 | ⚡ [performance] Pre-compile regexes in lake-build-wrapper.py | - Pre-compile `file_info_re` and `progress_re` in `BuildOutputProcessor.__init__` to avoid repeated compilation overhead. - Replace `re.sub(r'\.', '/', target)` with `target.replace('.', '/')` for better performance when converting module names to file paths. These changes result in a measured ~40% performance improvement in the core processing logic of the wrapper script. --- [](https://gitpod.io/from-referrer/) | file-removed awaiting-author CI new-contributor merge-conflict | 8/707 | scripts/bench/README.md,scripts/bench/build/README.md,scripts/bench/build/fake-root/bin/lean,scripts/bench/build/fake-root/bin/lean.py,scripts/bench/build/lakeprof_report_template.html,scripts/bench/build/lakeprof_report_upload.py,scripts/bench/build/run,scripts/bench/combine.py,scripts/bench/lint/README.md,scripts/bench/lint/run,scripts/bench/measure.py,scripts/bench/open-mathlib/README.md,scripts/bench/open-mathlib/run,scripts/bench/repeatedly.py,scripts/bench/run,scripts/bench/size/README.md,scripts/bench/size/run,scripts/bench/size/run.py,scripts/lake-build-wrapper.py | 19 | 7 | ['bryangingechen', 'felixpernegger', 'github-actions', 'grunweg', 'mathlib-merge-conflicts'] | nobody | 20 hours ago | 11 days ago | 2 hours |
| 36012 | grunweg | chore(Geometry/Manifold/VectorField/Pullback): golf using custom elab… | …orators --- Split out from #30357. [](https://gitpod.io/from-referrer/) | t-differential-geometry | 96/143 | Mathlib/Geometry/Manifold/VectorField/Pullback.lean | 1 | 1 | ['github-actions'] | nobody | 20 hours ago | unknown | unknown |
| 36008 | grunweg | chore(Geometry/Manifold/ContMDiffMFDeriv): golf using custom elaborators | --- Split out from #30357. [](https://gitpod.io/from-referrer/) | t-differential-geometry | 59/79 | Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean | 1 | 1 | ['github-actions'] | nobody | 20 hours ago | unknown | unknown |
| 35986 | grunweg | feat: tag ContDiff.{continuous,differentiable} as fun_prop | The second one requires proving a side condition n \neq 0, which should be fine when passing a discharger. ---------- Open question: will this break existing proofs by making fun_prop try paths with a longer transition depth? It seems to be fine! --- [](https://gitpod.io/from-referrer/) | t-analysis | 2/0 | Mathlib/Analysis/Calculus/ContDiff/Defs.lean | 1 | 4 | ['github-actions', 'grunweg', 'leanprover-radar', 'mathlib-merge-conflicts'] | nobody | 19 hours ago | 19 hours ago | 1 day |
| 33372 | kex-y | feat(Probability): Countable infimum of stopping times is a stopping time | --- - [x] depends on: #33371 [](https://gitpod.io/from-referrer/) | t-measure-probability brownian | 84/0 | Mathlib/Probability/Process/Stopping.lean | 1 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | RemyDegenne | 19 hours ago | 20 hours ago | 57 days |
| 26160 | oliver-butterley | feat(MeasureTheory.VectorMeasure): add several lemmas which characterize variation | Add the following lemmas concerning variation of a VectorMeasure: * `norm_measure_le_variation`: `‖μ E‖ₑ ≤ variation μ E`. * `variation_neg`: `(-μ).variation = μ.variation`. * `variation_zero`: `(0 : VectorMeasure X V).variation = 0`. * `absolutelyContinuous` Co-authored-by: @yoh-tanimoto - [x] depends on: #26156 --- [](https://gitpod.io/from-referrer/) | new-contributor t-measure-probability | 248/15 | Mathlib.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/Order/Partition/Finpartition.lean | 8 | 18 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'sgouezel', 'yoh-tanimoto'] | nobody | 19 hours ago | 22 hours ago | 33 days |
| 34622 | vihdzp | feat: Nat/Int casts on char two rings | --- [](https://gitpod.io/from-referrer/) | t-algebra | 50/8 | Mathlib/Algebra/CharP/Two.lean,Mathlib/Data/Set/Insert.lean | 2 | 10 | ['erdOne', 'eric-wieser', 'github-actions', 'vihdzp'] | erdOne | 19 hours ago | 21 hours ago | 31 days |
| 36013 | pfaffelh | feat(Topology/Compactness/CompactSystem): introduce compact Systems | A compact system is a set systems with the property that, whenever a countable intersections of sets in the set system is empty, there is a finite subset of sets with empty intersection. These are needed e.g. in measure theory if one wants to show sigma-additivity of a set function on a ring. Main result: The set of sets which are either compact and closed, or univ, is a compact system. Co-authored-by: Rémy Degenne [remydegenne@gmail.com](mailto:remydegenne@gmail.com) --- Continues work from #25899 [](https://gitpod.io/from-referrer/) | 238/0 | Mathlib.lean,Mathlib/Data/Set/Dissipate.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/Topology/Compactness/CompactSystem.lean | 4 | 1 | ['github-actions'] | nobody | 19 hours ago | 20 hours ago | 9 hours | |
| 35979 | xgenereux | chore(RatFunc/AsPolynomial): use Valuation.IsTrivialOn and simplify proofs | Use the recently added typeclass `Valuation.IsTrivialOn` instead of the explicit hypothesis. I have taken the opportunity to simplify some proofs with grind. Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- [](https://gitpod.io/from-referrer/) | 23/26 | Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/RingTheory/Valuation/Basic.lean | 5 | 7 | ['github-actions', 'vihdzp', 'xgenereux'] | nobody | 19 hours ago | 19 hours ago | 19 hours | |
| 36000 | eliasjudin | add reindexing, fibers pseudofunctor, internal categories, and single-morphism descent | ## Summary - **FiberedCategory**: `PseudofunctorOfFibers.lean` (pseudofunctor of fibers for a fibered category), `Reindexing.lean` (reindexing functors and coherence isos) - **InternalCategory**: `Basic.lean` (minimal internal category structure over a category with pullbacks) - **Sites/Descent**: `SingleMorphism.lean` (descent data and comparison functor for a single morphism; `IsDescentMorphism` / `IsEffectiveDescentMorphism`) - **Mathlib.lean**: import updates Naming follows mathlib convention (e.g. `singleMorphismComparisonFunctor` in lowerCamelCase for definitions). | t-category-theory new-contributor | 783/0 | Mathlib.lean,Mathlib/CategoryTheory/FiberedCategory/PseudofunctorOfFibers.lean,Mathlib/CategoryTheory/FiberedCategory/Reindexing.lean,Mathlib/CategoryTheory/InternalCategory/Basic.lean,Mathlib/CategoryTheory/Sites/Descent/SingleMorphism.lean | 5 | 5 | ['eliasjudin', 'github-actions', 'joelriou', 'mathlib-bors'] | nobody | 19 hours ago | 20 hours ago | 11 hours |
| 35933 | urkud | chore(WellFounded): drop unneeded `Set.Nonempty` assumptions | ... in theorems that also assume that a specific element belongs to the set. --- [](https://gitpod.io/from-referrer/) | 60/56 | Archive/Imo/Imo1988Q6.lean,Counterexamples/AharoniKorman.lean,Mathlib/Combinatorics/Quiver/Arborescence.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/FieldTheory/SeparableClosure.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Cover.lean,Mathlib/Order/InitialSeg.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/SuccPred/Basic.lean,Mathlib/Order/WellFounded.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/RingTheory/MvPowerSeries/LexOrder.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/Topology/EMetricSpace/Paracompact.lean | 22 | 4 | ['github-actions', 'urkud', 'vihdzp'] | nobody | 19 hours ago | 2 days ago | 2 days | |
| 36001 | harahu | fix(docs): deduplicate yaml key | --- [](https://gitpod.io/from-referrer/) | easy | 3/2 | docs/1000.yaml | 1 | 2 | ['github-actions', 'harahu'] | nobody | 19 hours ago | 1 day ago | 1 day |
| 36041 | SproutSeeds | feat(SimpleGraph/Matching): add maximal and maximum matching defs | Closes #34957. This is a focused pass on the issue request: - add `Subgraph.IsMaximalMatching` as `Maximal IsMatching` - add `Subgraph.IsMaximumMatching` as `MaximalFor IsMatching (fun M ↦ Cardinal.mk M.edgeSet)` - add small wrapper lemmas: - `Subgraph.isMaximalMatching_iff` - `Subgraph.isMaximumMatching_iff` Build: - `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Matching.lean` - `~/.elan/bin/lake build` Context: - There is already broader work in #32555; this PR intentionally keeps scope narrow to land the core defs/API from this issue. | t-combinatorics new-contributor | 27/0 | Mathlib/Combinatorics/SimpleGraph/Matching.lean | 1 | 2 | ['github-actions'] | nobody | 19 hours ago | unknown | unknown |
| 33668 | Citronhat | feat(PMF): add lintegral formulas for PMF | This PR introduces two lemmas describing the `lintegral` of a function with respect to the measure induced by a probability mass function: - `PMF.lintegral_eq_tsum` - `PMF.lintegral_eq_sum` These are the `ℝ≥0∞` analogues of the existing Bochner `integral` formulas `integral_eq_tsum` and `integral_eq_sum`. They could be useful for reasoning about expectations and integrability. In addition, the proof of `integral_eq_sum` is simplified by deriving it directly from `integral_eq_tsum` using `tsum_fintype`. | t-measure-probability new-contributor awaiting-author | 14/5 | Mathlib/Probability/ProbabilityMassFunction/Integrals.lean | 1 | 2 | ['DavidLedvinka', 'github-actions'] | kex-y | 18 hours ago | 56 days ago | 56 days |
| 36042 | SproutSeeds | feat(SimpleGraph/VertexCover): add minimal/minimum cover defs | Closes #34958. This PR adds the requested core definitions/API for vertex covers: - `SimpleGraph.IsMinimalCover` - `SimpleGraph.IsMinimumCover` - `SimpleGraph.isMinimalCover_iff` - `SimpleGraph.isMinimumCover_iff` `IsMinimumCover` is defined via `MinimalFor` with `Cardinal.mk` cardinality. Build: - `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/VertexCover.lean` - `~/.elan/bin/lake build` Context: - #33032 contains broader vertex-cover/Kőnig development; this PR is intentionally scoped to landing the focused defs/API from #34958. | t-combinatorics new-contributor | 22/0 | Mathlib/Combinatorics/SimpleGraph/VertexCover.lean | 1 | 2 | ['github-actions'] | nobody | 18 hours ago | unknown | unknown |
| 35709 | tb65536 | feat(AlgebraicGeometry/EllipticCurve/Reduction): define multiplicative and additive reduction | This PR adds definitions of multiplicative and additive reduction. --- [](https://gitpod.io/from-referrer/) | t-algebra t-algebraic-geometry t-number-theory | 76/0 | Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean | 1 | 1 | ['github-actions'] | nobody | 18 hours ago | 7 days ago | 7 days |
| 35710 | tb65536 | feat(AlgebraicGeometry/EllipticCurve/Reduction): define split multiplicative reduction | This PR adds the definition of split multiplicative reduction. --- - [ ] depends on: #35709 [](https://gitpod.io/from-referrer/) | t-algebra t-algebraic-geometry t-number-theory blocked-by-other-PR | 90/0 | Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean | 1 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 18 hours ago | 7 days ago | 45 seconds |
| 33082 | AntoineChambert-Loir | feat(GroupTheory/SpecificGroups/Alternating/Simple): the alternating group on at least 5 letters is simple. | This is the conclusion of the story of the proof of simplicity of the alternating group using the Iwasawa criterion. * `Equiv.Perm.iwasawaStructure_two`: the natural `IwasawaStructure` of `Equiv.Perm α` acting on `Nat.Combination α 2` Its commutative subgroups consist of the permutations with support in a given element of `Nat.Combination α 2`. They are cyclic of order 2. * `alternatingGroup_of_le_of_normal`: If `α` has at least 5 elements, then a nontrivial normal subgroup of `Equiv.Perm α` contains the alternating group. * `alternatingGroup.iwasawaStructure_three`: the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 3` Its commutative subgroups consist of the permutations with support in a given element of `Nat.Combination α 2`. They are cyclic of order 3. * `alternatingGroup.iwasawaStructure_three`: the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 4` Its commutative subgroups consist of the permutations of cycleType (2, 2) with support in a given element of `Nat.Combination α 2`. They have order 4 and exponent 2 (`IsKleinFour`). * `alternatingGroup.normal_subgroup_eq_bot_or_eq_top`: If `α` has at least 5 elements, then a nontrivial normal subgroup of `alternatingGroup` is `⊤`. * `alternatingGroup.isSimpleGroup`: If `α` has at least 5 elements, then `alternatingGroup α` is a simple group. --- - [x] depends on: #34307 - [x] depends on: #34308 [](https://gitpod.io/from-referrer/) | t-group-theory | 467/5 | Mathlib.lean,Mathlib/GroupTheory/Perm/ConjAct.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/MaximalSubgroups.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean,Mathlib/GroupTheory/SpecificGroups/KleinFour.lean | 8 | 56 | ['AntoineChambert-Loir', 'Ruben-VandeVelde', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] | mattrobball | 18 hours ago | 20 hours ago | 25 days |
| 36040 | grunweg | feat: better error message in T% elaborator | When applying the `T%` elaborator to sections of a fibre bundle, previously in the case of missing typeclass assumptions the elaborator would silently do nothing. Now it errors about this case. Thanks to Patrick Massot for reporting this bug in person. --- [](https://gitpod.io/from-referrer/) | t-differential-geometry t-meta | 46/4 | Mathlib/Geometry/Manifold/Notation.lean,MathlibTest/DifferentialGeometry/Notation/Basic.lean | 2 | 2 | ['github-actions'] | nobody | 18 hours ago | 18 hours ago | 18 hours |
| 36022 | SproutSeeds | feat(SimpleGraph): redefine `IsBridge` via `deleteEdges` | Closes #31690 ## Summary This PR changes `SimpleGraph.IsBridge` to the deletion-only notion requested in #31690: an edge is a bridge when deleting it disconnects its endpoints, without requiring `e ∈ G.edgeSet` inside the definition. ## Main changes - Redefine `IsBridge` in `Connectivity/Connected.lean`. - Update `isBridge_iff` to the new statement. - Refactor bridge lemmas to carry adjacency/edge-membership assumptions explicitly where needed. - Add/update helper lemmas used by downstream files. - Fix dependent proofs in: - `Connectivity/EdgeConnectivity.lean` - `Acyclic.lean` - `Hamiltonian.lean` ## Validation - `lake build Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity Mathlib.Combinatorics.SimpleGraph.Acyclic Mathlib.Combinatorics.SimpleGraph.Hamiltonian` - `lake build` (full) ## AI use disclosure I used Codex as an assistant for drafting/refactoring and proof iteration, and manually verified the final result with local Lean builds. | t-combinatorics new-contributor | 68/52 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean | 4 | 3 | ['SproutSeeds', 'github-actions'] | nobody | 18 hours ago | unknown | unknown |
| 36043 | robin-carlier | feat: add `dsimp%` elaborator | This PR adds a `dsimp%` elaborators that puts a given term in `dsimp`-normal form. This is useful as a way to avoid the `have foo := …; dsimp at foo; rw [foo]` pattern. From [SymmMonCoherence](https://github.com/robin-carlier/SymmMonCoherence) --- The main possible extension for this (of which I would be grateful to have some level of help in doing) would be to also add a syntax for `dsimp% […]` to also specify some dsimprocs that should be dsimped in the `dsimp` call. [](https://gitpod.io/from-referrer/) | t-meta | 74/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/DsimpPercent.lean,MathlibTest/DsimpPercent.lean | 4 | 1 | ['github-actions'] | nobody | 18 hours ago | unknown | unknown |
| 35370 | joelriou | feat(CategoryTheory/Triangulated/TStructure): the spectral object | Given a t-structure `t` on a triangulated category `C` and any object `X : C`, we define a spectral object `t.spectralObject X : SpectralObject C EInt` which roughly consists of all possible truncations of `X`. --- - [ ] depends on: #35369 - [ ] depends on: #35368 - [ ] depends on: #35364 - [ ] depends on: #35363 - [ ] depends on: #35362 [](https://gitpod.io/from-referrer/) | WIP t-category-theory large-import blocked-by-other-PR merge-conflict | 1736/13 | Mathlib.lean,Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean,Mathlib/CategoryTheory/Triangulated/TStructure/ETrunc.lean,Mathlib/CategoryTheory/Triangulated/TStructure/SpectralObject.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLEGT.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean | 6 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 18 hours ago | unknown | unknown |
| 35369 | joelriou | feat(CategoryTheory/Triangulated/TStructure): properties of truncations indexed by `EInt` that use the octahedron axiom | --- - [ ] depends on: #35368 - [ ] depends on: #35364 - [ ] depends on: #35363 - [ ] depends on: #35362 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR t-category-theory large-import merge-conflict | 1558/7 | Mathlib.lean,Mathlib/CategoryTheory/Triangulated/TStructure/ETrunc.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLEGT.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean | 4 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 18 hours ago | unknown | unknown |
| 36048 | kim-em | feat(Tactic/DefEqAbuse): disambiguate identical-sides isDefEq failures | This PR adds automatic disambiguation for `#defeq_abuse` failures where both sides render identically at default pp settings (e.g. `⊤ =?= ⊤` or `Quiver C =?= Quiver C`). These arise from instance diamonds where the difference is only in hidden instance arguments or universe levels. When detected, the `MessageData` is re-rendered with escalated pp options (`pp.universes`, then `pp.explicit`) to reveal the hidden difference. For example, `⊤ =?= ⊤` becomes `@Top.top T inst₁ =?= @Top.top T inst₂`. 🤖 Prepared with Claude Code | t-meta | 106/2 | Mathlib/Tactic/DefEqAbuse.lean,MathlibTest/DefEqAbuse.lean | 2 | 1 | ['github-actions'] | nobody | 18 hours ago | unknown | unknown |
| 36023 | SproutSeeds | feat(SimpleGraph): add maximal clique/indep-set defs and use MaximalFor | Closes #34962. This PR: - defines `SimpleGraph.IsMaximalClique` and `SimpleGraph.IsMaximalIndepSet` as aliases of `Maximal` - redefines `SimpleGraph.IsMaximumClique` and `SimpleGraph.IsMaximumIndepSet` using `MaximalFor` over cardinality - keeps the existing `..._iff`, complement, existence, and cardinality lemmas by adapting proofs to the new definitions Build: - `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Clique.lean` - `~/.elan/bin/lake build` | t-combinatorics new-contributor | 46/31 | Mathlib/Combinatorics/SimpleGraph/Clique.lean | 1 | 6 | ['SproutSeeds', 'b-mehta', 'github-actions'] | nobody | 18 hours ago | unknown | unknown |
| 36024 | euprunin | chore: golf proofs | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Fin.coe_sub_one`: unchanged 🎉 * `LieAlgebra.engel_isBot_of_isMin.lieCharpoly_coeff_natDegree`: 66 ms before, 35 ms after 🎉 * `WithTop.mul_lt_mul`: unchanged 🎉 * `CFC.spectrum_nonempty`: unchanged 🎉 * `ODE.hasDerivWithinAt_picard_Icc`: unchanged 🎉 * `Matrix.vecMul_injective_iff_isUnit`: 240 ms before, 68 ms after 🎉 * `MeasureTheory.SimpleFunc.measure_preimage_lt_top_of_memLp`: unchanged 🎉 * `Polynomial.content_eq_gcd_range_of_lt`: unchanged 🎉 * `RingHom.finiteType_isStableUnderBaseChange`: 163 ms before, 49 ms after 🎉 * `RingHom.Flat.holdsForLocalizationAway`: 91 ms before, <30 ms after 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 15/46 | Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/RingTheory/Polynomial/Content.lean,Mathlib/RingTheory/RingHom/FiniteType.lean,Mathlib/RingTheory/RingHom/Flat.lean | 12 | 7 | ['euprunin', 'github-actions', 'vihdzp'] | nobody | 18 hours ago | 18 hours ago | 18 hours | |
| 34435 | huaizhangchu | feat(Probability): convolution of Poisson distributions | This PR proves that the convolution of two Poisson distributions is again a Poisson distribution: `Poisson(r₁) ∗ Poisson(r₂) = Poisson(r₁ + r₂)` ## Main results - `poissonMeasureReal_charFun`: characteristic function of Poisson distribution is `exp(r(exp(it) - 1))` - `poissonMeasureReal_conv_poissonMeasureReal`: convolution of Poisson distributions on ℝ - `poissonMeasure_conv_poissonMeasure`: convolution of Poisson distributions on ℕ - `poissonMeasure_add_poissonMeasure_of_indepFun`: sum of independent Poisson random variables ## Proof strategy Uses characteristic functions: `φ(t) = exp(r(eⁱᵗ - 1))`, then pulls back from ℝ to ℕ. --- - [ ] depends on: #34521 | t-measure-probability large-import new-contributor blocked-by-other-PR | 110/1 | Mathlib/Probability/Distributions/Poisson.lean | 1 | 15 | ['CoolRmal', 'DavidLedvinka', 'github-actions', 'huaizhangchu', 'mathlib-dependent-issues'] | RemyDegenne | 18 hours ago | 26 days ago | 28 days |
| 35298 | robin-carlier | chore: make `SimplicialObject` and `SSet` abbrevs | Currently, use of projections like `X.obj` and `X.map` when `X : SSet` constitute a defeq abuse at reducible transparency, because `SSet` is defeq to functors out of the opposite of the simplex category but not reducibly so. This is a test to see the performance impact of turning this `def` into an `abbrev`. The only things that broke by doing this switch were a few cases where the fact that SSet has an extra universe level MVars was abused. --- [](https://gitpod.io/from-referrer/) | t-algebraic-topology awaiting-author | 12/86 | Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean,Mathlib/AlgebraicTopology/Quasicategory/StrictBicategory.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/HoFunctorMonoidal.lean,Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean,Mathlib/AlgebraicTopology/SimplicialSet/ProdStdSimplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean | 9 | 11 | ['github-actions', 'joelriou', 'leanprover-radar', 'mathlib-bors', 'mathlib-merge-conflicts', 'robin-carlier'] | nobody | 18 hours ago | 1 day ago | 8 minutes |
| 35368 | joelriou | feat(CategoryTheory/Triangulated/TStructure): extensions of truncations to the extended integers | Given a `t`-structure, we extend the definition of the truncation functors `truncLT` and `truncGE` for indices in `ℤ` to `EInt`, as `t.eTruncLT : EInt ⥤ C ⥤ C` and `t.eTruncGE : EInt ⥤ C ⥤ C`. --- - [x] depends on: #35364 - [x] depends on: #35363 - [x] depends on: #35362 [](https://gitpod.io/from-referrer/) | t-category-theory | 301/0 | Mathlib.lean,Mathlib/CategoryTheory/Triangulated/TStructure/ETrunc.lean | 2 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 18 hours ago | 18 hours ago | 18 hours |
| 36050 | SproutSeeds | feat(Combinatorics/SimpleGraph/Connectivity): add edge reachability and connectivity numbers | This adds ENat-valued number definitions for edge connectivity in `SimpleGraph.Connectivity.EdgeConnectivity`. Main additions: - `SimpleGraph.edgeReachability` - `SimpleGraph.edgeConnectivity` Basic API: - `SimpleGraph.le_edgeReachability` - `SimpleGraph.le_edgeConnectivity` - `SimpleGraph.edgeConnectivity_le_edgeReachability` Verification: - `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean` - `~/.elan/bin/lake exe runLinter --trace Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity` Closes #34961 | t-combinatorics new-contributor | 25/0 | Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean | 1 | 2 | ['github-actions'] | nobody | 17 hours ago | 17 hours ago | 17 hours |
| 33461 | loefflerd | feat(NumberTheory/Modular): stabilizers for action on upper halfplane | --- [](https://gitpod.io/from-referrer/) | WIP large-import | 681/117 | Mathlib.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Measure.lean,Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/Analysis/Complex/UpperHalfPlane/ProjLine.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Projectivization/Action.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/ModularForms/Basic.lean,Mathlib/Topology/Algebra/Algebra/Equiv.lean,Mathlib/Topology/Compactification/OnePoint/ProjectiveLine.lean | 15 | 5 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 17 hours ago | unknown | unknown |
| 35643 | chrisflav | chore(Algebra): make `TensorProduct.equivOfCompatibleSMul` more linear | --- [](https://gitpod.io/from-referrer/) | t-algebra | 64/47 | Mathlib/LinearAlgebra/TensorProduct/Associator.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/RingTheory/Coalgebra/TensorProduct.lean,Mathlib/RingTheory/LinearDisjoint.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Smooth/Fiber.lean,Mathlib/RingTheory/TensorProduct/Maps.lean,Mathlib/RingTheory/TensorProduct/Nontrivial.lean | 8 | 7 | ['github-actions', 'kckennylau'] | kim-em | 17 hours ago | 17 hours ago | 8 days |
| 36051 | euprunin | chore: golf using `grind` | The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Cycle.chain_of_pairwise`: unchanged 🎉 * `List.argmax_cons`: 387 ms before, 94 ms after 🎉 * `ciSup_subtype`: 118 ms before, 77 ms after 🎉 * `exists_seq_forall_proj_of_forall_finite`: unchanged 🎉 * `Polynomial.roots_quadratic_eq_pair_iff_of_ne_zero'`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | 7/30 | Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/MinMax.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/KonigLemma.lean,Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean | 5 | 1 | ['github-actions'] | nobody | 17 hours ago | unknown | unknown | |
| 32583 | 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. | t-combinatorics new-contributor awaiting-author | 60/47 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean | 2 | 17 | ['MJ141592', 'SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 17 hours ago | 85 days ago | 52 minutes |
| 34881 | CBirkbeck | feat(ModularForm/NumberTheory/Delta): Define the delta function | We define the Delta function on the upper half plane and show how it transforms under the slash operator, this is in preparation to proving it is a modular form. --- [](https://gitpod.io/from-referrer/) | t-number-theory maintainer-merge | 251/0 | Mathlib.lean,Mathlib/Analysis/Complex/SqrtDeriv.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/RCLike/Sqrt.lean,Mathlib/NumberTheory/ModularForms/Delta.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean | 6 | 50 | ['CBirkbeck', 'faenuccio', 'github-actions', 'joneugster', 'loefflerd'] | faenuccio and loefflerd | 17 hours ago | 17 hours ago | 11 days |
| 25848 | joelriou | feat/refactor: redefinition of homology + derived categories | This PR contains a redefinition of homology, theorems about localization of categories, including triangulated categories, a construction of the derived category of an abelian category, derived functors, spectral sequences, etc. (This is made a PR only to facilitate navigation in the code of this branch.)
This formalization is outlined in the paper _Formalization of derived categories in Lean/mathlib_ https://hal.science/hal-04546712
The homology of `ShortComplex C` (diagrams of two composable morphisms whose composition is zero) is developed in `Algebra.Homology.ShortComplex`. The files in that folder have been added one by one in separate PRs, and then, the current definition of `homology` has been replaced by this new definition in a refactor PR.
Homology refactor:* #4203 * #4204 * #4388 * #4609 * #4645 * #4787 * #4853 * #5250 * #5674 * #6008 * #6039 * #6089 * #6227 * #6230 * #6231 * #6245 * #6267 * #6279 * #6324 * #6443 * #6586 * #6994 * #7042 * #7047 * #7052 * #7192 * #7193 * #7194 * #7195 * #7197 * #7256 * #7262 * #7280 * #7623 * #7624 * #7806 * #7816 * #7817 * #7821 * #7954 * #7966 * #7993 * #7995 * #7996 * #7997 * #8058 * #8060 * #8069 * #8079 * #8081 * #8084 * #8091 * #8113 * #8114 * #8152 * #8159 * #8174 * #8200 * #8206 * #8208 * #8472 * #8468 * #8475 * #8490 * #8491 * #8507 * #8512 * #8593 * #8595 * #8706 * #8765 * #8766 * #8845 * #9022 * #12649 * #12638Homological complexes:* #9333 * #9335 * #9331Localization of categories:* #6233 * #6235 * #6236 * #6867 * #6869 * #6887 * #6882 * #8041 * #8055 * #8069 * #8516 * #8864 * #8865 * #9702 * #9692 * #10606 * #10607 * #11721 * #11728 * #11737 * #12728Shifts on categories:* #4429 * #6652 * #6653 * #6655 * #7268 * #7270 * #9001 * #11764Triangulated categories:* #6377 * #6688 * #6815 * #7053 * #7324 * #7327 * #7336 * #7626 * #7641 * #9049 * #9073 * #10527 * #11738 * #11740 * #11759 * #11786 * #11789 * #11805 * #12619Construction of the derived category:* #6626 * #6701 * #6720 * #6894 * #7048 * #7049 * #7050 * #7201 * #7656 * #8937 * #8966 * #8969 * #8970 * #9054 * #9447 * #8951 * #9483 * #9508 * #9509 * #9592 * #9614 * #9615 * #9032 * #9370 * #9550 * #9686 * #9660 * #11760 * #11782 * #11806Derived functors:* #10195 * #10270 * #10301 * #10384 * #10413 * #12168 * #12627 * #12631 * #12633 * #12785 * #12788Refactor of Ext-groups:* #12607 |
WIP t-category-theory large-import t-topology merge-conflict | 39791/341 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Free.lean,Mathlib/Algebra/Homology/Additive.lean,Mathlib/Algebra/Homology/BicomplexColumns.lean,Mathlib/Algebra/Homology/BicomplexRows.lean,Mathlib/Algebra/Homology/Bifunctor.lean,Mathlib/Algebra/Homology/BifunctorColimits.lean,Mathlib/Algebra/Homology/BifunctorCommShift.lean,Mathlib/Algebra/Homology/BifunctorHomotopy.lean,Mathlib/Algebra/Homology/BifunctorMappingCone.lean,Mathlib/Algebra/Homology/BifunctorShift.lean,Mathlib/Algebra/Homology/BifunctorSingle.lean,Mathlib/Algebra/Homology/BifunctorTriangulated.lean,Mathlib/Algebra/Homology/CategoryWithHomology.lean,Mathlib/Algebra/Homology/CochainComplexMinus.lean,Mathlib/Algebra/Homology/CochainComplexOpposite.lean,Mathlib/Algebra/Homology/CochainComplexPlus.lean,Mathlib/Algebra/Homology/ComplexShape.lean,Mathlib/Algebra/Homology/ConnectShortExact.lean,Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/DerivabilityStructureInjectives.lean,Mathlib/Algebra/Homology/DerivedCategory/DerivabilityStructureKInjectives.lean,Mathlib/Algebra/Homology/DerivedCategory/DerivabilityStructureProjectives.lean,Mathlib/Algebra/Homology/DerivedCategory/Fractions.lean,Mathlib/Algebra/Homology/DerivedCategory/FullyFaithful.lean,Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean,Mathlib/Algebra/Homology/DerivedCategory/KInjective.lean,Mathlib/Algebra/Homology/DerivedCategory/KProjective.lean,Mathlib/Algebra/Homology/DerivedCategory/Minus.lean,Mathlib/Algebra/Homology/DerivedCategory/Monoidal.lean,Mathlib/Algebra/Homology/DerivedCategory/Plus.lean,Mathlib/Algebra/Homology/DerivedCategory/RightDerivedFunctorPlus.lean,Mathlib/Algebra/Homology/DerivedCategory/SingleTriangle.lean,Mathlib/Algebra/Homology/DerivedCategory/SpectralObject.lean,Mathlib/Algebra/Homology/DerivedCategory/TStructure.lean,Mathlib/Algebra/Homology/Double.lean,Mathlib/Algebra/Homology/DoubleHomology.lean,Mathlib/Algebra/Homology/Embedding/CochainComplex.lean,Mathlib/Algebra/Homology/Embedding/CochainComplexTrunc.lean,Mathlib/Algebra/Homology/Embedding/ComplementaryTrunc.lean,Mathlib/Algebra/Homology/Embedding/ExtendMap.lean,Mathlib/Algebra/Homology/Embedding/HomEquiv.lean,Mathlib/Algebra/Homology/Embedding/StupidFiltration.lean,Mathlib/Algebra/Homology/Embedding/StupidTrunc.lean,Mathlib/Algebra/Homology/Embedding/TruncGE.lean,Mathlib/Algebra/Homology/Embedding/TruncLE.lean,Mathlib/Algebra/Homology/Embedding/TruncLEHomology.lean,Mathlib/Algebra/Homology/Factorizations/Basic.lean,Mathlib/Algebra/Homology/Factorizations/CM5a.lean,Mathlib/Algebra/Homology/HomologicalBicomplex.lean,Mathlib/Algebra/Homology/HomologicalComplex.lean,Mathlib/Algebra/Homology/HomologicalComplexFunctorEquiv.lean,Mathlib/Algebra/Homology/HomologicalComplexLimits.lean,Mathlib/Algebra/Homology/HomologicalComplexLimitsEventuallyConstant.lean,Mathlib/Algebra/Homology/Homology.lean,Mathlib/Algebra/Homology/HomologySequence.lean,Mathlib/Algebra/Homology/HomologySequenceLemmas.lean,Mathlib/Algebra/Homology/Homotopy.lean,Mathlib/Algebra/Homology/HomotopyCategory.lean,Mathlib/Algebra/Homology/HomotopyCategory/Acyclic.lean,Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean,Mathlib/Algebra/Homology/HomotopyCategory/Devissage.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean,Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean,Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean,Mathlib/Algebra/Homology/HomotopyCategory/Minus.lean,Mathlib/Algebra/Homology/HomotopyCategory/Monoidal.lean,Mathlib/Algebra/Homology/HomotopyCategory/MonoidalTriangulated.lean,Mathlib/Algebra/Homology/HomotopyCategory/Plus.lean,Mathlib/Algebra/Homology/HomotopyCategory/PreservesQuasiIso.lean,Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean,Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean,Mathlib/Algebra/Homology/HomotopyCofiber.lean,Mathlib/Algebra/Homology/HomotopyFiber.lean,Mathlib/Algebra/Homology/LeftResolution/Basic.lean,Mathlib/Algebra/Homology/LeftResolution/CochainComplex.lean,Mathlib/Algebra/Homology/LeftResolution/CochainComplexMinus.lean,Mathlib/Algebra/Homology/Localization.lean,Mathlib/Algebra/Homology/ModelCategory/Injective.lean,Mathlib/Algebra/Homology/ModelCategory/Lifting.lean,Mathlib/Algebra/Homology/ModelCategory/Projective.lean,Mathlib/Algebra/Homology/Monoidal.lean,Mathlib/Algebra/Homology/ObjectProperty.lean,Mathlib/Algebra/Homology/Opposite.lean,Mathlib/Algebra/Homology/PreservesQuasiIso.lean,Mathlib/Algebra/Homology/QuasiIso.lean,Mathlib/Algebra/Homology/Refinements.lean,Mathlib/Algebra/Homology/ShortComplex/Basic.lean,Mathlib/Algebra/Homology/ShortComplex/Exact.lean,Mathlib/Algebra/Homology/ShortComplex/FiveLemma.lean,Mathlib/Algebra/Homology/ShortComplex/FourLemma.lean,Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean,Mathlib/Algebra/Homology/ShortComplex/Images.lean,Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean,Mathlib/Algebra/Homology/ShortComplex/ShortComplexFive.lean,Mathlib/Algebra/Homology/ShortComplex/ShortComplexFour.lean | 314 | 8 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 17 hours ago | unknown | unknown |
| 27229 | WilliamCoram | feat(GroupTheory/DoubleCoset): multiple lemmas | From FLT --- [](https://gitpod.io/from-referrer/) | FLT t-group-theory new-contributor | 85/2 | Mathlib/GroupTheory/DoubleCoset.lean | 1 | 41 | ['CBirkbeck', 'Ruben-VandeVelde', 'WilliamCoram', 'github-actions', 'kim-em', 'mariainesdff', 'mathlib4-merge-conflict-bot', 'tb65536'] | mariainesdff | 17 hours ago | 14 days ago | 105 days |
| 26293 | RemyDegenne | feat: tightness from convergence of characteristic functions | If the characteristic functions of a sequence of measures `μ : ℕ → Measure E` on a finite dimensional inner product space converge pointwise to a function which is continuous at 0, then `{μ n | n}` is tight. --- - [x] depends on: #24846 - [x] depends on: #26292 [](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24949.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24949* | t-measure-probability maintainer-merge | 164/0 | Mathlib.lean,Mathlib/MeasureTheory/Measure/LevyConvergence.lean,Mathlib/MeasureTheory/Measure/TightNormed.lean | 3 | 15 | ['EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 17 hours ago | 19 hours ago | 3 hours |
| 34521 | huaizhangchu | feat(MeasureTheory): add measurableEmbedding_natCast | This PR adds a lemma stating that the coercion from `ℕ` to `ℝ` is a measurable embedding. ```lean lemma measurableEmbedding_natCast : MeasurableEmbedding (Nat.cast : ℕ → ℝ) := Nat.isClosedEmbedding_coe_real.measurableEmbedding ``` This is useful for proving properties about discrete probability distributions on `ℕ` by lifting them to `ℝ` and will be used in #34435. | t-measure-probability new-contributor | 9/0 | Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean | 1 | 4 | ['RemyDegenne', 'github-actions', 'huaizhangchu'] | kex-y | 16 hours ago | 1 day ago | 32 days |
| 26975 | Whysoserioushah | feat: a norm_num extension for complex numbers | co-authored-by : @thefundamentaltheor3m, @hrmacbeth --- [](https://gitpod.io/from-referrer/) | t-meta | 424/12 | Mathlib.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/NormNum/Eq.lean,Mathlib/Tactic/NormNum/NormNumI.lean,Mathlib/Tactic/NormNum/Result.lean,MathlibTest/norm_numI.lean | 7 | 55 | ['JovanGerb', 'Whysoserioushah', 'dupuisf', 'eric-wieser', 'github-actions', 'grunweg', 'hrmacbeth', 'mathlib4-merge-conflict-bot'] | nobody | 16 hours ago | 16 hours ago | 111 days |
| 34045 | 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 [](https://gitpod.io/from-referrer/) | FLT t-algebra | 143/0 | Mathlib.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean | 5 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 15 hours ago | 15 hours ago | 7 hours |
| 36053 | SproutSeeds | feat(SimpleGraph/Matching): add graph-level IsMatching predicate | This draft introduces a graph-level matching predicate: - `SimpleGraph.IsMatching` for graphs on any vertex type It also updates module docs so that: - `SimpleGraph.IsMatching` is the general definition - `SimpleGraph.Subgraph.IsMatching` is the specialized subgraph version Verification: - `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Matching.lean` - `~/.elan/bin/lake exe runLinter --trace Mathlib.Combinatorics.SimpleGraph.Matching` Addresses #11911. | t-combinatorics new-contributor | 8/2 | Mathlib/Combinatorics/SimpleGraph/Matching.lean | 1 | 2 | ['github-actions'] | nobody | 15 hours ago | unknown | unknown |
| 36055 | SproutSeeds | chore: rename rpow monotonicity lemmas | Renames the Real rpow monotonicity family to left or right style names, matching the pow and zpow conventions. Keeps compatibility by adding deprecated aliases for old names. Also updates local uses in this file to the new names. Issue: #13544 Validation: - ~/.elan/bin/lake build Mathlib/Analysis/SpecialFunctions/Pow/Real.lean - ~/.elan/bin/lake exe runLinter --trace Mathlib.Analysis.SpecialFunctions.Pow.Real | t-analysis new-contributor | 248/187 | Mathlib/Algebra/Module/ZLattice/Summable.lean,Mathlib/Analysis/AbsoluteValue/Equivalence.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/PhragmenLindelof.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/Analysis/Fourier/PoissonSummation.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/MellinTransform.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean,Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean,Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean,Mathlib/MeasureTheory/Function/ContinuousMapDense.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/NumberTheory/Bertrand.lean,Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean,Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/NumberTheory/SumPrimeReciprocals.lean,Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean,Mathlib/Probability/Moments/CovarianceBilinDual.lean,Mathlib/Probability/Moments/IntegrableExpMul.lean,Mathlib/Topology/MetricSpace/Snowflaking.lean | 40 | 2 | ['github-actions'] | nobody | 15 hours ago | unknown | unknown |
| 36056 | SproutSeeds | chore: rename ordered-cancel add monoid counterexample file | Renames the counterexample module to match the current class naming around `IsOrderedCancelAddMonoid`. Also updates the module docstring so it no longer references the removed class `OrderedCancelAddCommMonoid`. Issue: #27812 Validation: - ~/.elan/bin/lake build Counterexamples/IsOrderedCancelAddMonoidWithBounds.lean Counterexamples.lean - ~/.elan/bin/lake exe runLinter --trace Counterexamples.IsOrderedCancelAddMonoidWithBounds | file-removed new-contributor | 5/4 | Counterexamples.lean,Counterexamples/IsOrderedCancelAddMonoidWithBounds.lean | 2 | 2 | ['github-actions'] | nobody | 15 hours ago | unknown | unknown |
| 35675 | Thmoas-Guan | feat(RingTheory/Smooth): some lemma about formally smooth | This PR mainly formalized the result [[Stacks 031L](https://stacks.math.columbia.edu/tag/031L)] This is a preliminary of Cohen Structure Theorem. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 269/4 | Mathlib.lean,Mathlib/RingTheory/RingHom/Smooth.lean,Mathlib/RingTheory/Smooth/Quotient.lean | 3 | 4 | ['Thmoas-Guan', 'github-actions', 'jcommelin'] | jcommelin | 14 hours ago | 23 hours ago | 7 days |
| 35847 | euprunin | chore: golf proofs | This PR removes unused `have`/`haveI`/`let`/`letI` calls. The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `GenContFract.compExactValue_correctness_of_stream_eq_some`: unchanged 🎉 * `Finset.disjoint_range_addLeftEmbedding`: unchanged 🎉 * `CategoryTheory.ComposableArrows.IsComplex.epi_cokerToKer'`: unchanged 🎉 * `CategoryTheory.ComposableArrows.IsComplex.mono_cokerToKer'`: unchanged 🎉 * `ComplexShape.QFactorsThroughHomotopy_of_exists_prev`: unchanged 🎉 * `AlgebraicGeometry.IsAffineOpen.primeIdealOf_genericPoint`: unchanged 🎉 * `AlgebraicGeometry.functionField_isFractionRing_of_isAffineOpen`: unchanged 🎉 * `AlgebraicGeometry.smooth_of_grpObj_of_isAlgClosed`: 266 ms before, 232 ms after 🎉 * `AlgebraicGeometry.Scheme.ker_morphismRestrict_ideal`: 570 ms before, 538 ms after 🎉 * `AlgebraicGeometry.Scheme.IdealSheafData.isLocalization_away`: unchanged 🎉 * `AlgebraicGeometry.affineAnd_isLocal`: unchanged 🎉 * `AlgebraicGeometry.IsZariskiLocalAtTarget.of_iSup_eq_top`: unchanged 🎉 * `AlgebraicGeometry.HasAffineProperty.iff_of_isAffine`: unchanged 🎉 * `AlgebraicGeometry.isDominant_of_of_appTop_injective`: unchanged 🎉 * `AlgebraicGeometry.IsPreimmersion.SpecMap_iff`: unchanged 🎉 * `AlgebraicGeometry.quasiCompact_affineProperty_iff_quasiSeparatedSpace`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | ready-to-merge | 0/23 | Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/Homology/ExactSequenceFour.lean,Mathlib/Algebra/Homology/Localization.lean,Mathlib/AlgebraicGeometry/FunctionField.lean,Mathlib/AlgebraicGeometry/Group/Smooth.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean,Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean | 12 | 10 | ['JovanGerb', 'euprunin', 'github-actions', 'leanprover-radar', 'mathlib-bors', 'riccardobrasca', 'vihdzp'] | JovanGerb | 14 hours ago | 4 days ago | 4 days |
| 36062 | huaizhangchu | feat(Probability/PMF): add PMF.integrable_of_summable_norm | Adds `PMF.integrable_of_summable_norm`: a function `f` is integrable with respect to `p.toMeasure` when the weighted norms `‖f a‖ * (p a).toReal` form a summable family. This is useful for computing expectations of discrete distributions (Poisson, geometric, etc.) without manually expanding the `HasFiniteIntegral` definition each time. | t-measure-probability new-contributor | 14/0 | Mathlib/Probability/ProbabilityMassFunction/Integrals.lean | 1 | 2 | ['github-actions'] | nobody | 14 hours ago | unknown | unknown |
| 35175 | joelriou | feat(CategoryTheory/Sites): characterization of conservative families of points | Given a family of points `P` of a site, we characterize the property the `P` is a conservative family in terms of covering sieves. We show that if `(C, J)` has enough points, then so does `(Over X, J.over X)` for `X : C`. --- - [x] depends on: #35759 - [x] depends on: #35529 - [x] depends on: #35527 - [x] depends on: #35525 - [x] depends on: #35141 - [x] depends on: #35139 [](https://gitpod.io/from-referrer/) | t-category-theory | 238/15 | Mathlib/CategoryTheory/Elements.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/Point/Over.lean | 4 | 5 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 14 hours ago | unknown | unknown |
| 34215 | justus-springer | feat(FieldTheory/RatFunc): Degree of field extension K(X)/K(f) | Prove that the degree of the field extension K(X)/K(f) of a rational function f equals the maximum of the degrees of its numerator and denominator. This is a crucial lemma towards proving Luroth's theorem. This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025. Co-authored-by: Miriam Philipp @miriamphilipp Co-authored-by: Junyan Xu @alreadydone --- - [x] depends on: #34212 - [x] depends on: #34213 [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 206/0 | Mathlib.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/RatFunc/Luroth.lean | 3 | 30 | ['alreadydone', 'github-actions', 'jcommelin', 'justus-springer', 'mathlib-splicebot', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier', 'tb65536', 'xgenereux'] | jcommelin | 14 hours ago | 14 hours ago | 23 days |
| 35048 | b-mehta | feat(Analysis/Normed/Operator): prove the Fredholm alternative | This PR proves the Fredholm alternative for compact operators on a Banach space over a nontrivially normed field - [x] depends on: #35001 - [x] depends on: #35052 - [x] depends on: #35226 | t-analysis | 229/0 | Mathlib.lean,Mathlib/Analysis/Normed/Operator/FredholmAlternative.lean | 2 | 12 | ['b-mehta', 'github-actions', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536'] | nobody | 14 hours ago | 18 hours ago | 4 days |
| 26872 | faenuccio | chore(RingTheory/Valuation/RankOne): modify the definition of Valuation.RankOne using its range rather than its codomain | We modify the definition of `RankOne` for a valuation in terms of its `valueGroup` rather than its codomain. Co-authored-by: María Inés de Frutos Fernández @mariainesdff --- - [x] depends on: #26588 - [x] depends on: #26980 [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 1354/329 | Mathlib/Algebra/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean,Mathlib/NumberTheory/FunctionField.lean,Mathlib/NumberTheory/LocalField/Basic.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/NumberTheory/Padics/Complex.lean,Mathlib/NumberTheory/Padics/HeightOneSpectrum.lean,Mathlib/NumberTheory/Padics/WithVal.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean,Mathlib/RingTheory/Valuation/DiscreteValuativeRel.lean,Mathlib/RingTheory/Valuation/RankOne.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean,Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean | 22 | 26 | ['YaelDillies', 'erdOne', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'mariainesdff', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'pechersky'] | nobody | 14 hours ago | unknown | unknown |
| 35201 | joelriou | feat(CategoryTheory/Sites): points of presheaf toposes | Let `C` be a category. For the Grothendieck topology `⊥`, we know that the category of sheaves with values in `A` identify to `Cᵒᵖ ⥤ A`. In this PR, we show that any `X : C` defines a point for this site, and that these points form a conservative family of points. --- - [ ] depends on: #35175 - [x] depends on: #35141 - [x] depends on: #35139 [](https://gitpod.io/from-referrer/) | WIP t-category-theory blocked-by-other-PR | 379/11 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Presheaf.lean,Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/Point/Over.lean,Mathlib/CategoryTheory/Sites/Point/Presheaf.lean,Mathlib/CategoryTheory/Sites/Sheafification.lean | 8 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 14 hours ago | unknown | unknown |
| 35757 | joelriou | feat(Topology/Sheaves): points of the site of a topological space and specializations | In this PR, we show that there is at most one morphism between two points of the site `(Opens X, grothendieckTopology X)` when `X` is a topological space, and that for points corresponding to elements `x : X` and `y : X`, such a morphism exists if and only if `x` specializes to `y`. --- - [x] depends on: #35759 - [ ] depends on: #35175 [](https://gitpod.io/from-referrer/) | WIP t-category-theory blocked-by-other-PR | 372/11 | Mathlib/CategoryTheory/Limits/Yoneda.lean,Mathlib/CategoryTheory/ShrinkYoneda.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/Point/Over.lean,Mathlib/Topology/Sheaves/Points.lean | 6 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 14 hours ago | unknown | unknown |
| 35560 | Thmoas-Guan | feat(RingTheory): Cohen Structure Theorem | Formalization of Cohen structure theorem following https://stacks.math.columbia.edu/tag/0323 Co-authored-by: @BryceT233 --- - [ ] depends on: #28683 - [ ] depends on: #35561 - [ ] depends on: #35852 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import | 2328/88 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/AdicCompletion/LocalRing.lean,Mathlib/RingTheory/AdicCompletion/Noetherian.lean,Mathlib/RingTheory/CohenStructureTheorem.lean,Mathlib/RingTheory/Flat/Extension.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RegularLocalRing/PowerSeries.lean,Mathlib/RingTheory/RingHom/Smooth.lean,Mathlib/RingTheory/Smooth/Quotient.lean | 17 | 4 | ['BryceT233', 'github-actions', 'mathlib-bors', 'mathlib-dependent-issues'] | nobody | 14 hours ago | unknown | unknown |
| 24383 | YaelDillies | feat: distributive Haar characters of `ℝ` and `ℂ` | Compute `distribHaarChar` in the case of the actions of `ℝˣ` on `ℝ` and of `ℂˣ` on `ℂ`. The file I'm moving was added two days ago and is not yet used in FLT. From FLT --- [](https://gitpod.io/from-referrer/) | WIP awaiting-CI t-measure-probability file-removed FLT | 211/80 | Mathlib.lean,Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean,Mathlib/Algebra/Group/Action/BigOperators.lean,Mathlib/MeasureTheory/Measure/Haar/DistribChar/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/DistribChar/Complex.lean,Mathlib/MeasureTheory/Measure/Haar/DistribChar/Real.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean | 8 | 26 | ['YaelDillies', 'github-actions', 'kbuzzard', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'sgouezel'] | nobody | 14 hours ago | unknown | unknown |
| 24373 | YaelDillies | refactor: golf `modularCharacter` | ... using the lessons learned from `distribHaarChar`. Unfortunately, the two setups can't quite be unified because we are lacking an additive version of `MulDistribMulAction`. --- [](https://gitpod.io/from-referrer/) | awaiting-CI t-measure-probability | 77/45 | Mathlib/MeasureTheory/Group/MeasurableEquiv.lean,Mathlib/MeasureTheory/Group/Measure.lean,Mathlib/MeasureTheory/Group/ModularCharacter.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/Unique.lean | 5 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 13 hours ago | unknown | unknown |
| 34015 | erdOne | feat(AlgebraicGeometry): category of schemes affine over a base | --- [](https://gitpod.io/from-referrer/) | t-algebraic-geometry awaiting-author | 466/11 | Mathlib.lean,Mathlib/AlgebraicGeometry/AffineOver.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/AlgebraicGeometry/Morphisms/Affine.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean,Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean,Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean | 7 | 26 | ['chrisflav', 'dagurtomas', 'erdOne', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | alexjbest | 13 hours ago | 18 days ago | 30 days |
| 29550 | Raph-DG | feat(RingTheory): Order of vanishing in a discrete valuation ring | In this PR we develop some API for working with the order of vanishing in a discrete valuation ring. --- [](https://gitpod.io/from-referrer/) | file-removed t-ring-theory large-import | 553/5 | Mathlib.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/GroupWithZero/Action/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/OrderOfVanishing/Basic.lean,Mathlib/RingTheory/OrderOfVanishing/Noetherian.lean,Mathlib/RingTheory/SimpleModule/Basic.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean | 9 | 45 | ['Raph-DG', 'erdOne', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | erdOne | 13 hours ago | 13 hours ago | 39 days |
| 29996 | vihdzp | chore(Order/Concept): `IsIntent` and `IsExtent` | We define predicates for a set to be an intent/extent, and use them to define alternate constructors for a concept. Using these, we golf the complete lattice instances. The fields `Concept.intent` and `Concept.extent` already existed, and these serve as unbundled versions of them. --- - [x] depends on: #30484 [](https://gitpod.io/from-referrer/) | t-order maintainer-merge | 161/113 | Mathlib/Order/Concept.lean | 1 | 51 | ['Vierkantor', 'YaelDillies', 'github-actions', 'linesthatinterlace', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | YaelDillies | 13 hours ago | 19 hours ago | 31 days |
| 25273 | YaelDillies | refactor: make `MonoidAlgebra` into a one-field structure | --- - [x] depends on: #26732 - [x] depends on: #28407 - [x] depends on: #28460 - [x] depends on: #28511 - [x] depends on: #29207 - [x] depends on: #30877 - [x] depends on: #31143 - [x] depends on: #31144 - [x] depends on: #32253 - [x] depends on: #32254 - [x] depends on: #32398 - [x] depends on: #32501 - [x] depends on: #32508 - [x] depends on: #32562 - [x] depends on: #32588 - [x] depends on: #32591 - [x] depends on: #32592 - [x] depends on: #32604 - [x] depends on: #32965 - [x] depends on: #33093 - [x] depends on: #33094 - [x] depends on: #33099 - [x] depends on: #33137 - [x] depends on: #33139 - [x] depends on: #33141 - [x] depends on: #33452 - [x] depends on: #33453 - [x] depends on: #33482 - [x] depends on: #33492 [](https://gitpod.io/from-referrer/) | WIP t-algebra large-import | 1467/1389 | Mathlib/Algebra/FreeAlgebra/Cardinality.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Cardinal.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/MonoidAlgebra/Division.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/Algebra/MonoidAlgebra/Ideal.lean,Mathlib/Algebra/MonoidAlgebra/Lift.lean,Mathlib/Algebra/MonoidAlgebra/MapDomain.lean,Mathlib/Algebra/MonoidAlgebra/Module.lean,Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean,Mathlib/Algebra/MonoidAlgebra/Opposite.lean,Mathlib/Algebra/MonoidAlgebra/Support.lean,Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/MvPolynomial/Cardinal.lean,Mathlib/Algebra/MvPolynomial/CommRing.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/MvPolynomial/Derivation.lean,Mathlib/Algebra/MvPolynomial/Division.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/MvPolynomial/Rename.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Basis.lean,Mathlib/Algebra/Polynomial/Cardinal.lean,Mathlib/Algebra/Polynomial/Coeff.lean,Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Eval/Coeff.lean,Mathlib/Algebra/Polynomial/Homogenize.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Polynomial/OfFn.lean,Mathlib/Algebra/Polynomial/Reverse.lean,Mathlib/Algebra/Polynomial/UnitTrinomial.lean,Mathlib/Algebra/Ring/Subring/IntPolynomial.lean,Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean,Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean,Mathlib/LinearAlgebra/FreeAlgebra.lean,Mathlib/RepresentationTheory/Basic.lean,Mathlib/RepresentationTheory/Rep.lean,Mathlib/RingTheory/Coalgebra/MonoidAlgebra.lean,Mathlib/RingTheory/Extension/Generators.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Finsupp.lean,Mathlib/RingTheory/HopfAlgebra/MonoidAlgebra.lean,Mathlib/RingTheory/MvPolynomial/Basic.lean,Mathlib/RingTheory/MvPolynomial/EulerIdentity.lean,Mathlib/RingTheory/MvPolynomial/FreeCommRing.lean,Mathlib/RingTheory/MvPolynomial/Homogeneous.lean,Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/Polynomial/Opposites.lean,Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean | 58 | 86 | ['JovanGerb', 'YaelDillies', 'alreadydone', 'eric-wieser', 'fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 13 hours ago | unknown | unknown |
| 36069 | Equilibris | feat(Data/PFunctor): Universe generic W | Previously `W.ind` was limited to `Prop`. It can for free be changed to `Sort w` forall w. --- When changing adding `elab_as_elim` it broke the usages in `Fix.lean`. I had to change `apply ...`s to use `induction ... using ...` but this a minor change. I added a `simp` lemma to the `w_ind_wMk` as: it is `rfl` and will almost certainly we used at reference site. It might in the future be useful to add `simp` to `wRec_eq` as well. [](https://gitpod.io/from-referrer/) | t-data new-contributor | 29/23 | Mathlib/Data/PFunctor/Multivariate/W.lean,Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean | 2 | 2 | ['github-actions'] | nobody | 13 hours ago | unknown | unknown |
| 35585 | farmanb | feat(CategoryTheory/Abelian/Preradical): add Stenström's colon construction for preradicals | Given preradicals `Φ` and `Ψ` on an abelian category `C`, this file defines their **colon** `Φ : Ψ` in the sense of Stenström. Categorically, `Φ : Ψ` is constructed objectwise as a pullback of the canonical projection `Φ.π X : X ⟶ Φ.quotient.obj X` along the inclusion `Functor.whiskerLeft Φ.quotient Ψ.ι`. --- - [x] depends on: #35514 [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor awaiting-author | 143/0 | Mathlib.lean,Mathlib/CategoryTheory/Abelian/Preradical/Basic.lean,Mathlib/CategoryTheory/Abelian/Preradical/Colon.lean | 3 | 6 | ['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 13 hours ago | 4 days ago | 8 hours |
| 26231 | chrisflav | feat(CategoryTheory/Sites): sheaf condition and coproducts | We show that under suitable conditions, checking that a presheaf is a sheaf for a covering is equivalent to checking it on the single object covering by the coproduct. --- - [x] depends on: #32578 - [x] depends on: #35901 [](https://gitpod.io/from-referrer/) | t-category-theory | 156/1 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Products.lean,Mathlib/CategoryTheory/Sites/CoproductSheafCondition.lean,Mathlib/CategoryTheory/Sites/Hypercover/SheafOfTypes.lean,Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean | 5 | 6 | ['chrisflav', 'github-actions', 'joelriou', 'mathlib-dependent-issues'] | nobody | 13 hours ago | 12 hours ago | 1 day |
| 36067 | smmercuri | feat(NumberTheory/NumberField/FinitePlaces): `Module.Finite (v.adicCompletion K) (w.adicCompletion L)` | Let `v : HeightOneSpectrum (𝓞 K)` and `w : HeightOneSpectrum (𝓞 L)` be such that we have `Algebra (v.adicCompletion K) (w.adicCompletion L)`. If this algebra gives continuous scalar multiplication and we have `IsScalarTower K (v.adicCompletion K) (w.adicCompletion L)`, then `w.adicCompletion L` is finite-dimensional over `v.adicCompletion K`. --- [](https://gitpod.io/from-referrer/) | 35/0 | Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean | 2 | 1 | ['github-actions'] | nobody | 13 hours ago | unknown | unknown | |
| 35089 | RemyDegenne | feat: Radon-Nikodym derivative of a map is a conditional expectation | The Radon-Nikodym derivative of the pushforward of two measures is written as a conditional expectation. This will be useful to prove the data processing inequality for the Kullback-Leibler divergence (or more generally f-divergences). --- [](https://gitpod.io/from-referrer/) | t-measure-probability awaiting-author | 121/0 | Mathlib.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/RadonNikodym.lean,Mathlib/MeasureTheory/Measure/Trim.lean | 3 | 6 | ['EtienneC30', 'github-actions'] | urkud | 12 hours ago | 17 hours ago | 20 days |
| 36063 | SproutSeeds | feat(SimpleGraph/Connectivity): add vertex reachability and connectivity numbers | ### Summary Adds a first-pass vertex connectivity API for simple graphs. - define `SimpleGraph.isolateVerts` - define `SimpleGraph.IsVertexReachable` and `SimpleGraph.IsVertexConnected` - define `SimpleGraph.vertexReachability` and `SimpleGraph.vertexConnectivity` - add basic lemmas for reflexivity, symmetry, monotonicity, antitonicity, and the `k = 0` and `k = 1` characterizations Closes #34960. ### Local checks - `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean` - `~/.elan/bin/lake exe lint-style Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean` - `bash scripts/mathlib-issue-local-gate.sh --repo /Users/codymitchell/Documents/code/mathlib4 --issue 34960 --build-target Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean --lint-module Mathlib.Combinatorics.SimpleGraph.Connectivity.VertexConnectivity --skip-mk-all` | t-combinatorics new-contributor | 140/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean | 2 | 2 | ['github-actions'] | nobody | 12 hours ago | unknown | unknown |
| 35813 | joelriou | feat(Algebra/Homology): a factorization lemma | In this PR, we show that if `f : K ⟶ L` is a morphism between bounded below cochain complexes in an abelian category with enough injectives, then there exists a factorization `ι ≫ π = f` with `ι : K ⟶ K'` a monomorphism that is also a quasi-isomorphism and `π : K' ⟶ L` a morphism which degreewise is an epimorphism with an injective kernel, while `K'` is also bounded below (with precise bounds depending on the available bounds for `K` and `L`). This will be an essential result towards the construction of the Quillen model category structure on bounded below cochain complexes in an abelian category with enough injectives, and it will be used in order to construct the total right derived functor of a (right exact) functor. (This is a WIP attempt at cleaning up the code in https://github.com/joelriou/mathlib4/blob/jriou_localization/Mathlib/Algebra/Homology/Factorizations/CM5a.lean) --- - [ ] depends on: #35931 - [ ] depends on: #35939 - [x] depends on: #35929 - [x] depends on: #35930 - [x] depends on: #35932 - [x] depends on: #35934 - [x] depends on: #35935 - [x] depends on: #35936 - [x] depends on: #35937 - [x] depends on: #35938 [](https://gitpod.io/from-referrer/) | WIP t-category-theory blocked-by-other-PR | 851/1 | Mathlib.lean,Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean,Mathlib/Algebra/Homology/Factorizations/CM5a.lean,Mathlib/Algebra/Homology/Refinements.lean,Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean | 6 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 12 hours ago | unknown | unknown |
| 29942 | smmercuri | feat(InfinitePlace/Completion): embeddings of `w.Completion` factor through embeddings of `v.Completion` when `w` lies over `v` | The class `ComplexEmbedding.LiesOver ψ φ` formalises the property that the complex field embedding `φ : L →+* ℂ` restricted to `K` gives `ψ : K →+* ℂ`, whenever `Algebra K L`. If `w : InfinitePlace L` and `v : InfinitePlace K` are such that we have `Algebra v.Completion w.Completion`, then `extensionEmbedding w : L →+* ℂ` restricted to `K` gives `extensionEmbedding v : K →+* ℂ`. To avoid diamonds arising from propeq instances when `K = L` we do not construct the global instance `Algebra v.Completion w.Completion` from `Algebra K L`, but assume it instead. It is then required to assume the following compatibility assumptions for the main result of this PR to be true: - `IsScalarTower (WithAbs v.1) v.Completion w.Completion` - `ContinuousSMul v.Completion w.Completion` --- - [x] depends on: #27978 - [x] depends on: #29969 - [x] depends on: #29944 - [x] depends on: #34230 [](https://gitpod.io/from-referrer/) | FLT t-number-theory | 85/5 | Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean | 2 | 8 | ['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | 12 hours ago | 54 days |
| 35374 | joelriou | feat(Algebra/Homology/SpectralObject): `HasSpectralSequence` | --- - [x] depends on: #35373 - [x] depends on: #35372 - [x] depends on: #35357 - [x] depends on: #35355 [](https://gitpod.io/from-referrer/) | t-category-theory | 221/4 | Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean | 1 | 5 | ['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 12 hours ago | unknown | unknown |
| 31135 | kckennylau | feat(RingTheory): is localization iff is localization on saturation | In this PR we show that `A` is a localization of `R` on the submonoid `S` iff it is so on the saturation of `S`. Crucially, the saturation of `S` is precisely the elements that become a unit in `A`. --- - [ ] depends on: #31132 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 293/0 | Mathlib.lean,Mathlib/Algebra/Group/Submonoid/Saturation.lean,Mathlib/RingTheory/Localization/Saturation.lean | 3 | 5 | ['alreadydone', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | unknown | unknown |
| 30579 | smmercuri | feat : `v.adicCompletionIntegers K` is compact when `K` is a number field | --- - [x] depends on: #30576 - [x] depends on: #33484 - [x] depends on: #33594 - [ ] depends on: #34045 - [ ] depends on: #36067 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR large-import | 480/7 | Mathlib.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean,Mathlib/RingTheory/Valuation/Extension.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean | 8 | 5 | ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | unknown | unknown |
| 30399 | kckennylau | feat(RingTheory): make HomogeneousLocalization.map take a graded ring hom | and also make `Away.map`. --- - [x] depends on: #30302 - [ ] depends on: #30312 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 526/133 | Mathlib.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/Data/FunLike/GradedFunLike.lean,Mathlib/RingTheory/GradedAlgebra/FiniteType.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean,Mathlib/RingTheory/GradedAlgebra/RingHom.lean | 11 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | unknown | unknown |
| 30379 | kckennylau | feat(RingTheory): isomorphism of graded rings | We define `GradedRingEquiv 𝒜 ℬ` to mean isomorphisms of graded rings, with notation `𝒜 ≃+*ᵍ ℬ`. When possible, instead of parametrizing results over `(e : 𝒜 ≃+*ᵍ ℬ)`, you should parametrize over `[GradedEquivLike E 𝒜 ℬ] [RingEquivClass E A B] (e : E)`. Zulip discussion: [How to define graded ring isomorphisms?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/How.20to.20define.20graded.20ring.20isomorphisms.3F/with/543962394) --- Split from #26061. - [ ] depends on: #30355 - [ ] depends on: #30312 - [ ] depends on: #30367 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-ring-theory | 825/0 | Mathlib.lean,Mathlib/Data/FunLike/Graded.lean,Mathlib/RingTheory/GradedAlgebra/RingEquiv.lean,Mathlib/RingTheory/GradedAlgebra/RingHom.lean | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | 145 days ago | 39 minutes |
| 30365 | kckennylau | feat(RingTheory): define R-linear graded algebra homomorphism | This PR defines R-linear graded algebra homomorphisms, which are R-algebra homomorphisms that preserve the grading. We also provide the basic properties (aka the "API"). Zulip discussion: [#mathlib4 > redefine Graded Algebra](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/redefine.20Graded.20Algebra/near/543847326) --- Split from #26061. - [ ] depends on: #30355 - [ ] depends on: #30312 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 642/0 | Mathlib.lean,Mathlib/Data/FunLike/GradedFunLike.lean,Mathlib/RingTheory/GradedAlgebra/AlgHom.lean,Mathlib/RingTheory/GradedAlgebra/RingHom.lean | 4 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | unknown | unknown |
| 30334 | kckennylau | feat(RingTheory): define maps of homogeneous ideals | In this file we define `HomogeneousIdeal.map` and `HomogeneousIdeal.comap`, similar to and based on the existing `Ideal.map` and `Ideal.comap`. More concretely, a graded ring homomorphism `𝒜 →+*ᵍ ℬ` induces a "Galois connection" between the homogeneous ideals in `𝒜` and the homogeneous ideals in `ℬ`. --- Split from #26061. - [ ] depends on: #30312 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 441/0 | Mathlib.lean,Mathlib/RingTheory/GradedAlgebra/Hom.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Maps.lean | 4 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 12 hours ago | unknown | unknown |
| 26061 | kckennylau | (WIP) feat(AlgebraicGeometry): define Projective Space | This defines the projective space over a scheme, indexed by an arbitrary type. --- Zulip discussion: [#maths > Projective Space](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Projective.20Space/with/524057860) I am currently using this PR as a hub for future PR's that will be split from this PR, so it is currently WIP. - [x] depends on: #30355 - [x] depends on: #30173 - [x] depends on: #30302 - [x] depends on: #30312 - [ ] depends on: #30322 - [ ] depends on: #30334 - [x] depends on: #30336 - [ ] depends on: #30352 - [ ] depends on: #30365 - [ ] depends on: #30367 - [ ] depends on: #30379 - [ ] depends on: #30399 - [ ] depends on: #30408 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebraic-geometry blocked-by-other-PR | 2009/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/ProjectiveSpace.lean | 2 | 16 | ['callesonne', 'erdOne', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | erdOne | 12 hours ago | 148 days ago | 110 days |
| 35948 | chrisflav | feat(AlgebraicGeometry): the pro-étale site of a scheme | From Proetale.
Co-authored by: Jiedong Jiang |
t-algebraic-geometry WIP | 339/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/Morphisms/WeaklyEtale.lean,Mathlib/AlgebraicGeometry/Sites/Proetale.lean,Mathlib/AlgebraicGeometry/Sites/QuasiCompact.lean,Mathlib/CategoryTheory/Limits/MorphismProperty.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean,Mathlib/CategoryTheory/MorphismProperty/CommaSites.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/InducedTopology.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,docs/references.bib | 10 | 4 | ['chrisflav', 'github-actions', 'mathlib-dependent-issues', 'mathlib-splicebot'] | nobody | 12 hours ago | unknown | unknown |
| 35586 | farmanb | feat(CategoryTheory/Abelian/Preradical): introduce and characterize radicals | Following Stenström, a preradical `Φ` is called radical if it coincides with its self colon. We encode this as the existence of an isomorphism `Φ.colon Φ ≅ Φ`. We then prove a basic characterization of radical preradicals in terms of the vanishing of `Φ.r` on `Φ.quotient`. --- - [ ] depends on: #35585 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-category-theory new-contributor | 233/0 | Mathlib.lean,Mathlib/CategoryTheory/Abelian/Preradical/Basic.lean,Mathlib/CategoryTheory/Abelian/Preradical/Colon.lean,Mathlib/CategoryTheory/Abelian/Preradical/Radical.lean | 4 | 5 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 12 hours ago | unknown | unknown |
| 35970 | adrianmartir | feat(CategoryTheory/Profunctor): Add profunctors and a basic API for them | This adds a definition of a profunctor and the definition of a natural transformation between two profunctors. Profunctors are defined as a structure, as suggested by @adamtopaz [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Operads.20Formalization/with/566160316).
Using this as a base, I wrote a basic API for profunctors. This will be needed for a future formalization of operads.
A lot of the API was first drafted by @Aristotle-Harmonic.
Co-authored-by: Aristotle (Harmonic) |
t-category-theory new-contributor | 185/0 | Mathlib.lean,Mathlib/CategoryTheory/Profunctor.lean | 2 | 10 | ['adrianmartir', 'emilyriehl', 'github-actions'] | nobody | 12 hours ago | 17 hours ago | 1 day |
| 32334 | EtienneC30 | feat: independence of Gaussian processes | Prove different versions of the following statement: if some stochastic processes are jointly Gaussian, then they are independent if their marginals are uncorrelated. --- - [x] depends on: #32147 - [x] depends on: #32269 [](https://gitpod.io/from-referrer/) | brownian t-measure-probability awaiting-author | 167/0 | Mathlib.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Independence.lean | 2 | 13 | ['DavidLedvinka', 'EtienneC30', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 12 hours ago | 26 days ago | 8 days |
| 30989 | kckennylau | feat(RingTheory): Teichmuller map | Let `R` be an `I`-adically complete ring, and `p` be a prime number with `p ∈ I`. This PR constructs the Teichmüller map `Perfection (R ⧸ I) p →*₀ R` such that it composed with the quotient map `R →+* R ⧸ I` is the "0-th coefficient" map `Perfection (R ⧸ I) p →+* R ⧸ I`. This generalises the existing [PreTilt.untilt](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Perfectoid/Untilt.html#PreTilt.untilt). I have also moved `Mathlib/LinearAlgebra/SModEq` to a folder to be `/SModEq/Basic.lean`, because I needed to add some lemmas to `/SModEq/Prime.lean`; I also added a lemma to the end of `/Basic.lean` called `ideal`. --- In order to try to artificially minimise the diff count, I have made #30990 which only moves the file `SModEq`. - [x] depends on: #30990 - [x] depends on: #31193 - [x] depends on: #31195 [](https://gitpod.io/from-referrer/) | t-ring-theory delegated | 242/113 | Mathlib.lean,Mathlib/LinearAlgebra/SModEq/Basic.lean,Mathlib/LinearAlgebra/SModEq/Pow.lean,Mathlib/RingTheory/Perfectoid/Untilt.lean,Mathlib/RingTheory/Teichmuller.lean | 5 | 64 | ['erdOne', 'github-actions', 'jjdishere', 'kbuzzard', 'kckennylau', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky', 'riccardobrasca'] | nobody | 12 hours ago | 1 day ago | 6 days |
| 35408 | MichaelStollBayreuth | feat(NumberTheory/Height/Basic): add {mul|log}Height_comp_le, {mul|log}Height_fun_mul_eq | This adds * two missing `logHeight` lemmas (their `mulHeight` versions are already there) * `{mul|log}Height_comp_le`: the height of `x ∘ f` is bounded by the height of `x` * `{mul|log}Height_fun_mul_eq`: the height of the "multiplication table" `fun (i, j) ↦ x i * y j` is the {product|sum} of the heights of `x` and of `y` * `{mul|log}Height_fun_prod_eq`: the analogous result for products with arbitrarily many factors * plus some API lemmas needed for these. --- [](https://gitpod.io/from-referrer/) | t-number-theory t-algebra | 213/6 | Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean | 4 | 12 | ['CBirkbeck', 'MichaelStollBayreuth', 'github-actions', 'jcommelin', 'tb65536'] | tb65536 | 12 hours ago | 12 hours ago | 15 days |
| 36060 | edegeltje | chore(CategoryTheory/Classifier): namespace Classifier, rename HasClassifier, move file | The declaration `CategoryTheory.Classifier` (and various lemmas about it) is/are moved to the `Subobject` namespace. The declaration `CategoryTheory.HasClassifier` is renamed `CategoryTheory.HasSubobjectClassifier`. The file `CategoryTheory/Topos/Classifier.lean` is moved to `CategoryTheory/Subobject/Classifier/Defs.lean`. Moves: - Classifier.* -> Subobject.Classifier.* --- [](https://gitpod.io/from-referrer/) | file-removed t-category-theory | 26/24 | Mathlib.lean,Mathlib/CategoryTheory/Subobject/Classifier/Defs.lean | 2 | 2 | ['edegeltje', 'github-actions'] | nobody | 12 hours ago | unknown | unknown |
| 35146 | harahu | doc(CategoryTheory/Bicategory/Kan): clarify Kan adjunction docstrings | * The two IsAbsKan.adjunction docstrings in Kan/Adjunction were corrected to match the actual definitions: they now describe deriving adjunctions from absolute left Kan (co)universal data, not from an input adjunction. * Grammar and phrasing were cleaned up in the IsKan.adjunction docs (commutes with f/u). * In Kan/HasKan and Kan/IsKan, stale/non-API names were replaced by the current identifiers (lan, lanLift, HasLeftKanExtension) and Kan capitalization was normalized. --- The issues were identified and fixed by Codex. [](https://gitpod.io/from-referrer/) | t-category-theory ready-to-merge | 16/14 | Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean,Mathlib/CategoryTheory/Bicategory/Kan/HasKan.lean,Mathlib/CategoryTheory/Bicategory/Kan/IsKan.lean | 3 | 14 | ['dagurtomas', 'github-actions', 'harahu', 'joelriou', 'riccardobrasca', 'robin-carlier'] | joelriou | 12 hours ago | 4 days ago | 19 days |
| 36077 | SproutSeeds | feat(DoubleCounting): parity of odd-degree vertices in bipartite incidence | ### Summary Adds a parity theorem for bipartite incidence in `Mathlib.Combinatorics.Enumerative.DoubleCounting`: - `odd_card_filter_odd_bipartiteAbove_iff_odd_card_filter_odd_bipartiteBelow` This is intended as the first small supporting step for #25231. ### Local checks - `~/.elan/bin/lake build Mathlib/Combinatorics/Enumerative/DoubleCounting.lean` - `~/.elan/bin/lake exe lint-style Mathlib/Combinatorics/Enumerative/DoubleCounting.lean` - `~/.elan/bin/lake exe runLinter --trace Mathlib.Combinatorics.Enumerative.DoubleCounting` - `bash /Users/codymitchell/Documents/code/sunflower-coda/repo/scripts/mathlib-issue-local-gate.sh --repo /Users/codymitchell/Documents/code/mathlib4 --issue 25231 --build-target Mathlib/Combinatorics/Enumerative/DoubleCounting.lean --lint-module Mathlib.Combinatorics.Enumerative.DoubleCounting --skip-mk-all` | t-combinatorics new-contributor large-import | 17/0 | Mathlib/Combinatorics/Enumerative/DoubleCounting.lean | 1 | 2 | ['github-actions'] | nobody | 11 hours ago | unknown | unknown |
| 35378 | joelriou | feat(Algebra/Homology/SpectralObject): construction of the objects on the pages of the spectral sequence | Given a spectral object `X` in an abelian category, we define the objects which shall appear on the various pages of the spectral sequence attached to `X`. --- - [x] depends on: #35361 - [x] depends on: #35359 - [x] depends on: #35357 [](https://gitpod.io/from-referrer/) | t-algebra t-category-theory | 320/0 | Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Page.lean | 2 | 8 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier'] | nobody | 11 hours ago | 11 hours ago | 6 hours |
| 30367 | kckennylau | feat(Data): define grading-preserving isomorphisms | The class `GradedEquivLike E 𝒜 ℬ` says that `E` is a type of grading-preserving isomorphisms between `𝒜` and `ℬ`. It is the combination of `GradedFunLike E 𝒜 ℬ` and `EquivLike E A B`. --- - [x] depends on: #30355 [](https://gitpod.io/from-referrer/) | t-data | 38/3 | Mathlib/Data/FunLike/Graded.lean | 1 | 9 | ['github-actions', 'kckennylau', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'mattrobball'] | nobody | 11 hours ago | 11 hours ago | 1 hour |
| 36075 | edegeltje | chore(CategoryTheory): Deprecate `CategoryTheory/Topos/Classifier.lean` module | --- - [ ] depends on: #36060 [](https://gitpod.io/from-referrer/) | t-category-theory blocked-by-other-PR | 458/402 | Mathlib.lean,Mathlib/CategoryTheory/Subobject/Classifier/Defs.lean,Mathlib/CategoryTheory/Topos/Classifier.lean | 3 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 11 hours ago | unknown | unknown |
| 36072 | erdOne | feat(AlgebraicGeometry): essential smallness of affine schemes locally of finite type over a base | Co-authored-by: Joël Riou --- [](https://gitpod.io/from-referrer/) | 151/2 | Mathlib.lean,Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean,Mathlib/Algebra/Category/Ring/Small.lean,Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean | 6 | 1 | ['github-actions'] | nobody | 11 hours ago | unknown | unknown | |
| 32245 | erdOne | feat(RingTheory): the `coassoc_simps` simp set | From Toric
Co-authored-by: Yaël Dillies |
t-ring-theory toric t-meta maintainer-merge | 815/0 | Mathlib.lean,Mathlib/RingTheory/Coalgebra/CoassocSimps.lean,Mathlib/Tactic/Attr/Register.lean,MathlibTest/RingTheory/CoassocSimps.lean | 4 | 22 | ['erdOne', 'github-actions', 'joneugster', 'riccardobrasca'] | b-mehta, joneugster, mattrobball | 11 hours ago | 11 hours ago | 29 days |
| 33842 | joelriou | feat(Algebra/Homology): spectral sequences | This PR introduces spectral sequences. It contains two mostly independent developments: 1. The construction of the spectral object attached to objects in a triangulated category `C` equipped with a t-structure; 2. The definition of a category of spectral sequences and the construction of the spectral sequence attached to a spectral object indexed by the extended integers (the integers with +/- infinity) in an abelian category. After these additions, we have two ways to construct a spectral object in triangulated categories (the spectral object attached to a filtered complex, and the spectral object attached to a t-structure 1.). After applying a homological functor to these spectral objects, we obtain a spectral object in an abelian category, and the construction 2. allows to define spectral sequences. In this PR, we do not study the stabilization and convergence of spectral sequences, which require more developments. The mathematical material is discussed in https://hal.science/hal-04546712v5 (§5.4.1 and §5.4.4). --- Dependency graph: https://jriou.org/tmp/spectral-sequences.pdf 1. The construction of the spectral object attached to objects in a triangulated category `C` equipped with a t-structure; - [ ] depends on: #35370 - [ ] depends on: #35369 - [ ] depends on: #35368 - [ ] depends on: #35367 - [ ] depends on: #35364 - [ ] depends on: #35363 - [ ] depends on: #35362 2. The definition of a category of spectral sequences and the construction of the spectral sequence attached to a spectral object indexed by the extended integers (the integers with +/- infinity) in an abelian category. - [ ] depends on: #36032 - [ ] depends on: #36030 - [ ] depends on: #36029 - [ ] depends on: #35378 - [x] depends on: #35361 - [x] depends on: #35359 - [x] depends on: #35356 - [ ] depends on: #35375 - [ ] depends on: #35374 - [x] depends on: #35355 - [ ] depends on: #35372 - [x] depends on: #35357 3. Prerequisites: - [x] depends on: #34372 - [x] depends on: #34368 - [x] depends on: #34366 - [x] depends on: #34359 - [x] depends on: #33875 - [x] depends on: #33876 - [x] depends on: #34373 - [x] depends on: #34358 - [x] depends on: #33874 - [x] depends on: #33877 - [x] depends on: #33879 - [x] depends on: #33880 - [x] depends on: #33881 - [x] depends on: #33437 - [x] depends on: #33883 - [x] depends on: #33886 - [x] depends on: #33887 - [x] depends on: #33888 - [x] depends on: #33890 - [x] depends on: #35373 [](https://gitpod.io/from-referrer/) | WIP t-category-theory large-import blocked-by-other-PR merge-conflict | 5349/52 | Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Basic.lean,Mathlib/Algebra/Homology/SpectralObject/Cycles.lean,Mathlib/Algebra/Homology/SpectralObject/Differentials.lean,Mathlib/Algebra/Homology/SpectralObject/EpiMono.lean,Mathlib/Algebra/Homology/SpectralObject/FirstPage.lean,Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean,Mathlib/Algebra/Homology/SpectralObject/Homology.lean,Mathlib/Algebra/Homology/SpectralObject/Page.lean,Mathlib/Algebra/Homology/SpectralObject/SpectralSequence.lean,Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean,Mathlib/CategoryTheory/Triangulated/TStructure/ETrunc.lean,Mathlib/CategoryTheory/Triangulated/TStructure/Induced.lean,Mathlib/CategoryTheory/Triangulated/TStructure/SpectralObject.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLEGT.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean | 16 | 9 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 11 hours ago | unknown | unknown |
| 27274 | peabrainiac | feat(Geometry/Diffeology): continuous diffeologies & D-topology-lemmas | Introduces the continuous diffeology on topological spaces and the Galois connection between it and the D-topology, and then uses it to prove a few more lemmas about the D-topology. --- Aside from being useful for defining a right adjoint of the D-topology functor later, this is a prerequisite for correctly defining coinduced diffeologies (namely in such a way that the D-topology is defeq to the coinduced topology) and thus also for most constructions of diffeological spaces. - [x] depends on: #26973 [](https://gitpod.io/from-referrer/) | t-differential-geometry awaiting-author | 153/0 | Mathlib.lean,Mathlib/Geometry/Diffeology/Continuous.lean | 2 | 7 | ['github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'ocfnash'] | ocfnash | 11 hours ago | 3 days ago | 3 days |
| 35532 | mariainesdff | feat(Ringtheory/DedekindDomain): add RingEquiv lemmas | Co-authored by: @xgenereux. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 57/11 | Mathlib/RingTheory/DedekindDomain/Basic.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Maps.lean | 3 | 4 | ['github-actions', 'mariainesdff', 'robin-carlier', 'tb65536'] | nobody | 11 hours ago | 4 days ago | 8 days |
| 26390 | jjdishere | feat(Analysis/Normed): Krasner's lemma | This PR continues the work from #18444. Original PR: https://github.com/leanprover-community/mathlib4/pull/18444 | t-number-theory t-algebra | 224/0 | Mathlib.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Analysis/Normed/Field/Krasner.lean,Mathlib/Analysis/Normed/Unbundled/AlgebraNorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/FieldTheory/IntermediateField/Basic.lean | 6 | 33 | ['github-actions', 'jjdishere', 'mariainesdff', 'mathlib4-merge-conflict-bot'] | nobody | 11 hours ago | 11 hours ago | 1 day |
| 29934 | smmercuri | feat(Field/WithAbs): the lift of a ring homomorphism from `WithAbs v` to `WithAbs w` to their completions | If `σ` is a compatible ring homomomorphism between `WithAbs v` and `WithAbs w` then this extends to a natural ring homomorphism between completions `v.Completion` and `w.Completion`. Also fix some defeq abuse in `Field/WithAbs`. --- - [x] depends on: #29969 [](https://gitpod.io/from-referrer/) | WIP FLT | 37/1 | Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/Topology/MetricSpace/Completion.lean | 2 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 hours ago | 160 days ago | 23 minutes |
| 30322 | kckennylau | feat(RingTheory): base change of graded algebra | In this file we show that if `𝒜` is a graded `R`-algebra, and `S` is any `R`-algebra, then `S ⊗[R] 𝒜` (which is actually `fun i ↦ (𝒜 i).baseChange S`) is a graded `S`-algebra with the same grading. --- Split from #26061. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 268/25 | Mathlib.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct/Decomposition.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Flat/Basic.lean,Mathlib/RingTheory/GradedAlgebra/TensorProduct.lean | 9 | 13 | ['erdOne', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | nobody | 11 hours ago | 108 days ago | 36 days |
| 35533 | mariainesdff | feat(RingTheory/DedekindDomain/Ideal/Lemmas): add nontrivial_heightOneSpectrum | Co-authored by: @xgenereux. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 12/0 | Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean | 1 | 4 | ['erdOne', 'github-actions', 'mariainesdff', 'tb65536'] | nobody | 11 hours ago | 3 days ago | 6 days |
| 35989 | chrisflav | feat(RingTheory): define finite split algebras | From Pi1. --- - [x] depends on: #36044 [](https://gitpod.io/from-referrer/) | t-ring-theory | 78/0 | Mathlib.lean,Mathlib/RingTheory/Etale/Pi.lean,Mathlib/RingTheory/TotallySplit.lean | 3 | 2 | ['erdOne', 'github-actions', 'mathlib-dependent-issues'] | nobody | 11 hours ago | 11 hours ago | 20 hours |
| 34784 | tb65536 | refactor(GroupTheory/Commutator/Basic): to_additivize commutators | This PR makes some progress on to_additivizing more of the group theory library. I had to make the bracket instance scoped to avoid clashing with the Lie bracket. --- [](https://gitpod.io/from-referrer/) | t-algebra t-group-theory | 195/37 | Mathlib/Algebra/Group/Commutator.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/Focal.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/GroupTheory/Solvable.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean,MathlibTest/Group.lean,MathlibTest/toAdditiveIrredDef.lean | 12 | 3 | ['github-actions', 'mathlib-merge-conflicts'] | mattrobball | 11 hours ago | 11 hours ago | 27 days |
| 30551 | smmercuri | feat: dimension formulae for infinite places above | --- - [x] depends on: #27978 - [x] depends on: #27974 - [ ] depends on: #29942 - [x] depends on: #29946 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR large-import | 550/5 | Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Dimension.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean | 5 | 5 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 11 hours ago | unknown | unknown |
| 36068 | justus-springer | feat(RingTheory/Polynomial/GaussLemma): `mem_lifts` lemma for primitive polynomials | A lemma that's needed for the proof of Lüroth's theorem. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 27/0 | Mathlib/RingTheory/Polynomial/GaussLemma.lean | 1 | 2 | ['erdOne', 'github-actions'] | nobody | 11 hours ago | 10 hours ago | 12 hours |
| 30112 | gaetanserre | feat(Probability.Kernel): add representation of kernel as a map of a uniform measure | Add results about isolation of kernels randomness. In particular, it shows that one can write a Markov kernel as the map by a deterministic of a uniform measure on `[0, 1]`. It corresponds to Lemma 4.22 in "[Foundations of Modern Probability](https://link.springer.com/book/10.1007/978-3-030-61871-1)" by Olav Kallenberg, 2021. --- [](https://gitpod.io/from-referrer/) | t-measure-probability | 172/0 | Mathlib.lean,Mathlib/MeasureTheory/Constructions/UnitInterval.lean,Mathlib/Probability/Kernel/Representation.lean | 3 | 15 | ['DavidLedvinka', 'RemyDegenne', 'gaetanserre', 'github-actions', 'mathlib4-merge-conflict-bot'] | RemyDegenne | 11 hours ago | 11 hours ago | 85 days |
| 36082 | chrisflav | feat(CategoryTheory/Sites): being subcanonical is reflected by full faithful continuous functors | --- [](https://gitpod.io/from-referrer/) | t-category-theory | 33/20 | Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean,Mathlib/CategoryTheory/Sites/Subcanonical.lean,Mathlib/CategoryTheory/Yoneda.lean | 3 | 1 | ['github-actions'] | nobody | 11 hours ago | unknown | unknown |
| 34777 | sqrt-of-2 | feat(Combinatorics/SetFamily/Intersecting): L-intersecting families | Define L-intersecting families and establish their basic properties. A family 𝒜 of finsets is L-intersecting if all pairwise intersection sizes of distinct members of 𝒜 belong to L ⊆ ℕ. From LeanCamCombi. --- [](https://gitpod.io/from-referrer/) | t-combinatorics new-contributor ready-to-merge | 57/2 | Mathlib/Combinatorics/SetFamily/Intersecting.lean | 1 | 20 | ['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-bors', 'sqrt-of-2'] | b-mehta | 11 hours ago | 15 hours ago | 20 days |
| 33348 | AntoineChambert-Loir | feat(LinearAlgebra/Transvection): characterization of transvections among dilatransvections | * `LinearEquiv.fixedReduce`. Pass a linear equivalence to the quotient by a fixed subspace. * Characterize transvections among dilatransvections by the fact that their reduction is the identity. --- - [x] depends on: #33347 [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author | 322/8 | Mathlib.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/FixedSubmodule.lean,Mathlib/LinearAlgebra/Transvection.lean | 5 | 23 | ['AntoineChambert-Loir', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] | ocfnash | 10 hours ago | 14 hours ago | 25 days |
| 35690 | AntoineChambert-Loir | feat(Algebra/TrivSqZeroExt): the canonical ideal has square zero | - Mv `Mathlib/Algebra/TrivSqZeroExt.lean` to `Mathlib/Algebra/TrivSqZeroExt/Basic.lean` - Define `TrivSqZeroExt.kerIdeal`: the canonical ideal of `TrivSqZeroExt R M` - Prove `TrivSqZero.sqZero`: this ideal has square zero. co-authored with @mariainesdff --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author file-removed | 56/6 | Counterexamples/InvertibleModuleNotIdeal.lean,Mathlib.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/TrivSqZeroExt/Basic.lean,Mathlib/Algebra/TrivSqZeroExt/Ideal.lean,Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean,Mathlib/Topology/Instances/TrivSqZeroExt.lean | 7 | 7 | ['AntoineChambert-Loir', 'github-actions', 'ocfnash'] | ocfnash | 9 hours ago | 14 hours ago | 7 days |
| 34841 | RemyDegenne | feat(InformationTheory): chain rule for the Kullback-Leibler divergence | --- - [ ] depends on: #35014 - [ ] depends on: #35015 [](https://gitpod.io/from-referrer/) | WIP t-measure-probability large-import merge-conflict | 646/1 | Mathlib.lean,Mathlib/Analysis/Convex/Deriv.lean,Mathlib/InformationTheory/KullbackLeibler/ChainRule.lean,Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean,Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean,Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean,Mathlib/Probability/Kernel/Composition/RadonNikodym.lean | 7 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 9 hours ago | unknown | unknown |
| 35331 | SnirBroshi | feat(SimpleGraph/Subgraph): small things about `spanningCoe` and a small golf | --- Three unrelated things in the same file, each too small to be its own PR. [](https://gitpod.io/from-referrer/) | t-combinatorics maintainer-merge | 13/4 | Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 1 | 3 | ['YaelDillies', 'github-actions'] | YaelDillies | 9 hours ago | 9 hours ago | 16 days |
| 34528 | Maldooor | feat: Reproducing Kernel Hilbert Spaces and Moore's theorem | We define vector-valued reproducing Kernel Hilbert spaces, which are Hilbert spaces of
functions, as well as characterize these spaces in terms of infinite-dimensional
positive semidefinite matrices.
Co-authored-by: Yaël Dillies |
t-analysis maintainer-merge | 325/5 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Continuous.lean,Mathlib/Analysis/InnerProductSpace/Reproducing.lean,docs/references.bib | 4 | 12 | ['YaelDillies', 'faenuccio', 'github-actions'] | j-loreaux | 9 hours ago | 9 hours ago | 6 days |
| 33895 | jessealama | feat(Computability/Primrec): add list_take, list_drop, list_modify, and list_set | This PR shows that several list operations from Lean core are primitive recursive: - `list_drop`: [`List.drop`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via iterating `List.tail` using `nat_iterate` - `list_take`: [`List.take`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via `list_drop` on the reversed list - `list_modifyHead'`: [`List.modifyHead`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data - `list_modify'`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data - `list_modify`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) - `list_set`: [`List.set`](https://github.com/leanprover/lean4/blob/master/src/Init/Prelude.lean) The primed versions (`list_modify'`, `list_modifyHead'`) take a function `g : β → α → α` that depends on external data of type `β`. This generalization enables deriving the other operations: - `list_modify` specializes `list_modify'` with `β = Unit` - `list_set` uses `list_modify'` via `List.set_eq_modify` Also moves `list_length` earlier in the file (before `list_drop` and `list_take`, which depend on it). | new-contributor t-computability | 47/4 | Mathlib/Computability/Primrec/List.lean | 1 | 1 | ['github-actions'] | nobody | 8 hours ago | 8 hours ago | 47 days |
| 35778 | kebekus | feat: improve the mean value property of harmonic functions | Improving existing results, establish a mean value property for functions harmonic on a disk and continuous on its closure. --- [](https://gitpod.io/from-referrer/) | t-analysis | 67/1 | Mathlib/Analysis/Complex/Harmonic/MeanValue.lean,Mathlib/MeasureTheory/Integral/CircleAverage.lean | 2 | 7 | ['github-actions', 'hrmacbeth', 'kebekus'] | j-loreaux | 8 hours ago | 17 hours ago | 5 days |
| 35946 | loefflerd | feat(NumberTheory/Modular): interior and closure of fundamental domain | Show that the open and closed fundamental domains for the modular group are related by the interior / closure operations. --- [](https://gitpod.io/from-referrer/) | t-number-theory | 184/7 | Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean,Mathlib/NumberTheory/Modular.lean | 2 | 8 | ['CBirkbeck', 'github-actions'] | nobody | 8 hours ago | 8 hours ago | 2 days |
| 32305 | faenuccio | feat: define Sobolev Spaces | Nothing to see yet. --- - [ ] depends on: #32250 - [ ] depends on: #31809 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis large-import blocked-by-other-PR | 2325/53 | Mathlib.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/Distribution.lean,Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Analysis/Distribution/WeakDeriv.lean,Mathlib/Analysis/FunctionalSpaces/Sobolev/Basic.lean,Mathlib/MeasureTheory/Function/LocallyIntegrable.lean | 7 | 5 | ['ADedecker', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 8 hours ago | unknown | unknown |
| 36031 | sgouezel | feat: linter to make sure defs are `implicit_reducible` if they output classes | --- [](https://gitpod.io/from-referrer/) | 1086/81 | Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Algebra/BrauerGroup/Defs.lean,Mathlib/Algebra/Category/FGModuleCat/Colimits.lean,Mathlib/Algebra/Category/FGModuleCat/Limits.lean,Mathlib/Algebra/Category/Grp/Abelian.lean,Mathlib/Algebra/Category/ModuleCat/Abelian.lean,Mathlib/Algebra/Category/ModuleCat/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean,Mathlib/Algebra/CharP/Invertible.lean,Mathlib/Algebra/CharP/MixedCharZero.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/Field/IsField.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Homology/ComplexShapeSigns.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/Classical.lean,Mathlib/Algebra/Lie/Extension.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Module.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean,Mathlib/Algebra/Star/RingQuot.lean,Mathlib/AlgebraicGeometry/Cover/Directed.lean,Mathlib/AlgebraicTopology/ModelCategory/Basic.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/AddTorsor.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/CategoryTheory/Abelian/Basic.lean,Mathlib/CategoryTheory/Abelian/NonPreadditive.lean,Mathlib/CategoryTheory/Abelian/Transfer.lean,Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean,Mathlib/CategoryTheory/CatCommSq.lean,Mathlib/CategoryTheory/Center/Linear.lean,Mathlib/CategoryTheory/ConcreteCategory/Forget.lean,Mathlib/CategoryTheory/Enriched/Basic.lean,Mathlib/CategoryTheory/Enriched/FunctorCategory.lean,Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean,Mathlib/CategoryTheory/EpiMono.lean,Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean,Mathlib/CategoryTheory/Functor/Functorial.lean,Mathlib/CategoryTheory/Groupoid.lean,Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean,Mathlib/CategoryTheory/Limits/Creates.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/FullSubcategory.lean,Mathlib/CategoryTheory/Limits/MorphismProperty.lean,Mathlib/CategoryTheory/Limits/Preorder.lean,Mathlib/CategoryTheory/Limits/Preserves/Creates/Finite.lean,Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean,Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean,Mathlib/CategoryTheory/Localization/Bifunctor.lean,Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean,Mathlib/CategoryTheory/Localization/HasLocalization.lean,Mathlib/CategoryTheory/Localization/Linear.lean,Mathlib/CategoryTheory/Localization/LocallySmall.lean,Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean,Mathlib/CategoryTheory/Localization/Predicate.lean,Mathlib/CategoryTheory/Localization/Triangulated.lean,Mathlib/CategoryTheory/Localization/Trifunctor.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean,Mathlib/CategoryTheory/Monad/Comonadicity.lean,Mathlib/CategoryTheory/Monad/Limits.lean,Mathlib/CategoryTheory/Monad/Monadicity.lean,Mathlib/CategoryTheory/Monoidal/Action/End.lean,Mathlib/CategoryTheory/Monoidal/Action/Opposites.lean,Mathlib/CategoryTheory/Monoidal/Bimod.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Braided/Multifunctor.lean,Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Complete.lean,Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean,Mathlib/CategoryTheory/Monoidal/Closed/Types.lean,Mathlib/CategoryTheory/Monoidal/Closed/Zero.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Mod_.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Multifunctor.lean,Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean,Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean,Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean,Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean | 300 | 1 | ['github-actions'] | nobody | 8 hours ago | unknown | unknown | |
| 36080 | MichaelStollBayreuth | chore: adapt names after #34658 | This fixes the remaining theorem names referring to `finite_{mulS|s}upport` where the statement has changed to involve `HasFinite{Mul}Support`. --- [](https://gitpod.io/from-referrer/) | t-algebra | 87/45 | Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/FiniteSupport/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Pointwise.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/NumberField.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/HahnSeries/Basic.lean,Mathlib/RingTheory/HahnSeries/Summable.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/Algebra/Ring/Compact.lean | 16 | 1 | ['github-actions'] | jcommelin | 7 hours ago | unknown | unknown |
| 33942 | artie2000 | feat(Algebra/Group/Submonoid): submonoid support | * Define support of submonoid (biggest subgroup it contains) * Define "pointed" (zero-support) and "spanning" (generates as a subgroup) submonoids --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author merge-conflict | 146/0 | Mathlib.lean,Mathlib/Algebra/Group/Submonoid/Support.lean,Mathlib/Tactic/Translate/ToAdditive.lean | 3 | 29 | ['artie2000', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'ooovi', 'plp127', 'vihdzp'] | jcommelin | 7 hours ago | 40 days ago | 1 day |
| 34031 | lua-vr | feat(Dynamics/BirkhoffSum): add the maximal ergodic theorem | --- This file exports three constants: ```lean public def birkhoffAverageSupSet (f : α → α) (g : α → ℝ) (a : ℝ) : Set α := {x | ∃ n : ℕ, a < birkhoffAverage ℝ f g n x} public theorem meas_birkhoffAverageSupSet_smul_const_le_integral (a : ℝ) (ha : 0 < a) : μ.real (birkhoffAverageSupSet f g a) • a ≤ ∫ x in birkhoffAverageSupSet f g a, g x ∂μ public theorem meas_birkhoffAverageSupSet_smul_const_le_norm (a : ℝ) (ha : 0 < a) : μ.real (birkhoffAverageSupSet f (fun x ↦ ‖g x‖) a) • a ≤ ∫ x, ‖g x‖ ∂μ ``` In my interpretation, the other constants are auxiliary, so I did not make them public. If it's of independent interest, `birkhoffMax` could be exported or moved to a dedicated file, but I'm not sure of that at the moment. - [ ] depends on: #34030 - [ ] depends on: #34029 - [ ] depends on: #34025 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-dynamics merge-conflict | 344/15 | Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Maximal.lean,Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/Order/PartialSups.lean | 4 | 4 | ['github-actions', 'lua-vr', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] | nobody | 7 hours ago | unknown | unknown |
| 34120 | winstonyin | feat: `GroupWithZero` versions of `le` lemmas | [Zulip thread: #mathlib4 > prod_le_pow_card](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/prod_le_pow_card/with/568611481) ## Motivation Inequality lemmas such as `Multiset.prod_le_pow_card` that are true for the reals are only stated for non-negative reals. Instead of simply providing non-negativity as a proof obligation, the downstream user is forced to lift all non-negative terms to `NNReal` and then invoke the inequality lemma. This motivates duplicating lemmas that assume `[CommMonoid R] [MulLeftMono R]` to ones that assume `[CommMonoidWithZero R] [ZeroLEOneClass R] [PosMulMono R]` along with a non-negativity hypothesis. I've only included the obvious case for now. I'll carefully comb through these lemmas to ensure pairing and consistent naming. I've included here a downstream effect of this change, greatly simplifying a part of a proof. I'll record some of these here as well, but I'll move them to a separate PR at the end . ## Changes * Add `List.prod_le_pow_length₀` and `Multiset.prod_le_pow_card₀`. * Add subscript 0 to `prod_map_le_pow_card`, meaning it assumes `CommMonoidWithZero`, consistent with similar lemmas. * Remove the `FunLike` assumption in `prod_map_le_pow_length₀` and `prod_map_le_pow_card₀` * Update and shorten proof of `max_norm_root_eq_spectralValue`. ## TODO * Ensure pairing between lemmas that assume `CommMonoid` and `CommMonoidWithZero` across `List`, `Multiset`, `Finset`. * Find other such cases, e.g. `mul_lt_one`. * Ensure consistent naming using subscript 0. --- [](https://gitpod.io/from-referrer/) | WIP large-import merge-conflict | 662/286 | Archive/Imo/Imo2025Q3.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Group/Submonoid/Pointwise.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Multiset.lean,Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/BigOperators/Ring/Multiset.lean,Mathlib/Algebra/Order/Group/DenselyOrdered.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean,Mathlib/Algebra/Order/Monovary.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/InnerProductSpace/Orientation.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pochhammer.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/MeasureTheory/Constructions/Pi.lean,Mathlib/MeasureTheory/Measure/HasOuterApproxClosedProd.lean,Mathlib/MeasureTheory/Measure/Hausdorff.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/NumberTheory/Bertrand.lean,Mathlib/NumberTheory/FermatPsp.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean,Mathlib/NumberTheory/Multiplicity.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/NumberTheory/SiegelsLemma.lean,Mathlib/NumberTheory/SmoothNumbers.lean,Mathlib/Order/Filter/AtTopBot/Monoid.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean,Mathlib/Topology/EMetricSpace/Paracompact.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean,scripts/nolints_prime_decls.txt | 54 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 35060 | dagurtomas | Typecat refactor | --- [](https://gitpod.io/from-referrer/) | WIP large-import | 3171/2765 | Mathlib/Algebra/Category/AlgCat/Basic.lean,Mathlib/Algebra/Category/Grp/Adjunctions.lean,Mathlib/Algebra/Category/Grp/Basic.lean,Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean,Mathlib/Algebra/Category/Grp/EpiMono.lean,Mathlib/Algebra/Category/Grp/Yoneda.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/LeftResolution.lean,Mathlib/Algebra/Category/ModuleCat/Semi.lean,Mathlib/Algebra/Category/MonCat/Adjunctions.lean,Mathlib/Algebra/Category/MonCat/Basic.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/Algebra/Category/MonCat/Limits.lean,Mathlib/Algebra/Category/MonCat/Yoneda.lean,Mathlib/Algebra/Category/Ring/Adjunctions.lean,Mathlib/Algebra/Category/Ring/Basic.lean,Mathlib/Algebra/Category/Ring/FilteredColimits.lean,Mathlib/Algebra/Category/Ring/Limits.lean,Mathlib/Algebra/Category/Semigrp/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean,Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean,Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/Action/Basic.lean,Mathlib/CategoryTheory/Action/Concrete.lean,Mathlib/CategoryTheory/Action/Monoidal.lean,Mathlib/CategoryTheory/Adhesive/Basic.lean,Mathlib/CategoryTheory/Adjunction/Limits.lean,Mathlib/CategoryTheory/Adjunction/Opposites.lean,Mathlib/CategoryTheory/Category/Cat.lean,Mathlib/CategoryTheory/Category/Cat/Adjunction.lean,Mathlib/CategoryTheory/Category/Cat/Limit.lean,Mathlib/CategoryTheory/Category/KleisliCat.lean,Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/CategoryTheory/Category/Pointed.lean,Mathlib/CategoryTheory/Category/RelCat.lean,Mathlib/CategoryTheory/CodiscreteCategory.lean,Mathlib/CategoryTheory/CofilteredSystem.lean,Mathlib/CategoryTheory/Comma/Presheaf/Basic.lean,Mathlib/CategoryTheory/Comma/Presheaf/Colimit.lean,Mathlib/CategoryTheory/ConcreteCategory/Basic.lean,Mathlib/CategoryTheory/ConcreteCategory/Elementwise.lean,Mathlib/CategoryTheory/ConcreteCategory/EpiMono.lean,Mathlib/CategoryTheory/ConcreteCategory/Forget.lean,Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean,Mathlib/CategoryTheory/ConcreteCategory/Representable.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Elements.lean,Mathlib/CategoryTheory/Enriched/Basic.lean,Mathlib/CategoryTheory/Extensive.lean,Mathlib/CategoryTheory/Filtered/Basic.lean,Mathlib/CategoryTheory/Filtered/OfColimitCommutesFiniteLimit.lean,Mathlib/CategoryTheory/FintypeCat.lean,Mathlib/CategoryTheory/Functor/Hom.lean,Mathlib/CategoryTheory/Functor/KanExtension/Dense.lean,Mathlib/CategoryTheory/Galois/Basic.lean,Mathlib/CategoryTheory/Generator/Basic.lean,Mathlib/CategoryTheory/Generator/Type.lean,Mathlib/CategoryTheory/GlueData.lean,Mathlib/CategoryTheory/Grothendieck.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Basic.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/CategoryTheory/IsomorphismClasses.lean,Mathlib/CategoryTheory/Limits/ColimitLimit.lean,Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean,Mathlib/CategoryTheory/Limits/Cones.lean,Mathlib/CategoryTheory/Limits/Elements.lean,Mathlib/CategoryTheory/Limits/Filtered.lean,Mathlib/CategoryTheory/Limits/FilteredColimitCommutesProduct.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Final/Type.lean,Mathlib/CategoryTheory/Limits/FintypeCat.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts/Cech.lean,Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Images.lean,Mathlib/CategoryTheory/Limits/FunctorToTypes.lean,Mathlib/CategoryTheory/Limits/HasLimits.lean,Mathlib/CategoryTheory/Limits/IndYoneda.lean,Mathlib/CategoryTheory/Limits/IsConnected.lean,Mathlib/CategoryTheory/Limits/IsLimit.lean,Mathlib/CategoryTheory/Limits/MonoCoprod.lean,Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Square.lean,Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean,Mathlib/CategoryTheory/Limits/Preserves/Yoneda.lean,Mathlib/CategoryTheory/Limits/Presheaf.lean,Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean,Mathlib/CategoryTheory/Limits/Shapes/FunctorToTypes.lean,Mathlib/CategoryTheory/Limits/Shapes/Images.lean,Mathlib/CategoryTheory/Limits/Shapes/Products.lean,Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean,Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean,Mathlib/CategoryTheory/Limits/Types/ColimitType.lean,Mathlib/CategoryTheory/Limits/Types/ColimitTypeFiltered.lean,Mathlib/CategoryTheory/Limits/Types/Colimits.lean | 197 | 9 | ['dagurtomas', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 34917 | chrisflav | feat(AlgebraicGeometry/Sites): characterization of sheaves for the `P`-qc topology | From Proetale. --- - [x] depends on: #34923 - [x] depends on: #34921 - [x] depends on: #34995 - [x] depends on: #35508 - [x] depends on: #35698 - [x] depends on: #35509 - [ ] depends on: #26231 [](https://gitpod.io/from-referrer/) | WIP t-algebraic-geometry blocked-by-other-PR merge-conflict | 546/3 | Mathlib.lean,Mathlib/AlgebraicGeometry/Cover/Sigma.lean,Mathlib/AlgebraicGeometry/Sites/Fpqc.lean,Mathlib/CategoryTheory/Limits/Shapes/Products.lean,Mathlib/CategoryTheory/Sites/CoproductSheafCondition.lean,Mathlib/CategoryTheory/Sites/Hypercover/One.lean,Mathlib/CategoryTheory/Sites/Hypercover/SheafOfTypes.lean,Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean | 8 | 7 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 35375 | joelriou | feat(Algebra/Homology/SpectralObject): first quadrant spectral objects | When a spectral object indexed by the extended integers lies on the first quadrant (typeclass `IsFirstQuadrant`), it will be possible to construct a spectral sequence where the objects on the pages are indexed by `ℕ × ℕ` (TODO). --- - [ ] depends on: #35374 - [ ] depends on: #35373 - [ ] depends on: #35372 - [ ] depends on: #35357 - [ ] depends on: #35355 [](https://gitpod.io/from-referrer/) | WIP t-category-theory blocked-by-other-PR merge-conflict | 462/0 | Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean | 2 | 5 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 35538 | bilichboris | feat(Analysis/VonNeumannAlgebra): double commutant theorem | This PR formalizes the double commutant theorem following these notes: https://math.vanderbilt.edu/peters10/teaching/spring2015/OperatorAlgebras.pdf It also defines diagonal operators on a finite sum of Hilbert spaces, which can be useful elshewhere. AI disclosure: I relied on the help of codex. --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor awaiting-author merge-conflict | 682/5 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/Diagonal.lean,Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean,Mathlib/Analysis/InnerProductSpace/WeakOperatorTopology.lean,Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean,Mathlib/Analysis/VonNeumannAlgebra/Basic.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean | 8 | 16 | ['bilichboris', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mathlib-splicebot', 'themathqueen'] | j-loreaux | 7 hours ago | 7 days ago | 5 days |
| 35559 | mike1729 | feat(Analysis/Normed): weak-topology embedding into weak-star bidual and compactenss transfer theorem | This PR refactors the double dual material and adds new results connecting the weak topology on a normed space to the weak-star topology on its bidual. ## Changes ### New file: `Analysis.Normed.Module.DoubleDual` Extracts the canonical embedding `inclusionInDoubleDual` and the bidual isometry `inclusionInDoubleDualLi` from `Analysis.Normed.Module.Dual` into a dedicated file, and adds: - `inclusionInDoubleDualWeak`: the canonical map from `WeakSpace 𝕜 X` into `WeakDual 𝕜 (StrongDual 𝕜 X)`. - `inclusionInDoubleDualWeak_isEmbedding`: this map is a topological embedding. - `inclusionInDoubleDualWeak_homeomorph`: the map as a homeomorphism onto its range. - `isCompact_closure_of_isBounded`: bounded sets whose bidual image has weak-star closure in range have weakly compact closure, via Banach–Alaoglu. ### New file: `Analysis.Normed.Module.WeakSpace` - `WeakSpace.instBornology`: norm bornology on `WeakSpace 𝕜 E`, inherited from `E`. - `WeakSpace.instT2Space`: the weak topology over `RCLike` is Hausdorff (via Hahn–Banach). ### Modified: `Analysis.Normed.Module.Dual` The double dual inclusion material is moved out; polar set results remain. References to `inclusionInDoubleDual` in `polar_closure` are replaced by `ContinuousLinearMap.apply` to avoid a dependency on the new file. --- CC: @faenuccio this may be relevant for your Goldstine formalization. | t-analysis new-contributor merge-conflict | 285/99 | Mathlib.lean,Mathlib/Analysis/LocallyConvex/SeparatingDual.lean,Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Module/DoubleDual.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/Normed/Module/WeakSpace.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean,Mathlib/Probability/Distributions/Gaussian/CharFun.lean | 10 | 16 | ['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mike1729'] | ADedecker | 7 hours ago | 6 days ago | 11 days |
| 35886 | euprunin | chore: exhaustively replace `measurability`/`continuity` → `fun_prop`, `simp_all` → `simp` where possible | The goal of this PR is to exhaustively replace `measurability`/`continuity` and `simp_all` with the preferred `fun_prop` and `simp` where possible. Trace profiling results (differences <30 ms considered measurement noise): * `PeriodPair.weierstrassPExcept_add`: unchanged 🎉 * `PeriodPair.derivWeierstrassPExcept_sub`: unchanged 🎉 * `PeriodPair.coeff_weierstrassPExceptSeries`: 353 ms before, 320 ms after 🎉 * `Polynomial.Chebyshev.integral_measureT`: unchanged 🎉 * `Polynomial.Chebyshev.integrable_measureT`: 513 ms before, 338 ms after 🎉 * `LinearMap.fst_prodOfFinsuppNat`: unchanged 🎉 * `Representation.leftRegular_norm_apply`: unchanged 🎉 * `ValuativeRel.isDiscrete_trivialRel`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | merge-conflict | 11/11 | Mathlib/Analysis/Fourier/Convolution.lean,Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean,Mathlib/LinearAlgebra/Finsupp/Pi.lean,Mathlib/RepresentationTheory/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean | 6 | 6 | ['euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | 3 days ago | 3 days |
| 35922 | MichaelStollBayreuth | feat(NumberTheory/Height/Basic): {mul|log}Height_{eq_one_of_subsingleton|sumElim_zero_eq} | This adds the facts that the multiplicative/logarithmic height of a tuple indexed by a subsingleton is one/zero and that the height does not change when we add/remove zeros in the tuple. --- - [ ] depends on: #35408 - [x] depends on: #35260 [](https://gitpod.io/from-referrer/) | t-number-theory t-algebra blocked-by-other-PR large-import merge-conflict | 329/37 | Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/Finiteness/Nilpotent.lean | 8 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 35923 | MichaelStollBayreuth | feat(NumberTheory/Height/Basic): height bounds for products | This adds height bounds for (point-wise) products of tuples and for products of field elements. --- - [ ] depends on: #35408 - [ ] depends on: #35922 - [ ] depends on: #35260 [](https://gitpod.io/from-referrer/) | t-number-theory t-algebra blocked-by-other-PR large-import merge-conflict | 406/37 | Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/Finiteness/Nilpotent.lean | 8 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 35925 | MichaelStollBayreuth | feat(NumberTheory/Height/MvPolynomial): new file | We add a module Mathlib.NumberTheory.Height.MvPolynomial, whose contents are meant to be about height bounds for the image of a polynomial map between projective spaces with given basis, expressed in terms of coordinate tuples. This first instalment contains upper bounds for linea maps; upper and lower bounds for polynomial maps will follow. --- - [ ] depends on: #35260 - [ ] depends on: #35408 - [ ] depends on: #35922 [](https://gitpod.io/from-referrer/) | t-number-theory t-algebra large-import blocked-by-other-PR merge-conflict | 488/37 | Mathlib.lean,Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/MvPolynomial.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/Finiteness/Nilpotent.lean | 10 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 35927 | MichaelStollBayreuth | feat(NumberTheory/Height/MvPolynomial): upper bound for polynomial maps | We continue filling Mathlib.NumberTheory.Height.MvPolynomial. This PR contributes upper height bounds for the values of (homogeneous) polynomial maps on tuples. --- - [ ] depends on: #34658 - [ ] depends on: #35925 [](https://gitpod.io/from-referrer/) | t-number-theory t-algebra large-import blocked-by-other-PR merge-conflict | 1036/152 | Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/FiniteSupport/Basic.lean,Mathlib/Algebra/FiniteSupport/Defs.lean,Mathlib/Algebra/Notation/FiniteSupport.lean,Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Meromorphic/FactorizedRational.lean,Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/MvPolynomial.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/Finiteness/Nilpotent.lean,Mathlib/RingTheory/HahnSeries/Summable.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/Nilpotent/Basic.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/PartitionOfUnity.lean | 29 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 35940 | MichaelStollBayreuth | feat(NumberTheory/Height/MvPolynomial): lower height bounds for images under polynomial maps | We continue the development of height bounds for polynomial maps. Here we add the lower bound. --- - [ ] depends on: #35927 [](https://gitpod.io/from-referrer/) | t-number-theory t-algebra large-import blocked-by-other-PR merge-conflict | 1141/152 | Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/FiniteSupport/Basic.lean,Mathlib/Algebra/FiniteSupport/Defs.lean,Mathlib/Algebra/Notation/FiniteSupport.lean,Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Meromorphic/FactorizedRational.lean,Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/MvPolynomial.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/Finiteness/Nilpotent.lean,Mathlib/RingTheory/HahnSeries/Summable.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/Nilpotent/Basic.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/PartitionOfUnity.lean | 29 | 4 | ['AntoineChambert-Loir', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | 2 days ago | 23 minutes |
| 35941 | MichaelStollBayreuth | feat(NumberTheory/Height/MvPolynomial): add height bounds for `![x*y, x+y, 1]` | This continuous the motive of height bounds on polynomial maps; this time for the specific case of `![x*y, x+y, 1]` or, in homogeneous form, `![a*c, a*d + b*c, b*d]`. This specific case is used to deduce the "approximate parallelogram law" for the naïve height on an elliptic curve, which in turn is an ingredient for the proof of the Mordell-Weil Theorem. --- - [ ] depends on: #35940 [](https://gitpod.io/from-referrer/) | t-number-theory t-algebra large-import blocked-by-other-PR merge-conflict | 1298/152 | Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/FiniteSupport/Basic.lean,Mathlib/Algebra/FiniteSupport/Defs.lean,Mathlib/Algebra/Notation/FiniteSupport.lean,Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Meromorphic/FactorizedRational.lean,Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/MvPolynomial.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/Finiteness/Nilpotent.lean,Mathlib/RingTheory/HahnSeries/Summable.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/Nilpotent/Basic.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/PartitionOfUnity.lean | 29 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | 2 days ago | 11 minutes |
| 36029 | joelriou | feat(Algebra/Homology): exact sequences for `SpectralObject.E` | --- - [ ] depends on: #35378 - [ ] depends on: #35361 [](https://gitpod.io/from-referrer/) | t-algebra t-category-theory blocked-by-other-PR merge-conflict | 862/0 | Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Cycles.lean,Mathlib/Algebra/Homology/SpectralObject/Page.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 36030 | joelriou | feat(Algebra/Homology): more API for `SpectralObject.E` | --- - [ ] depends on: #36029 - [ ] depends on: #35378 - [ ] depends on: #35361 [](https://gitpod.io/from-referrer/) | t-category-theory t-algebra blocked-by-other-PR merge-conflict | 1155/0 | Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Cycles.lean,Mathlib/Algebra/Homology/SpectralObject/Page.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 36032 | joelriou | feat(Algebra/Homology/SpectralObject): differentials on pages | Compositions of five morphisms in the index category of a spectral object give differentials, which eventually will be the differentials on the constructed spectral sequences attached to spectral objects in abelian categories. --- - [ ] depends on: #36030 - [ ] depends on: #36029 - [ ] depends on: #35378 - [ ] depends on: #35361 [](https://gitpod.io/from-referrer/) | t-algebra t-category-theory blocked-by-other-PR merge-conflict | 1413/0 | Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Cycles.lean,Mathlib/Algebra/Homology/SpectralObject/Differentials.lean,Mathlib/Algebra/Homology/SpectralObject/Page.lean | 4 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 7 hours ago | unknown | unknown |
| 36089 | pfaffelh | feat(Topology/Compactness/CompactSystem): set system of finite unions of sets in a compact system is again a compact system | feat (Topology/Compactness/CompactSystem): The set system of finite unions of sets in a compact system is a compact system A compact system is a set system with the following property: If all finite intersections of a sequence in the set system is non-empty, the countable intersection is not empty. Starting with a compact system, consider the finite unions of sets in the copact system. Such sets again form a compact system (`IsCompactSystem.union.isCompactSystem`). This was previously #25900. - depends on: #36013 --- [](https://gitpod.io/from-referrer/) | 533/0 | Mathlib.lean,Mathlib/Data/Set/Dissipate.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/Topology/Compactness/CompactSystem.lean | 4 | 1 | ['github-actions'] | nobody | 7 hours ago | unknown | unknown | |
| 35785 | Brian-Nugent | feat(CategoryTheory/Topology): Add Flasque Sheaves | This PR defines flasque sheaves on a topological space as sheaves where all restriction morphisms are epimorphisms. The main result of this PR is `TopCat.Sheaf.IsFlasque.epi_of_shortExact` which says a short exact sequence where the first sheaf is flasque remains exact on sections. --- - [x] depends on: #34267 [](https://gitpod.io/from-referrer/) | new-contributor t-category-theory | 282/0 | Mathlib.lean,Mathlib/Topology/Sheaves/AddCommGrpCat.lean,Mathlib/Topology/Sheaves/Flasque.lean,Mathlib/Topology/Sheaves/LocallySurjective.lean,Mathlib/Topology/Sheaves/Presheaf.lean,Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean | 6 | 14 | ['Brian-Nugent', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smorel394'] | dagurtomas | 6 hours ago | 7 hours ago | 10 hours |
| 34940 | michaellee94 | feat: the graph of a continuous function on a $C^n$ manifold is a $C^n$ manifold | --- [](https://gitpod.io/from-referrer/) | t-differential-geometry new-contributor awaiting-author | 536/0 | Mathlib.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/Geometry/Manifold/Instances/Graph.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Topology/Constructions/Graph.lean | 5 | 78 | ['botbaki-review', 'github-actions', 'grunweg', 'michaellee94', 'ocfnash'] | ocfnash | 6 hours ago | 8 hours ago | 14 days |
| 36078 | tb65536 | feat(LinearAlgebra/Eigenspace/ContinuousLinearMap): eigenspaces of a continuous linear map are closed | This PR proves that eigenspaces of a continuous linear map are closed. This is in a new file to avoid heavy topology imports in the existing eigenspace files. --- [](https://gitpod.io/from-referrer/) | t-topology t-algebra | 37/0 | Mathlib.lean,Mathlib/LinearAlgebra/Eigenspace/ContinuousLinearMap.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean | 3 | 1 | ['github-actions'] | nobody | 6 hours ago | 6 hours ago | 6 hours |
| 36036 | grunweg | Hm covder bundled | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry | 6284/414 | Mathlib.lean,Mathlib/Geometry/Manifold/CheatSheet.md,Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean,Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean,Mathlib/Geometry/Manifold/Riemannian/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/LeviCivita.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Lift.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Prelim.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Torsion.lean,Mathlib/Geometry/Manifold/VectorBundle/GramSchmidtOrtho.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean,Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean,Mathlib/Geometry/Manifold/VectorBundle/Misc.lean,Mathlib/Geometry/Manifold/VectorBundle/OrthonormalFrame.lean,Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean,Mathlib/Geometry/Manifold/VectorBundle/Tensoriality.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean,Mathlib/Geometry/Manifold/VectorField/Pullback.lean | 21 | 1 | ['github-actions'] | nobody | 6 hours ago | unknown | unknown |
| 36088 | pevogam | feat: add a LE version of previous div_lt_div_iff_mul_lt_mul theorem | The following is more useful due to the partial order application of LE in comparison to LT. Additionally, add specialized cases of equal denominators as simpler syntactic sugar. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor | 16/0 | Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean | 1 | 2 | ['github-actions'] | nobody | 6 hours ago | 5 hours ago | 5 hours |
| 36054 | LLaurance | chore(Algebra): shorten proofs, style | Golf, use namespaces where possible, avoid terminal `simp only`, prefer `simp` to `rw` when this reduces the number of theorems listed, etc. --- [](https://gitpod.io/from-referrer/) | t-algebra WIP | 119/165 | Mathlib/Algebra/CubicDiscriminant.lean,Mathlib/Algebra/DualQuaternion.lean,Mathlib/Algebra/Exact.lean,Mathlib/Algebra/Free.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/Center.lean,Mathlib/Algebra/Star/CentroidHom.lean | 8 | 1 | ['github-actions'] | nobody | 6 hours ago | unknown | unknown |
| 35904 | chrisflav | feat(CategoryTheory/Sites): the maximal `1`-hypercover containing a `0`-hypercover | --- - [x] depends on: #35902 [](https://gitpod.io/from-referrer/) | t-category-theory | 139/0 | Mathlib.lean,Mathlib/CategoryTheory/Sites/Hypercover/Saturate.lean | 2 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 6 hours ago | 11 hours ago | 4 hours |
| 36083 | gasparattila | feat: decomposition of `ContinuousAffineMap` as an `Equiv` | This PR defines an equivalence `(V →ᴬ[R] Q) ≃ Q × (V →L[R] W)`, plus `LinearEquiv` and `AffineEquiv` variants. To match the names of the new equivalences, `ContinuousAffineMap.toConstProdLinearMap` is also renamed. --- [](https://gitpod.io/from-referrer/) | 154/13 | Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean,Mathlib/Topology/Algebra/ContinuousAffineMap.lean | 2 | 1 | ['github-actions'] | nobody | 6 hours ago | 5 hours ago | 5 hours | |
| 34594 | kim-em | feat(LinearAlgebra/ConvexSpace): show AffineSpace is a ConvexSpace | This PR shows that every affine space is a convex space, resolving a TODO item in `Mathlib.LinearAlgebra.ConvexSpace`. The key components are: - `AddTorsor.convexCombination`: convex combination using `affineCombination` - `convexCombination_single`: unit law for convex combinations - `convexCombination_assoc`: associativity law (monadic join) - `AddTorsor.instConvexSpace`: the `ConvexSpace R P` instance 🤖 Prepared with Claude Code | t-algebra | 137/0 | Mathlib.lean,Mathlib/LinearAlgebra/ConvexSpace/AffineSpace.lean | 2 | 15 | ['github-actions', 'kim-em', 'ocfnash', 'plp127'] | ocfnash | 5 hours ago | 14 days ago | 13 days |
| 35797 | xroblot | feat(IsGaloisGroup): if `B/A` and `B/A'` are Galois with the same Galois group, then `A ≃+* A'` | --- [](https://gitpod.io/from-referrer/) | t-algebra | 42/1 | Mathlib/FieldTheory/Galois/IsGaloisGroup.lean | 1 | 6 | ['github-actions', 'tb65536', 'xroblot'] | dagurtomas | 5 hours ago | 5 days ago | 5 days |
| 36092 | tb65536 | feat(CategoryTheory/Monoidal/Cartesian/Grp_): `Grp` has kernels | This PR proves that `Grp` has kernels. --- [](https://gitpod.io/from-referrer/) | t-category-theory large-import | 33/0 | Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean | 1 | 2 | ['github-actions', 'tb65536'] | nobody | 5 hours ago | 5 hours ago | 5 hours |
| 35213 | kim-em | chore: use @[to_dual] in ConditionallyCompleteLattice | This PR adds `@[to_dual]` annotations across all `ConditionallyCompleteLattice` files: `Defs`, `Basic`, `Indexed`, `Finset`, and `Group`. Auto-generates dual theorems and deletes hand-written versions. (Absorbs the former PR #35212.) [Diff relative to #35209](https://github.com/kim-em/mathlib4/compare/kim/to-dual-complete-lattice...kim/to-dual-ccl-extended) - [ ] depends on: #35209 - [ ] depends on: #35211 🤖 Prepared with Claude Code | blocked-by-other-PR | 189/485 | Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean | 4 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 5 hours ago | unknown | unknown |
| 35215 | kim-em | chore: use @[to_dual] in FixedPoints | This PR adds `@[to_dual]` annotations to 14 theorems about `lfp` in `Order/FixedPoints.lean`, auto-generating their `gfp` duals and deleting the hand-written versions. Also registers `OrderHom.lfp` as the dual of `OrderHom.gfp` via `attribute [to_dual existing]`. Auto-generated duals include: `le_gfp`, `gfp_le_fixed`, `gfp_le`, `gfp_le_map`, `map_gfp`, `isFixedPt_gfp`, `map_le_gfp`, `isGreatest_gfp_le`, `isGreatest_gfp`, `gfp_induction`, `map_gfp_comp`, `gfp_gfp`, `map_inf_fixedPoints_le`, `map_sInf_subset_fixedPoints_le`. [Diff relative to #35208](https://github.com/kim-em/mathlib4/compare/kim/to-dual-bounds-basic...kim/to-dual-fixed-points) - [x] depends on: #35208 🤖 Prepared with Claude Code | 249/548 | Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Interval/Set/Disjoint.lean,Mathlib/Topology/Order.lean | 8 | 9 | ['JovanGerb', 'github-actions', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | nobody | 5 hours ago | 4 hours ago | 7 days | |
| 35210 | 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 | blocked-by-other-PR | 217/579 | Mathlib/Data/Set/Lattice.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/CompleteLattice/Finset.lean,Mathlib/Order/CompleteLattice/Lemmas.lean,Mathlib/Tactic/SetLike.lean | 7 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 5 hours ago | unknown | unknown |
| 36081 | joelriou | refactor(CategoryTheory/Sites): redefine the category of sheaves using `ObjectProperty.FullSubcategory` | WIP --- [](https://gitpod.io/from-referrer/) | WIP t-category-theory large-import merge-conflict | 604/715 | Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Abelian.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Colimits.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Localization.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackContinuous.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean,Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean,Mathlib/AlgebraicGeometry/GluingOneHypercover.lean,Mathlib/AlgebraicGeometry/Modules/Presheaf.lean,Mathlib/AlgebraicGeometry/Sites/Representability.lean,Mathlib/AlgebraicGeometry/Spec.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/CategoryTheory/Generator/Sheaf.lean,Mathlib/CategoryTheory/Sites/Adjunction.lean,Mathlib/CategoryTheory/Sites/CartesianClosed.lean,Mathlib/CategoryTheory/Sites/CartesianMonoidal.lean,Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean,Mathlib/CategoryTheory/Sites/Coherent/ExtensiveColimits.lean,Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean,Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean,Mathlib/CategoryTheory/Sites/Coherent/SequentialLimit.lean,Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean,Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean,Mathlib/CategoryTheory/Sites/ConstantSheaf.lean,Mathlib/CategoryTheory/Sites/Continuous.lean,Mathlib/CategoryTheory/Sites/CoverLifting.lean,Mathlib/CategoryTheory/Sites/CoverPreserving.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean,Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean,Mathlib/CategoryTheory/Sites/Equivalence.lean,Mathlib/CategoryTheory/Sites/GlobalSections.lean,Mathlib/CategoryTheory/Sites/Hypercover/One.lean,Mathlib/CategoryTheory/Sites/Limits.lean,Mathlib/CategoryTheory/Sites/Localization.lean,Mathlib/CategoryTheory/Sites/LocallyBijective.lean,Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean,Mathlib/CategoryTheory/Sites/LocallyInjective.lean,Mathlib/CategoryTheory/Sites/LocallySurjective.lean,Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean,Mathlib/CategoryTheory/Sites/Over.lean,Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean,Mathlib/CategoryTheory/Sites/PreservesSheafification.lean,Mathlib/CategoryTheory/Sites/RegularEpi.lean,Mathlib/CategoryTheory/Sites/Sheaf.lean,Mathlib/CategoryTheory/Sites/SheafHom.lean,Mathlib/CategoryTheory/Sites/Sheafification.lean,Mathlib/CategoryTheory/Sites/Subcanonical.lean,Mathlib/CategoryTheory/Sites/Subsheaf.lean,Mathlib/CategoryTheory/Sites/Types.lean,Mathlib/CategoryTheory/Sites/Whiskering.lean,Mathlib/Condensed/Basic.lean,Mathlib/Condensed/Equivalence.lean,Mathlib/Condensed/Light/Basic.lean,Mathlib/Condensed/Light/Epi.lean,Mathlib/Condensed/Light/Explicit.lean,Mathlib/Condensed/Light/Module.lean,Mathlib/Condensed/TopComparison.lean,Mathlib/Geometry/Manifold/Sheaf/Basic.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Geometry/RingedSpace/Basic.lean,Mathlib/Topology/Sheaves/CommRingCat.lean,Mathlib/Topology/Sheaves/Sheaf.lean,Mathlib/Topology/Sheaves/SheafCondition/Sites.lean,Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean,Mathlib/Topology/Sheaves/Skyscraper.lean,Mathlib/Topology/Sheaves/Stalks.lean | 72 | 1 | ['github-actions'] | nobody | 5 hours ago | unknown | unknown |
| 35518 | kim-em | chore: forbid prime (') in filenames, rename LinearCombination' | This PR renames `Mathlib/Tactic/LinearCombination'.lean` to `LinearCombinationPrime.lean` (and the corresponding test file), and adds a lint check to `modulesOSForbidden` to prevent future files with prime/apostrophe characters in their names. The `'` character in filenames causes shell escaping issues in scripts (any `find ... -name '*.lean'` or similar pattern needs careful quoting to handle these files correctly). 🤖 Prepared with Claude Code | file-removed | 13/8 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LinearCombinationPrime.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,MathlibTest/linear_combination_prime.lean | 6 | 6 | ['eric-wieser', 'euprunin', 'github-actions', 'kim-em'] | MichaelStollBayreuth | 5 hours ago | 10 days ago | 10 days |
| 36093 | tb65536 | feat(GroupTheory/Nilpotent): remove `[IsNilpotent]` assumption from some theorems | This PR uses the junk value of `nilpotencyClass` to remove `[IsNilpotent]` assumption from some theorems. --- [](https://gitpod.io/from-referrer/) | t-algebra t-group-theory | 18/12 | Mathlib/GroupTheory/Nilpotent.lean | 1 | 1 | ['github-actions'] | nobody | 5 hours ago | 5 hours ago | 5 hours |
| 36066 | EtienneC30 | feat: independence of processes with almost everywhere equal marginals | If `X` is a process independent from `Y` and for all `i`, `X' i` is almost everywhere equal to `X i`, then `X'` is also independent from `Y`. This implies that independence results about measurable processes should generally also hold for processes whose marginals are only aemeasurable. --- - [x] depends on: #36065 [](https://gitpod.io/from-referrer/) | t-measure-probability | 285/38 | Mathlib/MeasureTheory/Constructions/Cylinders.lean,Mathlib/Probability/Independence/BoundedContinuousFunction.lean,Mathlib/Probability/Independence/Process.lean | 3 | 4 | ['github-actions', 'mathlib-dependent-issues', 'sgouezel'] | nobody | 5 hours ago | unknown | unknown |
| 35593 | chrisflav | feat(RingTheory/Extension): naive cotangent complex commutes with flat base change | From Pi1. --- - [x] depends on: #35544 - [x] depends on: #35557 - [ ] depends on: #35594 [](https://gitpod.io/from-referrer/) | t-ring-theory merge-conflict blocked-by-other-PR | 786/0 | Mathlib/Algebra/Module/TransferInstance.lean,Mathlib/LinearAlgebra/TensorProduct/Quotient.lean,Mathlib/RingTheory/Extension/Basic.lean,Mathlib/RingTheory/Extension/Cotangent/BaseChange.lean,Mathlib/RingTheory/Extension/Cotangent/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/CotangentBaseChange.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/TensorProduct/Quotient.lean | 10 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 5 hours ago | unknown | unknown |
| 35209 | kim-em | chore: use @[to_dual] extensively in CompleteLattice | This PR adds `@[to_dual]` and `@[to_dual existing]` annotations extensively in `CompleteLattice/Defs.lean` and `CompleteLattice/Basic.lean`, auto-generating many dual theorems and deleting the hand-written versions. [Diff relative to previous PR](https://github.com/kim-em/mathlib4/compare/kim/to-dual-bounds-basic...kim/to-dual-complete-lattice) - [x] depends on: #35208 🤖 Prepared with Claude Code | 182/483 | Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean | 3 | 38 | ['github-actions', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] | dupuisf | 5 hours ago | 4 hours ago | 7 days | |
| 35214 | kim-em | chore: use @[to_dual] in GaloisConnection and Interval.Set.Disjoint | This PR adds `@[to_dual]` annotations to 9 theorems in `GaloisConnection/Basic.lean` and 1 in `Interval/Set/Disjoint.lean`, deleting the hand-written dual theorems that are now auto-generated. In `GaloisConnection/Basic.lean`, the entire `section SemilatticeInf` block (containing `u_inf`) is deleted since `l_sup` now generates it via `@[to_dual]`. Similarly for `u_iInf`, `u_iInf₂`, `u_sInf`, and several bounds/image lemmas. [Diff relative to #35213](https://github.com/kim-em/mathlib4/compare/kim/to-dual-ccl-extended...kim/to-dual-galois-connection) - [ ] depends on: #35213 🤖 Prepared with Claude Code | blocked-by-other-PR | 204/526 | Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Interval/Set/Disjoint.lean,Mathlib/Topology/Order.lean | 8 | 4 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 5 hours ago | unknown | unknown |
| 35008 | b-mehta | feat(Algebra/Order/BigOperators): order properties of subsets in groups with zero | We have these lemmas for CommMonoid, but not yet for CommMonoidWithZero. We rename the CommMonoid versions, for consistency with all the surrounding lemmas: the local convention here is for the CommMonoid version to have primes, and the AddCommMonoid and CommMonoidWithZero versions not to (since the latter applies in the more common case of rings). - [ ] depends on: #35005 | t-algebra large-import merge-conflict | 108/72 | Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] | nobody | 5 hours ago | unknown | unknown |
| 35753 | Vilin97 | feat(Topology/Algebra/Order): regular grid helpers and piecewise linear interpolation | ## Summary - Add `Nat.floor_div_eq_of_mem_Ico`, `mem_Ico_Nat_floor_div`, `locallyFinite_Icc_grid`, and `ContinuousOn.of_Icc_grid` to `Topology/Algebra/Order/Floor.lean`. - Add new file `Topology/Algebra/Order/PiecewiseLinear.lean` with `piecewiseLinear` and `piecewiseConst` definitions for interpolation on regular grids, along with evaluation lemmas, continuity, and right derivative. - Grid helpers are generalized over `Field K` with `FloorSemiring` and `OrderTopology`. - Piecewise definitions are generic over `Field α`; continuity/derivative results are for `ℝ`-normed spaces. ## Motivation These are used in the [forward Euler convergence proof](https://github.com/Vilin97/forward_euler) to construct piecewise linear interpolations of Euler points and prove their continuity. They are general-purpose lemmas about regular grids and piecewise interpolation that should be useful beyond this application. Follow-up PR: #35755 (forward Euler method convergence). --- The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was then iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code (Claude Opus 4.6). | t-topology new-contributor | 151/0 | Mathlib.lean,Mathlib/Topology/Algebra/Order/Floor.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean | 3 | 6 | ['copilot-pull-request-reviewer', 'github-actions', 'wwylele'] | dagurtomas | 5 hours ago | 7 hours ago | 6 days |
| 36097 | matthewjasper | chore: make psuedoparents of algebraic substructures reducible | Make functions that take an algebraic substructure and return a sibling class reducible, this matches actual parents and resolves some usage of `set_option backward.isDefEq.respectTransparency false`. Also remove @[simp] from `adjoin_toSubsemiring`, since it prevents other simp lemmas on `adjoin` from applying. --- [](https://gitpod.io/from-referrer/) | 18/8 | Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Field/Subfield/Defs.lean,Mathlib/Algebra/Ring/Subring/Defs.lean,Mathlib/Algebra/Ring/Subsemiring/Defs.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/FieldTheory/IntermediateField/Basic.lean,Mathlib/RingTheory/NonUnitalSubring/Defs.lean,Mathlib/RingTheory/TensorProduct/Basic.lean | 11 | 1 | ['github-actions'] | nobody | 4 hours ago | unknown | unknown | |
| 36059 | joelriou | feat(CategoryTheory/Functor): exactness properties of conservative families of exact functors | A morphism of homological complexes is a quasi-isomorphism iff it is so after applying a conservative family of exact functors. --- [](https://gitpod.io/from-referrer/) | t-category-theory | 195/0 | Mathlib.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Exact.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Limits.lean,Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean | 4 | 3 | ['github-actions', 'robin-carlier'] | nobody | 4 hours ago | 11 hours ago | 3 hours |
| 36095 | kim-em | chore: remove stray comment about backward.isDefEq.respectTransparency | This PR removes a stray comment in `lakefile.lean` that referred to the `backward.isDefEq.respectTransparency` option. The option itself was already removed, but the comment was left behind. See https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/backward.2EisDefEq.2ErespectTransparency/near/576953838 🤖 Prepared with Claude Code | 0/3 | lakefile.lean | 1 | 4 | ['Parcly-Taxel', 'github-actions', 'kim-em'] | nobody | 4 hours ago | unknown | unknown | |
| 36098 | Parcly-Taxel | chore: split natural number lemmas from `RingTheory.Radical` | The new copyright headers are based on #25335. | t-ring-theory file-removed | 100/88 | Mathlib.lean,Mathlib/RingTheory/Polynomial/Radical.lean,Mathlib/RingTheory/Radical/Basic.lean,Mathlib/RingTheory/Radical/NatInt.lean | 4 | 1 | ['github-actions'] | nobody | 4 hours ago | unknown | unknown |
| 35950 | kim-em | feat(Tactic): add inferInstanceAs% to fix type leakage | This PR adds `inferInstanceAs%`, a drop-in replacement for `inferInstanceAs` that prevents "type leakage" in synthesized instances. When `inferInstanceAs (SomeClass A)` is used to define `SomeClass B` (where `B` is a non-reducible alias for `A`), the synthesized instance may contain lambda binder domains (and other sub-expressions) referring to `A` or deeper unfoldings instead of `B`. This is invisible at `default` transparency but causes `isDefEq` failures at `reducibleAndInstances` transparency — which is the level used by `grind`'s `checkInst`. `inferInstanceAs%` fixes this by recursively normalizing the constructor tree: it WHNFs to expose the constructor, patches carrier type parameters via `isDefEq` matching against the unfolding chain, recursively processes instance-implicit fields, and replaces lambda binder domains in function fields. As a demonstration, this fixes the `grind` failure in `FiniteResidueField` that was worked around with `#adaptation_note` and a manual proof on `nightly-testing`. 🤖 Prepared with Claude Code | 428/12 | Mathlib.lean,Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Tactic.lean,Mathlib/Tactic/InferInstanceAsPercent.lean,MathlibTest/InferInstanceAsPercent.lean | 5 | 29 | ['JovanGerb', 'astrainfinita', 'github-actions', 'kim-em'] | nobody | 4 hours ago | 4 hours ago | 19 hours | |
| 32942 | kim-em | feat(CategoryTheory/Monoidal/Rigid): tensor product of exact pairings | This PR adds the tensor product construction for exact pairings in rigid monoidal categories: - `ExactPairing.tensor`: Given exact pairings `(X₁, Y₁)` and `(X₂, Y₂)`, we get an exact pairing `(X₁ ⊗ X₂, Y₂ ⊗ Y₁)`. Note the reversed order in the second factor - this is essential for the monoidal structure of dual functors. - `HasRightDual.tensor` and `HasLeftDual.tensor`: If `X` and `Y` have duals, so does `X ⊗ Y` - `rightDual_tensor` and `leftDual_tensor` simp lemmas 🤖 Prepared with Claude Code | t-category-theory awaiting-author | 103/0 | Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean | 1 | 7 | ['github-actions', 'joelriou', 'kim-em', 'robin-carlier'] | nobody | 4 hours ago | 11 days ago | 3 days |
| 35323 | martinwintermath | feat(Geometry/Convex/Cone): Add lemmas for PointedCone.dual | Add several useful lemmas for `PointedCone.dual` in preparation for duality theory for FG cones. Some other changes are: * renamed `dual_le_dual` to `dual_anti` and added partner lemma `dual_antitone` * removed TODO comment since the stated lemma is not sufficient to prove the claim, an also this has now been proven and will become a PR in the near future. --- [](https://gitpod.io/from-referrer/) | t-convex-geometry | 29/6 | Mathlib/Geometry/Convex/Cone/Dual.lean | 1 | 1 | ['github-actions'] | YaelDillies | 4 hours ago | 16 days ago | 16 days |
| 35429 | CoolRmal | feat: a convex, lower-semicontinuous, and positively homogeneous function is the supremum of a family of linear functions | This PR adds more results related to the #31411. The motivation of this PR is explained over here: #35431. The main theorems proved in this PR are - `convexCone_sSup_linear_eq`: A function `φ : E → ℝ` that is convex, lower-semicontinuous, and positively homogeneous on a closed, convex, and pointed cone `c` is the supremum of a family of functions that are the restrictions to `s` of continuous linear forms in `E`. I actually prove this theorem under the assumption `∀ x ∈ c, ∀ᶠ μ in atTop, φ (μ • x) = μ * φ x`, which is weaker than positive homogeneity. - We then apply the theorem above to prove `univ_sSup_linear_eq`, which says that a function that is convex, lower-semicontinuous, and positively homogeneous on the entire space is the supremum of a family of continuous linear forms in `E`. - Similar to what I have done in #31411, I also proved the countable/sequential version of these theorems, under the assumption that the underlying space `E` is hereditarily Lindelof. --- - [ ] depends on #27953 [](https://gitpod.io/from-referrer/) | t-analysis | 351/24 | Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean | 4 | 2 | ['github-actions', 'joneugster'] | j-loreaux | 4 hours ago | 15 days ago | 15 days |
| 35867 | edegeltje | feat(CategoryTheory/Topos): Define subobject classifier for sheaf of types | This PR defines `Sheaf.classifier J : Classifier (Sheaf J (Type (max u v))`, which is the last ingredient missing to sheaf categories being elementary topoi. adapted from: https://github.com/edegeltje/CwFTT/blob/591d4505390172ae70e1bc97544d293a35cc0b3f/CwFTT/Classifier/Sheaf.lean --- [](https://gitpod.io/from-referrer/) | t-category-theory | 370/0 | Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean,Mathlib/CategoryTheory/Sites/Sheaf.lean,Mathlib/CategoryTheory/Topos/Sheaf.lean | 4 | 15 | ['chrisflav', 'edegeltje', 'github-actions'] | robin-carlier | 4 hours ago | 3 days ago | 3 days |
| 35871 | edegeltje | feat(CategoryTheory/Limits): `IsPullback.mono_fst_of_mono` and similar | This lemma is more convenient than going through `MorphismProperty.IsStableUnderBasechange`. We use `(inst : Mono f := by infer_instance)` instead of `[Mono f]` because on occasion, these proof arguments are not by `inferInstance`, and this design lets us more easily use the lemma in such cases. --- [](https://gitpod.io/from-referrer/) | t-category-theory | 46/46 | Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/Limits.lean | 2 | 1 | ['github-actions'] | robin-carlier | 4 hours ago | 4 days ago | 4 days |
| 35882 | Thmoas-Guan | feat(Algebra/ModuleCat): API on short complex in ModuleCat | Adding some API on short complex in ModuleCat, for construction and exactness. --- [](https://gitpod.io/from-referrer/) | t-algebra | 19/0 | Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean | 1 | 1 | ['github-actions'] | dagurtomas | 4 hours ago | unknown | unknown |
| 35895 | edegeltje | feat(CategoryTheory/Topos/Classifier): subobject classifiers, isos and equivalences | this PR adds `Classifier.ofEquivalence`, `Classifier.ofIso` and `Classifier.uniqueUpToIso`, as well as accompanying lemmas --- [](https://gitpod.io/from-referrer/) | t-category-theory | 106/3 | Mathlib/CategoryTheory/Topos/Classifier.lean | 1 | 1 | ['github-actions'] | joelriou | 4 hours ago | 3 days ago | 3 days |
| 35899 | themathqueen | feat(Analysis): `extremePoints 𝕜 (closedBall 0 1) ⊆ sphere 0 1` | ... in a nontrivial normed space, with equality in a nontrivial Hilbert space. --- [](https://gitpod.io/from-referrer/) | t-analysis | 84/0 | Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/RCLike/Basic.lean | 2 | 1 | ['github-actions'] | j-loreaux | 4 hours ago | 3 days ago | 3 days |
| 35673 | Parcly-Taxel | feat: radical lemmas for natural numbers and integers | Add lemmas relating to the radical on `Nat` and `Int` in `RingTheory.Radical.NatInt`. The existing file is moved to `RingTheory.Radical.Basic`, whose module docstring is updated. These are needed as part of a project I'm doing for my PhD under Frank Stephan. * depends on: #36098 | file-removed t-ring-theory | 162/88 | Mathlib.lean,Mathlib/RingTheory/Polynomial/Radical.lean,Mathlib/RingTheory/Radical/Basic.lean,Mathlib/RingTheory/Radical/NatInt.lean | 4 | 25 | ['Parcly-Taxel', 'github-actions', 'mathlib-merge-conflicts', 'riccardobrasca', 'vihdzp'] | riccardobrasca | 4 hours ago | 1 day ago | 7 days |
| 36084 | emo916math | Eliminated a hypothesis on IsTheta.rpow | A strengthened version of `IsTheta.rpow`: if $f$ and $g$ are eventually nonnegative functions with $f = \Theta(g)$ and $r \in \mathbb{R}$, then $f^r = \Theta(g^r)$. The previous version had a hypothesis that $r \geq 0$. The present version proves by splitting into two cases; in the case $r < 0$, the lower and upper bounds must be used in reverse order. Since `IsTheta.rpow` is not used elsewhere in Mathlib, this should be an easy one to merge. (Claude AI was used to help in the golfing.) --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 10/3 | Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean | 1 | 2 | ['github-actions'] | nobody | 4 hours ago | 3 hours ago | 3 hours |
| 35906 | scp020 | feat(Combinatorics/SimpleGraph/Walks): add Walk.IsChord and Walk.IsChordless | Add `Walk.IsChord` and `Walk.IsChordless` predicates in a new file `SimpleGraph/Walks/Chords.lean`.
See "chord" in https://en.wikipedia.org/wiki/Glossary_of_graph_theory
Discussion on Zulip:
[Zulip link](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Walk.2EIsChordless.20live.20in.20mathlib.3F/with/575277309)
authored-by: Tianyi Zhao |
t-combinatorics new-contributor | 68/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Chords.lean | 2 | 11 | ['SnirBroshi', 'github-actions', 'scp020'] | nobody | 3 hours ago | 4 hours ago | 1 day |
| 36087 | matthewjasper | chore: fix diamonds for Real/Complex Algebra instances | Unfold or make `implicit_reducible` some definitions used to define `Algebra ℝ ℂ` . This should allow reducing use of `set_option backward.isDefEq.respectTransparency false`. --- [](https://gitpod.io/from-referrer/) | 46/20 | Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Pi.lean,Mathlib/Algebra/Algebra/Prod.lean,Mathlib/Algebra/Algebra/RestrictScalars.lean,Mathlib/Algebra/Category/ModuleCat/Algebra.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/LinearAlgebra/Complex/Module.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/TensorProduct/Maps.lean | 13 | 2 | ['github-actions', 'matthewjasper'] | nobody | 3 hours ago | unknown | unknown | |
| 35914 | ajirving | feat(Analysis/Complex): weaken hypothesis in Borel-Caratheodory theorem | Replace the hypothesis Re z < m with Re z <= m which is sufficient for the proof. The conclusions are unchanged. The non-strict inequality is used in the PNT project, somehow it had been made strict when upstreaming the result. --- [](https://gitpod.io/from-referrer/) | t-analysis delegated | 14/14 | Mathlib/Analysis/Complex/BorelCaratheodory.lean | 1 | 9 | ['Ruben-VandeVelde', 'ajirving', 'github-actions', 'kim-em', 'maksym-radziwill', 'mathlib-bors'] | nobody | 3 hours ago | 1 day ago | 1 day |
| 36091 | JJYYY-JJY | feat(Analysis.LocallyConvex.Separation): add Eidelheit's separation theorem | Adds `geometric_hahn_banach_of_interior_nonempty`, formalizing Eidelheit's separation theorem for disjoint convex sets where one has a nonempty interior. This resolves the longstanding TODO in `Mathlib.Analysis.LocallyConvex.Separation`. The patch also removes the TODO for the topological property `Convex ℝ s → interior (closure s) ⊆ s`, as this is already handled by `Convex.closure_interior_eq_closure_of_nonempty_interior` (imported from `Mathlib.Analysis.Convex.Topology`). Key implementation details: * Uses `geometric_hahn_banach_open` to separate `interior A` and `B`. * Requires `B.Nonempty` to guarantee the separating continuous linear functional is nontrivial (`f ≠ 0`), avoiding the triviality trap where `A` covers the entire space. * Uses `closure_minimal` to extend the weak inequality from `interior A` to the entirety of `A`. --- [](https://gitpod.io/from-referrer/) Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Interior.20of.20closure.20for.20convex.20sets/with/577060103 | t-analysis new-contributor | 39/5 | Mathlib/Analysis/LocallyConvex/Separation.lean | 1 | 7 | ['copilot-pull-request-reviewer', 'github-actions', 'wwylele'] | nobody | 3 hours ago | 2 hours ago | 4 hours |
| 35233 | kim-em | chore: lake shake --add-public --keep-implied --keep-prefix --fix | This PR runs `lake shake --add-public --keep-implied --keep-prefix --fix` again after https://github.com/leanprover-community/mathlib4/pull/34511, picking up the remaining 28 files that now have suggestions. 🤖 Prepared with Claude Code | large-import | 19/12 | Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Init.lean,Mathlib/LinearAlgebra/Matrix/Kronecker.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean,Mathlib/LinearAlgebra/TensorProduct/Map.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/RingTheory/MatrixAlgebra.lean,Mathlib/Tactic/CongrExclamation.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linter/FindDeprecations.lean,Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/NormNum/Result.lean,Mathlib/Tactic/Order/CollectFacts.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Tauto.lean,Mathlib/Tactic/TermCongr.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Widget/GCongr.lean | 22 | 3 | ['adomani', 'bryangingechen', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 2 hours ago | 4 hours ago | 19 hours |
| 35957 | Scarlett-le | feat: add dist_center_midpoint_lt_radius for spheres | Adds two results about chords of spheres in Euclidean affine spaces: - `Sphere.inner_vsub_center_midpoint_vsub`: the vector from the center of a sphere to the midpoint of a chord is orthogonal to the chord. - `Sphere.dist_center_midpoint_lt_radius`: the distance from the center to the midpoint of a chord with distinct endpoints is strictly less than the radius. This follows by applying the Pythagorean theorem to the right triangle formed by the center, the midpoint, and an endpoint, using the orthogonality result above. | t-euclidean-geometry | 22/0 | Mathlib/Geometry/Euclidean/Sphere/Basic.lean | 1 | 2 | ['github-actions', 'jsm28'] | nobody | 2 hours ago | 2 hours ago | 1 day |
| 34629 | plp127 | feat: cyclic group with explicit generator is equivalent to `ZMod n` | We provide an equivalence between a cyclic group (given by an explicit generator) and `ZMod n`, where `n` is equal to the cardinality of the group. The equivalence sends `1` to the generator. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/ZMod.20to.20cyclic.20group/near/571147306). --- [](https://gitpod.io/from-referrer/) | t-group-theory | 78/13 | Mathlib/GroupTheory/SpecificGroups/Cyclic.lean | 1 | 13 | ['github-actions', 'mathlib-merge-conflicts', 'plp127', 'riccardobrasca', 'tb65536', 'vihdzp'] | vihdzp | 2 hours ago | 2 hours ago | 5 days |
| 36020 | SproutSeeds | feat(Combinatorics/Enumerative/DoubleCounting): add weighted bipartite lower bound | ## Summary This PR adds a weighted bipartite double-counting lower bound in `Mathlib/Combinatorics/Enumerative/DoubleCounting.lean`: - `Finset.sum_mul_le_sum_sum_bipartiteBelow_of_le_card_bipartiteAbove` ## New theorem ```lean theorem sum_mul_le_sum_sum_bipartiteBelow_of_le_card_bipartiteAbove [∀ a b, Decidable (r a b)] (w m : α → ℕ) (hm : ∀ a ∈ s, m a ≤ #(t.bipartiteAbove r a)) : (∑ a ∈ s, m a * w a) ≤ ∑ b ∈ t, ∑ a ∈ s.bipartiteBelow r b, w a ``` ## Motivation Existing double-counting lemmas in this file are cardinality-based with constant bounds. This theorem provides the weighted/inhomogeneous variant: each left vertex `a` can carry its own multiplicity lower bound `m a` and weight `w a`. This packages a reusable pattern for incidence arguments where lower bounds vary across vertices. ## Use cases 1. Weighted incidence counting in bipartite relations with non-uniform degree guarantees. 2. Charging arguments where each object contributes weight and has an object-dependent minimum witness multiplicity. ## API / compatibility - No existing theorem names changed. - No imports added. - Additive change only. ## Verification ```bash ~/.elan/bin/lake build Mathlib.Combinatorics.Enumerative.DoubleCounting ~/.elan/bin/lake env lean Mathlib/Combinatorics/Enumerative/DoubleCounting.lean ``` ## AI usage I used AI tools for exploration/drafting, then manually selected the statement, edited the Lean code, and ran local checks. | new-contributor t-combinatorics | 15/0 | Mathlib/Combinatorics/Enumerative/DoubleCounting.lean | 1 | 6 | ['Rida-Hamadani', 'SproutSeeds', 'github-actions'] | nobody | 1 hour ago | 1 hour ago | 1 day |
| 36100 | plp127 | feat(FieldTheory/KrullTopology): generalize theorems | Simultaneously generalize `IntermediateField.fixingSubgroup_isClosed` and `InfiniteGalois.fixingSubgroup_isClosed` to algebraic extensions. --- [](https://gitpod.io/from-referrer/) | t-algebra | 17/25 | Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/KrullTopology.lean | 2 | 1 | ['github-actions'] | nobody | 1 hour ago | unknown | unknown |
| 36099 | SnirBroshi | feat(Combinatorics/SimpleGraph/Sum): `edgeSet` equivalence | --- - [ ] depends on: #34909 [](https://gitpod.io/from-referrer/) | t-combinatorics blocked-by-other-PR | 30/0 | Mathlib/Combinatorics/SimpleGraph/Sum.lean,Mathlib/Data/Sym/Sym2.lean | 2 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 1 hour ago | 1 hour ago | 1 hour |
| 33831 | vihdzp | refactor(RingTheory/Polynomial/SmallDegreeVieta): convert to {p : R[X]} (hp : p.natDegree = 2) |
Co-authored-by: Christopher Hoskin |
t-ring-theory awaiting-author merge-conflict | 112/48 | Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean | 3 | 5 | ['chrisflav', 'github-actions', 'mathlib-merge-conflicts'] | chrisflav | 59 minutes ago | 43 days ago | 8 days |
| 35283 | Multramate | feat(Algebra/Polynomial): add aevalEquiv and its bivariate version | --- [](https://gitpod.io/from-referrer/) | t-algebra easy merge-conflict | 43/8 | Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/RingTheory/AdjoinRoot.lean | 3 | 6 | ['Multramate', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts', 'ocfnash'] | riccardobrasca | 55 minutes ago | 7 days ago | 9 days |
| 35945 | euprunin | chore: replace uses of `aesop` with `simp` | Since `aesop` runs `simp_all` by default, it is preferable to call `simp` directly when it suffices to close the goal. This makes the proof intent more explicit and is typically faster (sometimes significantly so in the cases below). Trace profiling results (differences <30 ms considered measurement noise): * `Polynomial.splits_mul_iff`: 998 ms before, 807 ms after 🎉 * `summable_condensed_iff_of_eventually_nonneg`: 927 ms before, 835 ms after 🎉 * `CategoryTheory.PreservesFiniteLimitsOfFlat.uniq`: 1476 ms before, 1327 ms after 🎉 * `IsCyclotomicExtension.union_of_isPrimitiveRoot`: 528 ms before, 306 ms after 🎉 * `Representation.FiniteCyclicGroup.coinvariantsKer_leftRegular_eq_ker`: 324 ms before, 292 ms after 🎉 * `of_adjoin_eq_top`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [](https://gitpod.io/from-referrer/) | merge-conflict | 15/15 | Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/AlgebraicGeometry/Noetherian.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/Analysis/PSeries.lean,Mathlib/CategoryTheory/Functor/Flat.lean,Mathlib/LinearAlgebra/Multilinear/Curry.lean,Mathlib/NumberTheory/Cyclotomic/Basic.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean,Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean,Mathlib/RingTheory/ZariskisMainTheorem.lean | 13 | 4 | ['euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | nobody | 55 minutes ago | 2 days ago | 2 days |
| 36064 | marcelolynch | ci: Push to the cache using OIDC and federated credentials | TODO - desc | CI merge-conflict | 137/34 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,.github/workflows/build_template.yml,.github/workflows/ci_dev.yml,Cache/Main.lean,Cache/README.md,Cache/Requests.lean | 8 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 55 minutes ago | unknown | unknown |
| 36079 | DavidLedvinka | refactor(Probability): Refactors Conditional Independence to allow spaces that are not Standard Borel | merge-conflict | 889/1 | Mathlib/MeasureTheory/Function/ConditionalLExpectation.lean,Mathlib/MeasureTheory/VectorMeasure/Basic.lean,Mathlib/Order/Filter/CountableInter.lean,Mathlib/Probability/Independence/CondIndep.lean | 4 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 55 minutes ago | unknown | unknown | |
| 36086 | Multramate | feat: add liftEquiv for groups, rings, algebras, and adjoin roots | --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 102/18 | Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/GroupTheory/GroupExtension/Basic.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean | 11 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 55 minutes ago | unknown | unknown |
| 36101 | wwylele | feat(RingTheory): lemmas about power of maximal ideal | This adds `IsMaximal.mul_mem_pow` that generalizes `Ideal.IsPrime.mul_mem_pow ` from (IsPrime + IsDedekindDomain) to IsMaximal (Except for the trivial bot case, which is why the prime version is kept) Also added a related `Quotient.isUnit_mk_pow_{of/iff}_notMem` for determining units in a quotient by power --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 59/6 | Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean | 4 | 1 | ['github-actions'] | nobody | 37 minutes ago | unknown | unknown |
| 35951 | parabamoghv | feat(CategoryTheory/Monoidal): evaluation coevaluation isomorphisms | This PR adds four features to rigid categories: 1. `coevaluation_evaluation` and `evaluation_coevaluation` as isomorphism equalities: Using `IsIso` instances for the `evaluation` and `coevaluation` morphisms, we promote the morphism equalities to isomorphism equalities. 2. `ExactPairing Y X` from `ExactPairing X Y`: Using an exact pairing and `IsIso` instances for both `evaluation` and `coevaluation`, we swap the exact pairing by inverting the evaluation and coevaluation morphisms. Any suggestions for the definition name are welcome. Right now it is `ExactPairing.Symm`. The second choice was `ExactPairing.Swap`. 3. `HasLeftDual X` from `HasRightDual X`: Using a `HasRightDual X` instance and relevant `IsIso` instances, we construct a left dual. Similar construction for the other way. 4. `LeftDual` isomorphic to `RightDual`: Using relevant `IsIso` instances, we provide the isomorphism from the left dual of an object to the right dual. This can be achieved in two ways: either by using `leftDualIso` or using `rightDualIso`. We will prove in a subsequent PR that both these isomorphisms are equal. Motivation: This is part of an effort to formalize CategoricalGroups, which can be defined as right rigid groupoids. The approach is motivated by the discussion in [#34830](https://github.com/leanprover-community/mathlib4/pull/34830). Any comments or suggestions are welcome, especially about the naming. --- [](https://gitpod.io/from-referrer/) | t-category-theory new-contributor | 65/0 | Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean | 1 | 2 | ['github-actions'] | nobody | 35 minutes ago | 20 minutes ago | 1 day |
| 36102 | Thmoas-Guan | feat(RingTheory): flat extension of local ring | This PR mainly formalize the theorem [[Stacks 03C3](https://stacks.math.columbia.edu/tag/03C3)] for flat extension of local ring. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 380/0 | Mathlib.lean,Mathlib/RingTheory/Flat/Extension.lean | 2 | 2 | ['github-actions', 'mathlib-bors'] | nobody | 20 minutes ago | unknown | unknown |
| 35852 | Thmoas-Guan | feat(RingTheory): existence of coefficient ring | In this PR, we prove the existence of coefficient ring by the following two cases: 1: for residue field with char zero, there is a section of the residue field 2: for positive char, there exists a Cohen ring --- - [ ] depends on: #28683 - [ ] depends on: #35675 - [ ] depends on: #36102 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import | 2051/81 | Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/AdicCompletion/LocalRing.lean,Mathlib/RingTheory/AdicCompletion/Noetherian.lean,Mathlib/RingTheory/CohenStructureTheorem.lean,Mathlib/RingTheory/Flat/Extension.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean,Mathlib/RingTheory/RingHom/Smooth.lean,Mathlib/RingTheory/Smooth/Quotient.lean | 16 | 3 | ['github-actions', 'mathlib-bors', 'mathlib-dependent-issues'] | nobody | 19 minutes ago | unknown | unknown |
| 35627 | SnirBroshi | feat(Combinatorics/SimpleGraph/Finite): min/max degrees of top/bot | --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 28/1 | Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean | 2 | 6 | ['SnirBroshi', 'github-actions', 'vlad902'] | nobody | 13 minutes ago | 8 minutes ago | 10 days |
| 35651 | sun123zxy | feat(Mathlib/RingTheory/Ideal/Cotangent): `Submodule.map` definition of cotangent spaces | This PR adds an alternative definition of the cotangent space as an image under the R-module quotient map. --- Split from PR #33247 [](https://gitpod.io/from-referrer/) | t-ring-theory new-contributor awaiting-author | 47/20 | Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean | 2 | 9 | ['erdOne', 'github-actions', 'mathlib-merge-conflicts', 'sun123zxy'] | chrisflav | 10 minutes ago | 3 days ago | 6 days |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 13847 | alreadydone | feat(EllipticCurve): the universal elliptic curve | + Define the universal Weierstrass curve (`Universal.curve`) over the polynomial ring `ℤ[A₁,A₂,A₃,A₄,A₆]`, and the universal pointed elliptic curve (`Universal.pointedCurve`) over the field of fractions (`Universal.Field`) of the universal ring `ℤ[A₁,A₂,A₃,A₄,A₆,X,Y]/⟨P⟩ = Universal.Poly/⟨P⟩` (`Universal.Ring`, where `P` is the Weierstrass polynomial) with distinguished point `(X,Y)`. + Given a Weierstrass curve `W` over a commutative ring `R`, we define the specialization homomorphism `W.specialize : ℤ[A₁,A₂,A₃,A₄,A₆] →+* R`. If `(x,y)` is a point on the affine plane, we define `W.polyEval x y : Universal.Poly →+* R`, which factors through `W.ringEval x y : Universal.Ring →+* R` if `(x,y)` is on `W`. + Introduce the cusp curve `Y² = X³`, on which lies the rational point `(1,1)`, with the nice property that `ψₙ(1,1) = n`, making it easy to prove nonvanishing of the universal `ψₙ` when `n ≠ 0` by specializing to the cusp curve, which shows that `(X,Y)` is a point of infinite order on the universal pointed elliptic curve. --- - [x] depends on: #13845 - [x] depends on: #12883 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra t-algebraic-geometry | 543/208 | Mathlib.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Universal.lean | 6 | 4 | ['Multramate', 'alreadydone', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 14167 | alreadydone | feat: Group scheme structure on Weierstrass curve | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebraic-geometry workshop-AIM-AG-2024 | 727/41 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Scheme.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Universal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/GroupTheory/MonoidLocalization.lean,Mathlib/LinearAlgebra/Basis.lean,Mathlib/LinearAlgebra/FreeModule/Basic.lean,Mathlib/RingTheory/AlgebraTower.lean,Mathlib/RingTheory/MvPolynomial/Basic.lean | 12 | 3 | ['Multramate', 'github-actions', 'jcommelin'] | nobody | 1 year ago | unknown | unknown |
| 13297 | urkud | feat(Semicontinuous): add `comp` lemma | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology t-order | 31/13 | Mathlib/Topology/Semicontinuous.lean | 1 | 3 | ['sgouezel', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 12608 | eric-wieser | feat: allow `nsmul` / `zsmul` to be omitted again, with a warning | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra t-meta | 118/2 | Mathlib.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Tactic.lean,Mathlib/Tactic/DefaultFieldLinter.lean,scripts/noshake.json,test/default_field_linter.lean | 6 | 12 | ['YaelDillies', 'eric-wieser', 'fpvandoorn', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 12679 | MichaelStollBayreuth | perf(NumberTheory/RamificationInertia): speed up slow file | A repetition of the earlier experiment at [#12412](https://github.com/leanprover-community/mathlib4/pull/12412) with Lean 4.8.0-rc1. This time, I tried not to introduce local instances if possible, but instead to tweak instance priorities. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 57/14 | Mathlib/NumberTheory/RamificationInertia.lean | 1 | 3 | ['MichaelStollBayreuth', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 13057 | alreadydone | feat(NumberTheory): characterize elliptic divisibility sequences | Main results: + Every `normEDS` is an elliptic divisibility sequence (EDS). The key proof is `rel₄_of_anti_oddRec_evenRec`, based on my original argument first published on [MathSE](https://math.stackexchange.com/a/4903422/12932) + Conversely, every EDS is equal to some `normEDS` (assuming that the first two terms are not zero divisors) --- - [ ] depends on: #13155 - [x] depends on: #13153 - [x] depends on: #10843 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra t-number-theory blocked-by-other-PR | 1032/55 | Mathlib/Algebra/Ring/NegOnePow.lean,Mathlib/Data/Int/Defs.lean,Mathlib/Data/Int/Parity.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/NumberTheory/EllipticDivisibilitySequence.lean | 5 | 6 | ['Multramate', 'alreadydone', 'kbuzzard', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 12192 | Ruben-VandeVelde | feat: generalize isLittleO_const_id_atTop/atBot | From PNT+. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 10/4 | Mathlib/Analysis/Asymptotics/Asymptotics.lean | 1 | 6 | ['Ruben-VandeVelde', 'llllvvuu', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 10024 | ADedecker | feat: rename `connectedComponentOfOne` to `identityComponent`, prove that it is normal and open | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology awaiting-CI | 58/24 | Mathlib/FieldTheory/AbsoluteGaloisGroup.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean,Mathlib/Topology/Algebra/OpenSubgroup.lean,Mathlib/Topology/Connected/Basic.lean | 5 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 10521 | eric-wieser | chore: generalize `IsBoundedLinearMap` to modules | Most of the lemmas don't actually need the normed on the scalars at all. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 58/42 | Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean | 1 | 3 | ['github-actions', 'j-loreaux', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 10594 | lecopivo | feat: `fun_trans` function transformation tactic e.g. for computing derivatives | feat: `fun_trans` function transformation tactic e.g. for computing derivatives Function transformation tactic/simproc. For example it can be used for computing derivatives. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 1819/56 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/Decl.lean,Mathlib/Tactic/FunProp/Elab.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/MorExt.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/FunTrans/Attr.lean,Mathlib/Tactic/FunTrans/Core.lean,Mathlib/Tactic/FunTrans/Decl.lean,Mathlib/Tactic/FunTrans/Elab.lean,Mathlib/Tactic/FunTrans/Theorems.lean,Mathlib/Tactic/FunTrans/Types.lean,test/fun_prop2.lean,test/fun_prop_dev.lean,test/fun_trans_dev.lean | 17 | 11 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 10721 | urkud | feat(Order/FunLike): define `PointwiseLE` | - introduce a mixin class `DFunLike.PointwiseLE`, use it to define `DFunLike.instPartialOrder`; - add a generic `DFunLike.orderEmbeddingCoe` - add `DFunLike.PointwiseLE` instances here and there. With this refactor and #13022, I'm going to generalize lemmas like `MeasureTheory.ae_mono` to `OuterMeasureClass`. --- - [x] depends on: #12983 [](https://gitpod.io/from-referrer/) | merge-conflict t-order t-logic | 123/50 | Mathlib.lean,Mathlib/Algebra/Order/Hom/Ring.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/FunLike/Basic.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/GroupTheory/Congruence.lean,Mathlib/Order/FunLike.lean,Mathlib/Order/Heyting/Hom.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Hom/Bounded.lean,Mathlib/Order/Hom/CompleteLattice.lean,Mathlib/Topology/Order/Hom/Basic.lean | 13 | 48 | ['YaelDillies', 'dupuisf', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 10842 | mcdoll | chore: simplify proofs using new positivity extensions and tests | --- - [x] depends on: #10661 - [ ] depends on: #10796 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR | 98/50 | Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/SpecialFunctions/Gaussian.lean,Mathlib/MeasureTheory/Covering/Differentiation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean,Mathlib/MeasureTheory/Function/ContinuousMapDense.lean,Mathlib/MeasureTheory/Integral/Bochner.lean,Mathlib/MeasureTheory/Measure/Tilted.lean,Mathlib/Probability/Martingale/Upcrossing.lean,Mathlib/Probability/Moments.lean,Mathlib/Probability/Variance.lean,Mathlib/Tactic/Positivity/Core.lean,test/positivity.lean | 14 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 11100 | eric-wieser | feat(CategoryTheory/Limits): add `Functor.mapBinaryBiconeInv` | --- - [ ] depends on: #11130 [](https://gitpod.io/from-referrer/) It's tempting to try to prove something like ```lean theorem Functor.mapBinaryBiconeInv_toCone [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (e : D ⥤ C) [IsEquivalence e] {X Y : D} (b : BinaryBicone (e.obj X) (e.obj Y)) : (e.mapBinaryBiconeInv b).toCone = (e.mapConeInv <| (Cones.postcompose (pairComp X Y e).symm.hom).obj b.toCone) := by simp sorry theorem Functor.mapBinaryBiconeInv_toCocone [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (e : D ⥤ C) [IsEquivalence e] {X Y : D} (b : BinaryBicone (e.obj X) (e.obj Y)) : (e.mapBinaryBiconeInv b).toCocone = (e.mapCoconeInv <| (Cocones.precompose (pairComp X Y e).hom).obj b.toCocone) := by sorry ``` but maybe equality is evil here | merge-conflict t-category-theory awaiting-CI | 52/0 | Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Equivalence.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean | 3 | 6 | ['TwoFX', 'eric-wieser', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8503 | thorimur | feat: meta utils for `refine?` | This PR introduces some metaprogramming infrastructure and utilities that are necessary for `refine?` (#8364). * `elabTermWithHoles'` (and `withCollectingNewGoalsFrom'`): a more configurable version of `elabTermWithHoles`, which allows: preserving the initial mvar type; *not* tagging untagged goals; and postponing mvars. * Some `Syntax` and `TSyntax` functionality, including: * `TSyntax.map`(`M`), for acting on `TSyntax` with functions `f : Syntax -> (m) Syntax` * Range operations: `includes` and `isEqByRange` * `setTrailingInfoBy?` and `unsetOriginalTrailing`, which is like `unsetTrailing`, but behaves as expected. * `Term.withoutModifyingState`, which does not allow unknown mvarIds to escape via the infotree * `hasNewErrors`, which runs a monad computation and returns the value along with `true` or `false` depending on whether new error messages have been logged * the option `pp.anonymousMVarSuffixes`, which can be set to `false` to replace all numeric suffixes of anonymous mvars with `✝`, which is useful in tandem with `#guard_msgs` for tests (but is essentially a workaround—although it can make some tactic states more legible). --- I'm open to suggestions on the location and name of the option/delaborator used for trimming the numeric suffixes of anonymous mvar names (which is used in the tests)—including whether or not it should exist in the first place, as it's essentially just a workaround. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 312/5 | Mathlib.lean,Mathlib/Lean/CoreM.lean,Mathlib/Lean/Elab/Tactic/ElabTerm.lean,Mathlib/Lean/Elab/Term.lean,Mathlib/Util/Delaborators.lean,Mathlib/Util/Syntax.lean | 6 | 2 | ['kmill', 'thorimur'] | kmill | 1 year ago | unknown | unknown |
| 8519 | eric-wieser | refactor(LinearAlgebra/TensorProduct): golf using `liftAddHom` | This new `TensorProduct.liftAddHom` doesn't require bilinearity, only that scalar multiplication can be moved between the arguments. While in theory we only need the `AddMonoidHom` version as it offers exactly the same generality, we first provide an unbundled `liftFun` as this seems to give a sizeable performance boost if used in downstream `lift` variants. --- - [x] depends on: #8571 - [x] depends on: #8584 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 53/50 | Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean,Mathlib/LinearAlgebra/TensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean | 3 | 28 | ['bustercopley', 'eric-wieser', 'jcommelin', 'jjaassoonn', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib-bors'] | nobody | 1 year ago | unknown | unknown |
| 8616 | eric-wieser | feat(Algebra/FreeAlgebra): add right action and `IsCentralScalar` | --- - [ ] depends on: #8652 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-CI | 30/8 | Mathlib/Algebra/FreeAlgebra.lean | 1 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8658 | eric-wieser | feat: support right actions for `Con` | This adds a new `Con.CompatibleSMul` typeclass that captures exactly the condition when `smul` descends to the quotient. I was not quite able to merge this with `MulAction.QuotientAction`: * The imports are such that the congruence relation `QuotientGroup.con` is not yet available in that file * `QuotientGroup.con` requires the subgroup to be normal, while `MulAction.QuotientAction` does not --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 80/18 | Mathlib/GroupTheory/Congruence.lean,Mathlib/RingTheory/Congruence.lean | 2 | 6 | ['YaelDillies', 'eric-wieser'] | nobody | 1 year ago | unknown | unknown |
| 8788 | FMLJohn | feat(Algebra/Module/GradeZeroModule): if `A` is a graded semiring and `M` is a graded `A`-module, then each grade of `M` is a module over the 0-th grade of `A`. | --- - [ ] depends on: #8187 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 237/4 | Mathlib.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/Module/GradeZeroModule.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/Noetherian.lean | 6 | 4 | ['FMLJohn', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8906 | jjaassoonn | feat: add some missing lemmas about linear algebra | --- - [ ] depends on: #8905 [lifting injective modules to higher universe] [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 45/1 | Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Module/Injective.lean,Mathlib/LinearAlgebra/Basic.lean,Mathlib/LinearAlgebra/BilinearMap.lean | 4 | 21 | ['AntoineChambert-Loir', 'alreadydone', 'jjaassoonn', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8961 | eric-wieser | refactor: use the coinduced topology on ULift | --- - [x] depends on: #8958 [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict awaiting-author awaiting-CI | 46/14 | Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Topology/Bornology/Constructions.lean,Mathlib/Topology/Constructions.lean | 3 | 6 | ['eric-wieser', 'github-actions', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 9146 | laughinggas | feat(Data/ZMod/Defs): Topological structure on `ZMod` | Added a discrete topology structure to `ZMod n` for all `n` --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-topology | 55/3 | Mathlib.lean,Mathlib/Topology/Algebra/Constructions.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Instances/ZMod.lean,Mathlib/Topology/Maps.lean | 5 | 61 | ['YaelDillies', 'eric-wieser', 'github-actions', 'jcommelin', 'laughinggas', 'mo271', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 9229 | eric-wieser | refactor(Algebra/GradedMonoid): Use `HMul` to define `GMul` | This make the notation much nicer, but I'm pretty sure this is a bad idea for performance / ambiguity reasons. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 114/125 | Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/GradedMulAction.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean,Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean | 11 | 6 | ['eric-wieser', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 9354 | chenyili0818 | feat: monotonicity of gradient on convex real-valued functions | This file is based on Mathlib.Analysis.Calculus.Gradient.Basic, and describes the calculation properties co-authored-by: Ziyu Wang [tropicalfish910@gmail.com](mailto:tropicalfish910@gmail.com) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 540/0 | Mathlib.lean,Mathlib/Analysis/Convex/ConvexFunction.lean | 2 | 15 | ['github-actions', 'winstonyin'] | nobody | 1 year ago | unknown | unknown |
| 9356 | alexjbest | feat: assumption? | A little helper for replacing `assumption`s with `exact` statements quickly --- If this is approved I will add tests This begs the question of whether it might simply be better to add some sort of code action for "replace with trythis output" [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 24/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/TryAssumption.lean | 4 | 5 | ['alexjbest', 'j-loreaux', 'jcommelin'] | nobody | 1 year ago | unknown | unknown |
| 9469 | dupuisf | feat: maximum modulus principle for functions vanishing at infinity | This PR adds versions of the maximum modulus principle for functions vanishing at infinity that parallel those we already had for functions over a bounded set. These will have applications in e.g. norm interpolation. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-analysis | 71/0 | Mathlib/Analysis/Complex/AbsMax.lean | 1 | 8 | ['dupuisf', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 9487 | eric-wieser | feat: the exponential of dual numbers over non-commutative rings | This is a work in progress, as I don't know my way around the measure theory library. --- - [x] depends on: #9489 - [x] depends on: #9486 - [x] depends on: #10427 - [ ] depends on: #10452 [](https://gitpod.io/from-referrer/) | WIP t-algebra t-measure-probability merge-conflict t-analysis | 97/0 | Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean | 1 | 7 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 9510 | eric-wieser | feat(Analysis/Calculus/DualNumber): Extending differentiable functions to dual numbers | This shows that this operation preserves multiplication and composition --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-analysis awaiting-CI | 119/0 | Mathlib/Analysis/Calculus/DualNumber.lean | 1 | 4 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 9570 | eric-wieser | feat(Algebra/Star): Non-commutative generalization of `StarModule` | [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Star.20modules.20over.20non-commutative.20scalars/near/383664005). Until we address #7152, we have to have both `StarModule` and `StarModule'`. To prove this generalization is useful, this shows that with it as an assumption, `TrivSqZeroExt` is a `StarRing`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra awaiting-CI | 66/6 | Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/Pi.lean,Mathlib/Algebra/Star/Prod.lean,Mathlib/Algebra/TrivSqZeroExt.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 9642 | eric-wieser | refactor(Analysis/Normed/{Group/Field}/Basic): Let `extends` generate the repeated fields | New-style structure shenanigans mean that instance constructors randomly complain about a missing field that can be found with `__ : MetricSpace _ := infer_instance`. --- [](https://gitpod.io/from-referrer/) I will write a longer PR description for this once CI is happy | WIP merge-conflict awaiting-author help-wanted t-analysis | 122/202 | Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Matrix.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Group/Completion.lean,Mathlib/Analysis/Normed/Order/Basic.lean,Mathlib/Analysis/NormedSpace/ProdLp.lean,Mathlib/Analysis/NormedSpace/Star/Matrix.lean,Mathlib/Analysis/NormedSpace/Unitization.lean,Mathlib/Analysis/Quaternion.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/InformationTheory/Hamming.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean,Mathlib/NumberTheory/Padics/PadicIntegers.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean | 17 | 11 | ['eric-wieser', 'leanprover-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 6580 | adomani | chore: `move_add`-driven replacements | This PR accompanies #6576 and uses `move_add/mul` to simplify/streamline a selection of proofs. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 12/13 | Counterexamples/Monic_nonRegular.lean,Mathlib/Algebra/Associated.lean,Mathlib/Data/Polynomial/RingDivision.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6630 | MohanadAhmed | feat: Reduced Spectral Theorem | For A hermitian matrix $A : n \times n$ with rank $A.rank \leq n$, we can eliminate the zero eigenvalues and their corresponding eigenvectors from the (alternate) spectral theorem. As such the matrix $A$ can be written as: $$A = V₁ D V₁ᴴ$$ where - $V₁$ : $n \times r$ is the matrix of eigenvector with non-zero associated eigenvalues. - $D$ is $r \times r$ is the diagonal matrix containing only non-zero eigenvalues on its main diagonal. with $r = A.rank$ being the rank of the matrix Towards that goal we make several equivalence definitions: - `{i // hA.eigenvalues i ≠ 0} ≃ Fin (A.rank)` the set of non-zero eigenvalues can be indexed by the numbers from 0 to (r - 1). - `{i // ¬ hA.eigenvalues i ≠ 0} ≃ Fin (n - A.rank)` the set of non-zero eigenvalues can be indexed by the numbers from 0 to (n - r - 1). - `{i // hA.eigenvalues i ≠ 0} ⊕ {i // ¬hA.eigenvalues i ≠ 0} ≃ n`: the index set of the matrix (together with the associated eigenvector matrix and eigenvalues matrix ) can be partitioned into two complement groups the ones corresponding to non-zero eigenvalues and the ones corresponding to zero eigenvalues. - We can then put the previous definitions together to obtain a: `Fin (A.rank) ⊕ Fin (Fintype.card n - A.rank) ≃ n` --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 31/0 | Mathlib/LinearAlgebra/Matrix/Spectrum.lean | 1 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6777 | adomani | chore(Co*variantClass): replace eta-expanded (· * ·), (· + ·), (· ≤ ·), (· < ·) | Replace `CovariantClass X X (· * ·) (· ≤ ·)` with -> `CovariantClass X X HMul.hMul LE.le` and similarly for `HAdd`, `LT`, `Contravariant`.
This PR is inspired by [Issue #6646](https://github.com/leanprover-community/mathlib4/issues/6646) and, more specifically, [this comment](https://github.com/leanprover-community/mathlib4/issues/6646#issuecomment-1692792066).
Note that https://github.com/leanprover/lean4/pull/2267 would make this unnecessary
---
```bash
# First sed command:
# the first captured pattern is `Co*variantClass |
merge-conflict | 703/678 | Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean,Mathlib/Algebra/BigOperators/Basic.lean,Mathlib/Algebra/Bounds.lean,Mathlib/Algebra/CovariantAndContravariant.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/Group/UniqueProds.lean,Mathlib/Algebra/GroupPower/Order.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/Archimedean.lean,Mathlib/Algebra/Order/Group/Abs.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/DenselyOrdered.lean,Mathlib/Algebra/Order/Group/MinMax.lean,Mathlib/Algebra/Order/Group/OrderIso.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/Algebra/Order/LatticeGroup.lean,Mathlib/Algebra/Order/Module.lean,Mathlib/Algebra/Order/Monoid/Basic.lean,Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/Lemmas.lean,Mathlib/Algebra/Order/Monoid/MinMax.lean,Mathlib/Algebra/Order/Monoid/NatCast.lean,Mathlib/Algebra/Order/Monoid/OrderDual.lean,Mathlib/Algebra/Order/Monoid/Prod.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/Algebra/Order/Monoid/WithZero/Basic.lean,Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Pointwise.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Lemmas.lean,Mathlib/Algebra/Order/Sub/Basic.lean,Mathlib/Algebra/Order/Sub/Canonical.lean,Mathlib/Algebra/Order/Sub/Defs.lean,Mathlib/Algebra/Order/WithZero.lean,Mathlib/Algebra/Parity.lean,Mathlib/Algebra/Star/Order.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/Normed/Order/Lattice.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/List/BigOperators/Basic.lean,Mathlib/Data/List/BigOperators/Lemmas.lean,Mathlib/Data/Multiset/Basic.lean,Mathlib/Data/Nat/Cast/Order.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/Real/ENNReal.lean,Mathlib/Data/Real/NNReal.lean,Mathlib/Data/Set/Semiring.lean,Mathlib/Data/Sign.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/VectorMeasure.lean,Mathlib/Order/ConditionallyCompleteLattice/Group.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Probability/Martingale/Basic.lean,Mathlib/Probability/Process/Stopping.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Game/Basic.lean,Mathlib/SetTheory/Game/PGame.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/NaturalOps.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Topology/ContinuousFunction/Algebra.lean,lean-toolchain,test/Recall.lean,test/propose.lean | 81 | 36 | ['adomani', 'alreadydone', 'digama0', 'eric-wieser', 'ericrbg', 'jcommelin', 'leanprover-bot', 'sgouezel'] | nobody | 1 year ago | unknown | unknown |
| 6791 | eric-wieser | refactor: Use flat structures for morphisms | This restores the symmetry we had in Lean3, where we had `MonoidHom.mk f one mul` not `MonoidHom.mk (OneHom.mk f one) mul`, and `f.toFun` wasn't notation for `f.toMulHom.toFun`. The nesting provided by the previous inheritance is useless to us in the face of `MonoidHomClass.toMonoidHom`, which completely eta-expands the structure anyway. We call the class `FunLikeFlatHack._` because this means the field is called `to_` which uses up less space in the goal view than any alternative. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author help-wanted awaiting-CI | 174/201 | Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Category/GroupCat/ZModuleEquivalence.lean,Mathlib/Algebra/Category/GroupWithZeroCat.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/Category/MonCat/Basic.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/UniqueProds.lean,Mathlib/Algebra/Hom/Equiv/Basic.lean,Mathlib/Algebra/Hom/Group/Defs.lean,Mathlib/Algebra/Hom/GroupAction.lean,Mathlib/Algebra/Hom/NonUnitalAlg.lean,Mathlib/Algebra/Hom/Ring/Defs.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Module/Equiv.lean,Mathlib/Algebra/Module/LinearMap.lean,Mathlib/Algebra/Order/Hom/Ring.lean,Mathlib/Algebra/Order/Interval.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean,Mathlib/Data/FunLike/Basic.lean,Mathlib/Data/Rat/Cast/CharZero.lean,Mathlib/Data/Real/EReal.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/GroupTheory/FreeAbelianGroup.lean,Mathlib/GroupTheory/MonoidLocalization.lean,Mathlib/LinearAlgebra/Quotient.lean,Mathlib/LinearAlgebra/TensorProduct.lean,Mathlib/RingTheory/RingInvo.lean,Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/MetricSpace/Dilation.lean | 32 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6930 | kmill | feat: `resynth_instances` tactic for resynthesizing instances in the goal or local context | This tactic can be useful for debugging non-canonical instances or for fixing up goals and hypotheses after using the `classical` tactic. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 327/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ResynthInstances.lean,test/ResynthInstances.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6931 | urkud | refactor(Analysis/Normed*): use `RingHomIsometric` for `*.norm_cast` | --- I don't understand why linter fails. [](https://gitpod.io/from-referrer/) | merge-conflict help-wanted t-analysis | 78/68 | Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/NormedSpace/Basic.lean,Mathlib/Analysis/NormedSpace/Exponential.lean,Mathlib/Analysis/NormedSpace/Spectrum.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/NumberTheory/NumberField/Embeddings.lean | 8 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 7227 | kmill | feat: flexible binders and integration into notation3 | Introduces `flexibleBinders`, which is an extensible system for binder notations that allow destructuring, bounded domains, and other niceties. Integrates this into `notation3`, and makes `Finset.sum`/`Finset.prod` use it. --- - [ ] depends on: #6833 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 1215/131 | Mathlib.lean,Mathlib/Algebra/BigOperators/Basic.lean,Mathlib/Algebra/BigOperators/Intervals.lean,Mathlib/Algebra/BigOperators/NatAntidiagonal.lean,Mathlib/Mathport/Notation.lean,Mathlib/Util/FlexibleBinders.lean,Mathlib/Util/FlexibleBindersFinset.lean,Mathlib/Util/SyntaxFun.lean,test/FlexibleBinders.lean,test/notation3.lean | 10 | 3 | ['eric-wieser', 'kmill', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 7351 | shuxuezhuyi | feat(Topology/Algebra/Order): extend function on `Ioo` to `Icc` | Extend a strictly monotone function defined on an open interval. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-order | 59/0 | Mathlib.lean,Mathlib/Data/Set/Function.lean,Mathlib/Topology/Algebra/Order/IccExtendFromIoo.lean | 3 | 7 | ['j-loreaux', 'shuxuezhuyi'] | nobody | 1 year ago | unknown | unknown |
| 7467 | ADedecker | feat: spectrum of X →ᵇ ℂ is StoneCech X | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 121/23 | Mathlib/Analysis/NormedSpace/Star/BoundedContinuousFunction.lean,Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean,Mathlib/Topology/ContinuousFunction/Compact.lean | 4 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 7564 | shuxuezhuyi | feat(Topology/Algebra/Order): extend strictly monotone function on `Ioo` to homeomorphism on `Icc` | A strictly monotone function between open intervals can be extended to a homeomorphism between the closed intervals. --- - [ ] depends on: #7351 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology blocked-by-other-PR | 162/0 | Mathlib.lean,Mathlib/Topology/Algebra/Order/IccExtendFromIoo.lean | 2 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 7601 | digama0 | feat: ring hom support in `ring` | As [requested on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/aroots/near/395750055). Adds support for distributing ring morphisms in `ring`: ```lean example (p : ℤ[X]) (r : ℤ) : C (2 * r) * p = C r * p + C r * p := by ring ``` --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra t-meta | 257/48 | Mathlib/Tactic/Ring/Basic.lean,test/linear_combination.lean,test/ring.lean | 3 | 1 | ['eric-wieser'] | nobody | 1 year ago | unknown | unknown |
| 7615 | eric-wieser | chore(LinearAlgebra/Basic): generalize compatibleMaps to semilinear maps | Spotted while reviewing #7611 --- - [x] depends on: #7611 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra easy awaiting-CI | 9/33 | Mathlib/LinearAlgebra/Basic.lean | 1 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 7713 | RemyDegenne | feat: add_left/right_inj for measures | `μ + ν₁ = μ + ν₂ ↔ ν₁ = ν₂`, and similarly on the right. This is not true in general for measures, but is true when `μ` is mutually singular with the two other measures or when `μ` is finite. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-measure-probability | 53/1 | Mathlib/MeasureTheory/Measure/MutuallySingular.lean,lean-toolchain | 2 | 6 | ['RemyDegenne', 'digama0', 'eric-wieser', 'fpvandoorn'] | nobody | 1 year ago | unknown | unknown |
| 7835 | shuxuezhuyi | feat(LinearAlgebra/Matrix): `lift` for projective special linear group | We provide converters to help with the use of "quotient.liftOn" on projective special linear groups. --- - [x] depends on: #7826 - [x] depends on: #7791 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 52/0 | Mathlib/LinearAlgebra/Matrix/ProjectiveSpecialLinearGroup.lean | 1 | 3 | ['jcommelin', 'leanprover-community-mathlib4-bot', 'shuxuezhuyi'] | jcommelin | 1 year ago | unknown | unknown |
| 7875 | astrainfinita | chore: make `SMulCommClass A A B` and `SMulCommClass A B B` higher priority | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra | 54/48 | Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Subgroup/Actions.lean,Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/Ring/CentroidHom.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Analysis/Complex/UnitDisc/Basic.lean,Mathlib/Analysis/NormedSpace/lpSpace.lean,Mathlib/Data/Matrix/Basic.lean,Mathlib/GroupTheory/GroupAction/Prod.lean,Mathlib/GroupTheory/GroupAction/Ring.lean,Mathlib/GroupTheory/GroupAction/SubMulAction.lean,Mathlib/GroupTheory/MonoidLocalization.lean,Mathlib/GroupTheory/Submonoid/Center.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean,Mathlib/RingTheory/Ideal/Quotient.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean,Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean,Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean | 27 | 15 | ['Parcly-Taxel', 'astrainfinita', 'jcommelin', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 7909 | mcdoll | fix(Tactic/Continuity): remove npowRec and add new tag for Continuous.pow | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology t-meta | 14/9 | Mathlib/Tactic/Continuity.lean,Mathlib/Topology/Category/TopCat/Limits/Basic.lean,test/Continuity.lean | 3 | 2 | ['eric-wieser'] | nobody | 1 year ago | unknown | unknown |
| 7932 | eric-wieser | refactor(Algebra/TrivSqZeroExt): replace with a structure | This is dogfooding my claim that "one-field structures are the lesser evil in Lean 4". This runs into the `simp [(stupid_parens)]` bug; or rather, a particular nasty instance of it where the offending simp call is inside `@[simps]`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-CI | 155/73 | Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/TrivSqZeroExt.lean,Mathlib/Logic/Equiv/TransferInstance.lean,Mathlib/Topology/Instances/TrivSqZeroExt.lean | 4 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 7962 | eric-wieser | feat: `DualNumber (Quaternion R)` as a `CliffordAlgebra` | This provides a clifford algebra isomorphic to the dual quaternions --- - [x] depends on: #7934 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 307/7 | Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/QuaternionBasis.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean | 3 | 16 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8364 | thorimur | feat: `refine?` | This PR adds `refine? e`, which suggests replacing unsynthesized `_`'s in `e` with `?_` in order to make `refine e'` work: ```lean example : Nat → Nat := by refine? fun (_ : _) => _ -- Try this: refine fun (_ : _) => ?_ ``` Note that this only suggests replacements for `_`'s present in the syntax; to create goals for implicit or instance arguments, the user is expected to use `refine'`. --- I'm especially open to suggestions on the filename (currently `RefineFix`). I'm also curious if this behaves as expected! Feel free to try it out "in real life" and comment here on edge cases. - [ ] depends on: #8503 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-meta | 684/5 | Mathlib.lean,Mathlib/Lean/CoreM.lean,Mathlib/Lean/Elab/Tactic/ElabTerm.lean,Mathlib/Lean/Elab/Term.lean,Mathlib/Tactic.lean,Mathlib/Tactic/RefineFix.lean,Mathlib/Util/Delaborators.lean,Mathlib/Util/Syntax.lean,test/RefineFix.lean | 9 | 5 | ['j-loreaux', 'leanprover-community-mathlib4-bot', 'thorimur'] | nobody | 1 year ago | unknown | unknown |
| 4871 | j-loreaux | feat: define the additive submonoid of positive elements in a star ordered ring | This file defines the `AddSubmonoid` of nonegative elements `StarOrderedRing.positive R` in a star ordered ring `R` with carrier `{ x : R | 0 ≤ x }` (in fact, the definition only requires `OrderedAddCommMonoid R` to allow for other use cases, but it is primarily intended for `StarOrderedRing R`). Equivalently, this is the `AddSubmonoid` generated by the elements of the form `star s * s`. Even though this technically corresponds to the nonnegative elements, the "positive" terminology is standard throughout the literature (at least in C⋆-algebra theory and operator theory), so we choose to prefer that. The advantage of using this over other definitions of positivity is that it allows us to unify several different concepts under a single umbrella. For example, one might be tempted to consider the collection of bounded linear operators on an Hilbert space and define positivity as `∀ x, 0 ≤ ⟪T x, x⟫`, but this doesn't generalize nicely to C⋆-algebras. Alternatively, one could define positivity as those self-adjoint elements with nonnegative spectrum, but this requires the algebra to be unital. Our definition herein conveniently sidesteps these issues. --- Note: I declared the `AddMonoidWithOne` and `AddGroupWithOne` instances for `selfAdjoint R` separately because it made the proof of the latter easier. - [x] depends on: #6229 - [x] depends on: #10209 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-CI | 216/12 | Mathlib.lean,Mathlib/Algebra/Order/Ring/CharZero.lean,Mathlib/Algebra/Star/Order.lean,Mathlib/Algebra/Star/Positive.lean,Mathlib/Algebra/Star/SelfAdjoint.lean,Mathlib/GroupTheory/Submonoid/Operations.lean | 6 | 28 | ['eric-wieser', 'j-loreaux', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 5133 | kmill | feat: IntermediateField adjoin syntax for sets of elements | Adds support for both `F⟮S⟯` and `F⟮α⟯`. The term `x` in `F⟮x⟯` is elaborated, and if it has type `Set _` the first interpretation is used, and otherwise the second is. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 110/55 | Mathlib/FieldTheory/Adjoin.lean | 1 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 5912 | ADedecker | feat(Analysis.Distribution.ContDiffMapSupportedIn): space of smooth maps with support in a fixed compact | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 513/13 | Mathlib.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Data/FunLike/Basic.lean,Mathlib/Data/Set/Function.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean | 8 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 6002 | slerpyyy | feat(Analysis.SpecialFunctions.Gaussian): add `integrable_fun_mul_exp_neg_mul_sq` | If `f : ℝ → ℝ` is bounded by a polynomial, `fun x : ℝ => f x * exp (-b * x ^ 2)` is integrable. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 26/0 | Mathlib/Analysis/SpecialFunctions/Gaussian.lean | 1 | 3 | ['ocfnash', 'slerpyyy', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 6079 | eric-wieser | fix: deduplicate variables | `variables {A} [Ring A]` meant "update the binder of `A`" in Lean 3, but now means "create a duplicate variable called `A`" (or at least, does so when inspecting the state within the variables line). This removes a number of porting notes that were stumbling over this behavior. [Related Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/unexpected.20.60variable.60.20behaviour.3F/near/360154080) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-CI | 1012/443 | Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/CharP/Basic.lean,Mathlib/Algebra/CovariantAndContravariant.lean,Mathlib/Algebra/DirectLimit.lean,Mathlib/Algebra/DirectSum/Finsupp.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/Group/Pi.lean,Mathlib/Algebra/GroupPower/Basic.lean,Mathlib/Algebra/GroupPower/Lemmas.lean,Mathlib/Algebra/Hom/Aut.lean,Mathlib/Algebra/Hom/Equiv/Basic.lean,Mathlib/Algebra/Hom/Group.lean,Mathlib/Algebra/Homology/HomologicalComplex.lean,Mathlib/Algebra/Homology/HomotopyCategory.lean,Mathlib/Algebra/Homology/ImageToKernel.lean,Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean,Mathlib/Algebra/IndicatorFunction.lean,Mathlib/Algebra/Jordan/Basic.lean,Mathlib/Algebra/Lie/Classical.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/TensorProduct.lean,Mathlib/Algebra/Module/Injective.lean,Mathlib/Algebra/Module/LinearMap.lean,Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Order/Ring/Lemmas.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/SMulWithZero.lean,Mathlib/Algebra/Star/Module.lean,Mathlib/Algebra/Support.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Point.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean,Mathlib/AlgebraicTopology/MooreComplex.lean,Mathlib/Analysis/Calculus/ContDiff.lean,Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean,Mathlib/Analysis/Calculus/LocalExtr.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Extreme.lean,Mathlib/Analysis/Convex/Function.lean,Mathlib/Analysis/Convex/Hull.lean,Mathlib/Analysis/Convex/Independent.lean,Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/Analysis/Convex/Join.lean,Mathlib/Analysis/Convex/Quasiconvex.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/Analysis/Convex/Star.lean,Mathlib/Analysis/Convex/Uniform.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean,Mathlib/Analysis/LocallyConvex/Basic.lean,Mathlib/Analysis/LocallyConvex/Bounded.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/AddCircle.lean,Mathlib/Analysis/Normed/Group/Hom.lean,Mathlib/Analysis/Normed/Group/Seminorm.lean,Mathlib/Analysis/NormedSpace/Completion.lean,Mathlib/Analysis/NormedSpace/LinearIsometry.lean,Mathlib/Analysis/NormedSpace/Multilinear.lean,Mathlib/Analysis/NormedSpace/OperatorNorm.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean,Mathlib/CategoryTheory/Closed/Ideal.lean,Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Endofunctor/Algebra.lean,Mathlib/CategoryTheory/Enriched/Basic.lean,Mathlib/CategoryTheory/EssentialImage.lean,Mathlib/CategoryTheory/FullSubcategory.lean,Mathlib/CategoryTheory/Functor/Category.lean,Mathlib/CategoryTheory/Limits/Fubini.lean,Mathlib/CategoryTheory/Limits/HasLimits.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean,Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean,Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean,Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean,Mathlib/CategoryTheory/Limits/Shapes/Images.lean,Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean,Mathlib/CategoryTheory/Linear/LinearFunctor.lean,Mathlib/CategoryTheory/Localization/Construction.lean,Mathlib/CategoryTheory/Monoidal/Braided.lean,Mathlib/CategoryTheory/Monoidal/CommMon_.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean | 302 | 1 | ['timotree3'] | nobody | 1 year ago | unknown | unknown |
| 6195 | eric-wieser | chore(RingTheory/TensorProduct): golf the `mul` definition | --- - [x] depends on: #6211 - [x] depends on: #6187 [](https://gitpod.io/from-referrer/) Strangely this causes a timeout downstream | merge-conflict t-algebra awaiting-CI | 4/29 | Mathlib/RingTheory/TensorProduct.lean | 1 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 6210 | MohanadAhmed | feat(Data/IsROrC/Basic): add a `StarOrderedRing` instance | This PR implements a suggestion by @urkud on [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/PartialOrder.20and.20StarOrderedRing.20on.20IsROrC) on how to get a `StarOrderedRing` on the `IsROrC` class. In that discussion the suggested step were: 1. Add PartialOrder K to the list of extends and add le_iff_re_im : z ≤ w ↔ re z ≤ re w ∧ im z = im w to the list of axioms. 2. Prove StarOrderedRing instance for any IsROrC. 3. Add (almost trivial) le_iff_re_im proofs to IsROrC instances for real and complex numbers. This PR does exactly these three steps --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra t-analysis | 25/24 | Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/IsROrC/Basic.lean | 4 | 19 | ['MohanadAhmed', 'eric-wieser', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 6328 | astrainfinita | chore: make some instance about `Sub...Class` lower priority | Many similar instances have been marked as lower priority. I'd like to see if this would make things faster. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra awaiting-CI | 14/14 | Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean,Mathlib/RingTheory/Subsemiring/Basic.lean,lean-toolchain | 3 | 1 | ['digama0'] | nobody | 1 year ago | unknown | unknown |
| 6330 | astrainfinita | chore: make some instance about `Sub...Class` higher priority than `Sub...` | The opposite direction to #6328. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra slow-typeclass-synthesis | 123/128 | Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/Subfield.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean,Mathlib/RingTheory/Polynomial/Quotient.lean,Mathlib/RingTheory/Subring/Basic.lean,Mathlib/RingTheory/Subsemiring/Basic.lean,lean-toolchain | 11 | 13 | ['astrainfinita', 'digama0', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 6403 | astrainfinita | chore: change instance priorities of `Ordered*` hierarchy | --- [](https://gitpod.io/from-referrer/) | t-algebra t-order merge-conflict slow-typeclass-synthesis awaiting-author | 253/79 | Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Field/Canonical/Defs.lean,Mathlib/Algebra/Order/Field/Defs.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Monoid/Basic.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Star.lean,Mathlib/Algebra/Order/WithZero.lean,Mathlib/Analysis/InnerProductSpace/Orientation.lean,Mathlib/LinearAlgebra/Orientation.lean,Mathlib/RingTheory/HahnSeries.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean | 18 | 39 | ['Vierkantor', 'astrainfinita', 'digama0', 'eric-wieser', 'j-loreaux', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 6491 | eric-wieser | chore(Mathlib/Algebra/Hom/GroupAction): add `SMulHomClass.comp_smul` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 24/10 | Mathlib/Algebra/Hom/GroupAction.lean | 1 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 7076 | grunweg | feat: define measure zero subsets of a manifold | A topological manifold has no canonical measure, but there is a canonical notion of measure zero subsets. We show that these are closed under subsets and countable unions (hence define a filter, the almost everywhere filter) and that a closed nowhere dense has empty interior. This is necessary for stating the general version of Sard's theorem (in finite dimensions), and a first step towards its proof. This code was written at LftCM 2023. Thanks for @fpvandoorn for mentoring me! :heart: --- Unresolved questions/looking for feedback - Is "measure zero" a good name or would "null set" be better? I tend towards the former, but welcome input from a measure theorist (which I'm not). - What is the correct definition? One could also define "measure zero" using any `IsOpenPosMeasure` on the charted space. I think all results in this file still hold then, but for applications (e.g., Sard's theorem), this might be too general. - define custom notation, similar to the a.e. filter on a measure space? (We could include $J$ instead of $\mu$.) - what's the right syntax for formulas in docstrings --- use LaTeX or backticks? I don't know how to preview the generated docs, the guidelines are a bit ambiguous for me. | merge-conflict WIP t-differential-geometry t-measure-probability | 165/0 | Mathlib.lean,Mathlib/Geometry/Manifold/MeasureZero.lean,docs/references.bib | 3 | 27 | ['ADedecker', 'github-actions', 'grunweg', 'mo271', 'sgouezel'] | ADedecker | 1 year ago | unknown | unknown |
| 3757 | thorimur | feat: config options for `fail_if_no_progress` | This PR creates config options for `fail_if_no_progress` that allow the user to tweak what exactly counts as "progress". This includes whether to use defeq or `BEq`, what transparency to use, and which parts of the goal and local context to check. It also splits off the comparison functionality into `Mathlib.Lean.Meta.Compare`, which provides fully configurable comparison functions for common complex metaprogramming types not specific to `fail_if_no_progress`. These types are `Expr`, `LocalDecl`, `LocalContext`, `MetavarDecl`, `MVarId`, and `List MVarId`. --- See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/progress.20on.20fail_if_no_progress) for a couple review questions. Status update: this PR is now basically done, save for some extra tests which should probably be included. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 603/54 | Mathlib.lean,Mathlib/Lean/Meta.lean,Mathlib/Lean/Meta/Compare.lean,Mathlib/Tactic/FailIfNoProgress.lean,test/fail_if_no_progress.lean | 5 | 38 | ['alexjbest', 'github-actions', 'joneugster', 'kim-em', 'thorimur'] | nobody | 1 year ago | unknown | unknown |
| 12353 | thorimur | feat: `conv%` | This PR introduces `conv% e => tac`, along with `simp%`, `norm_num%`, and `push_neg%`, which are defined in terms of `conv%`. It also introduces `conv%?` (and `simp%?`, `norm_num%?`, and `push_neg%?`) as shortcuts for `show_term ...`. This is a relatively straightforward refactor of code already present in the implementation of `#conv`, and otherwise relies entirely on simple macros. This PR also introduces some modifications to existing command syntax for `#conv`, `#simp`, and `#norm_num`: * The syntax for `#conv` was `#conv tac => e`; however, this is inconsistent with the tactic syntax, and so this has been flipped to `#conv e => tac`. Likewise, `conv%` uses the same (new) syntax `conv% e => tac`. * `#simp` and `#norm_num` separated their config and `only` syntax from the expression by an optional `=>` (for `#simp`) and an optional `:` (for `#norm_num`) (e.g. `#simp only [lem] => e`). These have both been replaced with an optional`on` (e.g. `#simp only [lem] on e`) which is also used for `simp%` and `norm_num%`. Although `#whnf` is implemented in terms of `#conv`, this PR doesn't introduce `whnf%` in the same way, as that's probably better off being implemented directly instead of through `conv`. --- WIP: needs tests. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-meta | 131/32 | Mathlib/Tactic/Conv.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/PushNeg.lean,docs/Conv/Guide.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 7903 | urkud | feat: define `UnboundedSpace` | --- The new instances generate some timeouts, and I don't understand why. [](https://gitpod.io/from-referrer/) | merge-conflict help-wanted t-topology | 111/59 | Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Topology/Bornology/Basic.lean,Mathlib/Topology/Bornology/Constructions.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean | 6 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 15679 | adomani | test: refactor in CI | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 213/5 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,Mathlib.lean,Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/CategoryTheory/Bicategory/Adjunction.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/Order/Filter/Cocardinal.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/TestRefactor.lean,Refactor/Main.lean,lakefile.lean,lean-toolchain | 21 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 7565 | shuxuezhuyi | feat(Topology/Algebra/Order): extend homeomorphism of `Ioo` to `Icc` | We extend the homeomorphisms between open intervals to homeomorphisms between the closed intervals. --- - [ ] depends on: #7018 - [ ] depends on: #7351 - [ ] depends on: #7564 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology blocked-by-other-PR t-order | 389/5 | Mathlib.lean,Mathlib/Data/Set/Intervals/Image.lean,Mathlib/Order/Directed.lean,Mathlib/Topology/Algebra/Order/IccExtendFromIoo.lean,Mathlib/Topology/Algebra/Order/IntermediateValue.lean | 5 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 10629 | madvorak | feat: List.cons_sublist_append_iff_right | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 11/0 | Mathlib/Data/List/Basic.lean | 1 | 1 | ['eric-wieser'] | nobody | 1 year ago | unknown | unknown |
| 9973 | Ruben-VandeVelde | feat: polynomials formed by lists | From https://github.com/leanprover-community/mathlib/pull/15476 --- [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-data | 311/0 | Mathlib.lean,Mathlib/Data/Polynomial/OfList.lean | 2 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 12926 | joelriou | feat(CategoryTheory): the monoidal category structure induced by a monoidal functor | In this PR, given a monoidal functor `F : MonoidalFunctor C D`, we define a monoidal category structure on the category `InducedCategory D F.obj`, which has the "same" objects as `C`, but the morphisms between `X` and `Y` identify to `F.obj X ⟶ F.obj Y`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 105/0 | Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Induced.lean | 2 | 3 | ['eric-wieser', 'github-actions', 'joelriou'] | nobody | 1 year ago | unknown | unknown |
| 12869 | adomani | feat: linter and script for `theorem` vs `lemma` | This PR contains a linter for flagging doc-string-less `theorem`s, as well as a bash script that, once the linter ran on Mathlib, automatically replaces every linter-offending `theorem` by `lemma`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 106/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/ThmLemma.lean,scripts/thmLemma.sh | 4 | 13 | ['adomani', 'github-actions', 'grunweg', 'joneugster'] | nobody | 1 year ago | unknown | unknown |
| 14563 | awueth | feat: if-then-else of exclusive or statement | --- If `¬(P ∧ Q)` then `ite (P ∨ Q) a 1 = (ite P a 1) * (ite Q a 1)` [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 5/0 | Mathlib/Algebra/Group/Basic.lean | 1 | 3 | ['eric-wieser', 'github-actions', 'kim-em'] | nobody | 1 year ago | unknown | unknown |
| 12093 | ADedecker | feat: tweak the definition of semicontinuity to behave better in nonlinear orders | Summary of the changes: - change definitions to make [lowerSemicontinuous_iff_isClosed_preimage](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Semicontinuous.html#lowerSemicontinuous_iff_isClosed_preimage) true without assuming `LinearOrder`, so that semicontinuity corresponds to continuity for lower/upper order topology on the codomain. See discussion on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Semicontinuity.20definition.20for.20non-linear.20orders/near/432898278) - add new `iff` lemmas for unfolding the definition - add `iff` lemmas with the old definition in the linearly ordered case - some basic lemmas need to be changed in an easy way - minimize assumptions for continuity => semicontinuity - prove the semicontinuity criterion for indicators using "preimage of Ici/Iic" instead of a direct proof, because the proof is more natural (especially because we have no `filter_upwards` for `Frequently`) - in the rest of the file (which is about linear orders anyway), we don't touch the statements and just rewrite to the old definition. Some of these could be generalized, but we keep that for a later PR. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology | 274/130 | Mathlib/Analysis/BoundedVariation.lean,Mathlib/MeasureTheory/Integral/FundThmCalculus.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Topology/Semicontinuous.lean | 4 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 11393 | mcdoll | feat(Analysis/Distribution/SchwartzSpace): The Heine-Borel property | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 688/3 | Mathlib.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/UniformSpace/Ascoli.lean,Mathlib/Topology/UniformSpace/Pi.lean,Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean | 6 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 9444 | erdOne | feat: Various instances regarding `𝓞 K`. | --- [](https://gitpod.io/from-referrer/) | merge-conflict help-wanted t-number-theory | 27/0 | Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/RingTheory/IntegralClosure.lean | 2 | 9 | ['erdOne', 'leanprover-bot', 'mattrobball', 'riccardobrasca', 'xroblot'] | nobody | 1 year ago | unknown | unknown |
| 8931 | hmonroe | feat(Computable): define P, NP, and NP-complete | Revised to focus on languages that are binary strings, given the issue of non-acceptable encodings of unspecified Types --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author | 381/5 | Mathlib.lean,Mathlib/Computability/Complexity copy.lean,Mathlib/Computability/Complexity.lean,Mathlib/Computability/Encoding.lean,Mathlib/Computability/TMComputable.lean,Mathlib/Computability/TuringMachine.lean,Mathlib/Computability/halting example.lean,docs/references.bib | 8 | 3 | ['fpvandoorn', 'github-actions', 'hmonroe'] | nobody | 1 year ago | unknown | unknown |
| 10387 | adomani | feat(Tactic/ComputeDegree): add `polynomial` tactic | Introducing the `polynomial` tactic, summing up `compute_degree, monicity` and adding support for `leadingCoeff`. This is more of a proof of concept: if there is interest in this tactic, I can polish it up. See [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Compute.20roots.20of.20polynomials/near/420713624). --- [](https://gitpod.io/from-referrer/) | WIP RFC t-meta | 24/0 | Mathlib/Tactic/ComputeDegree.lean | 1 | 0 | [] | nobody | 1 year ago | unknown | unknown |
| 9154 | astrainfinita | feat: `npow` / `nsmul` / `Nat.cast`/ `zpow` / `zsmul` implemented using `Nat.binaryRec` | --- - [ ] depends on: https://github.com/leanprover/lean4/pull/3756 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra blocked-by-other-PR | 168/359 | Mathlib/Algebra/Group/Defs.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/Primrec.lean,Mathlib/Data/Bool/Basic.lean,Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Digits.lean,Mathlib/Data/Nat/EvenOddRec.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Nat/Order/Basic.lean,Mathlib/Data/Nat/Parity.lean,Mathlib/Data/Nat/Size.lean,Mathlib/Data/Num/Lemmas.lean,Mathlib/Init/Data/Nat/Bitwise.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/Denumerable.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Logic/Equiv/Nat.lean,lake-manifest.json,lakefile.lean,test/zmod.lean | 25 | 7 | ['astrainfinita', 'eric-wieser', 'kim-em', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 6603 | tydeu | feat: automatically try `cache get` before build | --- A quick proof-of-concept. With this, `lake build` will always try `cache get` before building mathlib. [](https://gitpod.io/from-referrer/) | merge-conflict WIP CI | 29/0 | lakefile.lean | 1 | 3 | ['kim-em', 'tydeu'] | nobody | 1 year ago | unknown | unknown |
| 6058 | apurvnakade | feat: duality theory for cone programs | This PR tracks the development of duality theory for cone programs. [Reference](https://ti.inf.ethz.ch/ew/courses/ApproxSDP09/notes/conelp.pdf) --- [](https://gitpod.io/from-referrer/) - [x] depends on: #6059 - [ ] define direct sum of cones - [ ] weak duality - [ ] regular duality - [ ] slater condition - [ ] strong duality | merge-conflict WIP t-analysis | 159/0 | Mathlib.lean,Mathlib/Analysis/Convex/Cone/ConeLinearProgram.lean | 2 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 6449 | ADedecker | feat: functions with finite fibers | --- This has been discussed before on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/.E2.9C.94.20Cofinite.20maps.3F) and it came up again while working with @kkytola's student. As explained in the docstring, we could absolutely just use `Tendsto f cofinite cofinite` all the time, but (1) we lack some API for it (2) the API is nicer to setup if we have a separate def (e.g for dot notation) and (3) mentioning filters for such a simple concept is really not beginner-friendly. I'm not sure at all about the name. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 203/0 | Mathlib.lean,Mathlib/Logic/Function/HasFiniteFibers.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Cofinite.lean | 4 | 14 | ['ADedecker', 'YaelDillies', 'alexjbest', 'kkytola'] | nobody | 1 year ago | unknown | unknown |
| 13163 | erdOne | feat(.vscode/module-docstring.code-snippet): Prevent auto-complete from firing on `do` | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 5/0 | .vscode/module-docstring.code-snippets | 1 | 5 | ['erdOne', 'grunweg', 'robertylewis', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 13791 | digama0 | refactor: Primrec and Partrec | General cleanup of the `Primrec` and `Partrec` files, to better adjust to lean 4 things. The main user-visible change is that `Primrec₂` is no longer a `def` but an `abbrev`, because it was causing inference issues in lean 4. I also removed all the nonterminal `simp`s in `PartrecCode.lean`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability tech debt | 585/778 | Mathlib/Computability/Ackermann.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/Primrec.lean | 5 | 2 | ['github-actions', 'grunweg'] | nobody | 1 year ago | unknown | unknown |
| 11964 | adamtopaz | feat: The functor of points of a scheme | We construct the functor of points functor, and prove that it's full and faithful. --- - [ ] depends on: #11947 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-geometry t-category-theory | 210/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/FunctorOfPoints.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean | 3 | 4 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 12418 | rosborn | style: replace preimage_val with ↓∩ notation | --- This is a rough draft of what the new `↓∩` notation would look like within mathlib. I believe this is an improvement in clarity and would like to have `↓∩` as a standard notation (along with `''`, `⁻¹'`, `↑`, etc...). As `↓∩` is specialized for `Set`s, I have only changed `preimage_val` when the left-hand side of `↓∩` is a `Set`. The introduction of the `↓∩` notation to Data.Set.Image is temporary as it isn't possible to import Data.Set.Subset directly. If we want `↓∩` unscoped, where would be the best place to define it? An option is Data.Set.Defs, but the notation cannot be defined without additional imports as the file does not import `notation3`. [](https://gitpod.io/from-referrer/) | merge-conflict | 56/61 | Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Data/Set/Function.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Set/Subset.lean,Mathlib/MeasureTheory/Constructions/Polish.lean,Mathlib/MeasureTheory/MeasurableSpace/Basic.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Clopen.lean,Mathlib/Topology/Connected/Basic.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/LocalAtTarget.lean,Mathlib/Topology/LocallyConstant/Basic.lean,Mathlib/Topology/Separation.lean,Mathlib/Topology/Sober.lean | 18 | 3 | ['grunweg', 'rosborn'] | nobody | 1 year ago | unknown | unknown |
| 9978 | astrainfinita | chore(FieldTheory/KummerExtension): move some lemmas earlier | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 197/177 | Mathlib.lean,Mathlib/Data/Polynomial/FieldDivision.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Polynomial/Irreducible.lean | 5 | 5 | ['alreadydone', 'grunweg', 'riccardobrasca'] | nobody | 1 year ago | unknown | unknown |
| 12429 | adomani | feat: toND -- auto-generating natDegree | This is an experiment to automatically translate theorems about `degree` to theorems about `natDegree`. --- [](https://gitpod.io/from-referrer/) | t-algebra RFC merge-conflict awaiting-author t-meta | 167/132 | Mathlib.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean,Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Algebra/Polynomial/HasseDeriv.lean,Mathlib/Algebra/Polynomial/Inductions.lean,Mathlib/Algebra/Polynomial/Mirror.lean,Mathlib/Algebra/Polynomial/Reverse.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ToNatDegree.lean,scripts/noshake.json | 11 | 2 | ['adomani', 'grunweg'] | nobody | 1 year ago | unknown | unknown |
| 12751 | Command-Master | feat: add lemmas for Nat/Bits, Nat/Bitwise and Nat/Size | Remove `@[simp]` from `Nat.bit_false` and `Nat.bit_true`, as `bit0` and `bit1` are deprecated, and add some lemmas to `Bits`, `Bitwise` and `Size`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 66/7 | Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Nat/Size.lean | 4 | 26 | ['Command-Master', 'Rida-Hamadani', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'jcommelin'] | nobody | 1 year ago | unknown | unknown |
| 15448 | urkud | chore(*): deprecate `Option.elim'` | Use `Option.elim` instead. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author tech debt | 54/50 | Mathlib/Algebra/BigOperators/Option.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/Calculus/LagrangeMultipliers.lean,Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/TMToPartrec.lean,Mathlib/Data/Option/Defs.lean,Mathlib/LinearAlgebra/Basis.lean,Mathlib/Logic/Embedding/Set.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/NumberTheory/Dioph.lean,Mathlib/Topology/Compactness/Paracompact.lean,Mathlib/Topology/LocallyFinite.lean | 17 | 12 | ['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'grunweg', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 10350 | Shamrock-Frost | feat(Data/Setoid): add the operations of taking the equivalence class of an element and of saturating a set wrt an equivalence relation | I'm open to suggestions about changing the name "saturate", someone on zulip rightly pointed out this is a very overloaded term in math. That said, I think it's unlikely to cause confusion and that there's only one reasonable interpretation in the context of setoids. --- - [x] depends on: #10347 - [x] depends on: #10348 [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 169/3 | Mathlib/Data/Setoid/Basic.lean,Mathlib/Data/Setoid/Partition.lean,Mathlib/Order/Closure.lean | 3 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 13573 | Shamrock-Frost | feat: add multivariate polynomial modules | Add a type synonym for multivariate polynomials with coefficients in a module. --- Multivariate polynomials with module coefficients are sort of silly, but they sometimes show up in commutative algebra (eg in the definition of a quasi regular sequence). Writing this code involved a lot of copy and pasting from `PolynomialModule` and `MvPolynomial`. The API is definitely lacking at this stage but it's a start. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 691/6 | Mathlib.lean,Mathlib/Algebra/MvPolynomial/Module/Basic.lean,Mathlib/Algebra/MvPolynomial/Module/MvAEval.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean | 4 | 9 | ['Shamrock-Frost', 'erdOne', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 6517 | MohanadAhmed | feat: discrete Fourier transform of a finite sequence | # Discrete Fourier Transform (DFT) Matrix and DFT of a (finite) sequence This file defines the `dft` opertaion on a sequence (also a vecotr) and the DFT operation matrix ## Main definitions - `dft v`: given a sequence (v : (Fin n) → ℂ) we can transform it into a sequence (V : (Fin n) →ℂ) such that $$V [p] = ∑_{k = 0}^{N - 1} e^{-j*2πkp/n} v [k]$$ - `idft V` : given a sequence (V : (Fin n) → ℂ) we can transform it into a sequence (v : (Fin n) → ℂ) such that $$v [k] = \frac{1}{N}∑_{p = 0}^{n - 1} e^{j*2πkp/N} v [p]$$ - `dftMatrix n` : the dft matrix of dimensions $n \times n$ with the `k, p` entry equal to $$Wₙ[k, p] = e^{-j2πkp/n}$$ - `(dftMatrix n)⁻¹` : the idft matrix of dimensions $n \times n$ with the `k, p` entry equal to $$Wₙ[k, p] = (1/N) e^{j2πkp/n}$$ ## Main results - `dft v = (dftMatrix n) v` : the dft operation on a sequence is the same as the dft matrix applied to the vector - `idft V = (dftMatrix n)⁻¹ V` : the idft operation on a sequence is the same as the idft matrix applied to the vector - `dft (idft v) = dft ( idft v) = v` the dft and idft operations are inverses - `Wₙ = vandermonde (w)` : the dft matrix is vandermonde with `w` being the first row of the dft matrix - `circulant t = (dftMatrix n)⁻¹ ⬝ diagonal (dft t) ⬝ (dftMatrix n)` : a circulant matrix is diagonalizable by the dft and idft matrix pair. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 294/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/DFT.lean | 2 | 26 | ['MohanadAhmed', 'ericrbg'] | nobody | 1 year ago | unknown | unknown |
| 13155 | alreadydone | feat(NumberTheory/EllipticDivisibilitySequence): show elliptic relations follow from even-odd recursion | This PR is centered around the (generalized) elliptic relations (`rel₄`) $E(a,b,c,d): W_{a+b}W_{a-b}W_{c+d}W_{c-d}=W_{a+c}W_{a-c}W_{b+d}W_{b-d}-W_{a+d}W_{a-d}W_{b+c}W_{b-c}$. For an integer-indexed sequence W valued in a commutative ring, the relation makes sense only when a,b,c,d are all integers or all half integers. For convenience of formalization, we instead consider integers a,b,c,d of the same parity and divide all subscripts by 2. We extract the subexpression $W_{(a+b)/2}W_{(a-b)/2}$ (which appear six times) as `addMulSub W a b`. The collection of all $E(a,b,c,d)$ is equivalent to Stange's axiom for elliptic nets (`net`), and the literature (e.g. Silverman) commonly consider only the three-index special case $E(m,n,r,0)$ (`Rel₃`). Important special cases of these relations are (i) $E(m+1,m,1,0): W_{2m+1}W_1^3=W_{m+2}W_m^3-W_{m+1}^3 W_{m-1}$ (`oddRec`) and (ii) $E(m+1,m-1,1,0): W_{2m}W_2 W_1^2=W_m(W_{m+2}W_{m-1}^2-W_{m-2}W_{m+1}^2)$ (`evenRec`), which suffice to uniquely specify $W$ on all positive integers recursively from four initial values $W_1, W_2, W_3, W_4$ (`IsEllSequence.ext`, if $W_1 W_2$ is not a zero divisor). In the usual setting where $W_1=1$ and $W_2\mid W_4$, there does exist a sequence (`normEDS`) satisfying (i) and (ii) given initial values $W_2, W_3$ and $W_4/W_2$. It turns out the same non-zerodivisor condition also guarantees that W is an odd function with $W_0=0$, which naturally extends W to all integers. The main result of this PR (`rel₄_of_oddRec_evenRec`, `IsEllSequence.of_oddRec_evenRec`) is a purely algebraic proof that the sequence W defined by the single-parameter elliptic relations (i) and (ii) implies all $E(a,b,c,d)$, based on my original argument first published on [Math.SE](https://math.stackexchange.com/a/4903422/12932). It's based on the observation that a nonzerodivisor-multiple of $E(a,b,c,d)$ can be expressed as a linear combination of various $E(a,b,c_\min,d_\min)$ with the two smallest indices fixed at their minimal possible values, which can be transformed (`transf`) to an elliptic relation with smaller `a` (which can be assumed to hold by induction), unless they are of the form (i) or (ii) which hold by assumption. For this argument it's necessary to assume `a > b > c > d ≥ 0` (see `StrictAnti₄` and `Rel₄OfValid`), but it's easy to extend to arbitrary a,b,c,d by symmetry properties of `rel₄` under negation and permutations of indices. In the subsequent PR #13057, we show all normalized EDSs (`normEDS`), defined using the even-odd recursion (i)-(ii), are elliptic (i.e. satisfy the elliptic relations) divisibility sequences. This PR doesn't directly apply because a normEDS doesn't always satisfy the nonzerodivisor condition, but they are specializations of the universal normEDS, which does satisfy the condition. The technique of reducing to the universal case will be applied many times, and relies on the naturality (`map`) lemmas. We also change the `ℕ` in the definition `IsDivSequence` to `ℤ` which is more natural given that W is a `ℤ`-indexed sequence. --- - [x] depends on: #13153 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-number-theory | 565/12 | Mathlib/NumberTheory/EllipticDivisibilitySequence.lean | 1 | 55 | ['Multramate', 'alreadydone', 'github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 15600 | adomani | feat: lint also `let` vs `have` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter | 77/26 | Mathlib/Tactic/Linter/HaveLetLinter.lean,test/HaveLetLinter.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 16253 | Shreyas4991 | feat: Basics of Discrete Fair Division in Mathlib | This PR adds the basics of discrete fair division in mathlib. We include the definitions of allocations, valuations, properties of valuations, and the following notions : Envy-Freeness (EF), Envy-Freeness upto 1 good (EF1), and envy freeness upto any good (EFX). We also include the various implications between these notions. --- [](https://gitpod.io/from-referrer/) | WIP awaiting-author | 144/0 | Mathlib/GameTheory/FairDivision/Discrete/Basic.lean | 1 | 9 | ['Shreyas4991', 'eric-wieser', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 15121 | Eloitor | feat: iff theorems for IsSplitEpi and IsSplitMono in opposite category | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-category-theory new-contributor | 40/0 | Mathlib/CategoryTheory/EpiMono.lean | 1 | 3 | ['github-actions', 'joelriou', 'mattrobball'] | nobody | 1 year ago | unknown | unknown |
| 15895 | madvorak | feat(Computability/ContextFreeGrammar): mapping between two types of nonterminal symbols | --- [](https://gitpod.io/from-referrer/) | t-computability WIP | 172/0 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 43 | ['YaelDillies', 'github-actions', 'madvorak'] | nobody | 1 year ago | unknown | unknown |
| 14038 | adomani | test/decl diff in lean dev | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 231/2 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,.github/workflows/mk_build_yml.sh,Mathlib/Tactic/Eval.lean,scripts/decls_diff_hybrid.sh,scripts/list_decls.lean | 8 | 3 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 7861 | shuxuezhuyi | feat(Geometry/Hyperbolic/UpperHalfPlane): instance IsometricSMul PSL(2, ℝ) ℍ | --- - [ ] depends on: #7835 - [ ] depends on: #7791 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-euclidean-geometry | 98/0 | Mathlib.lean,Mathlib/Geometry/Hyperbolic/UpperHalfPlane/Basic.lean,Mathlib/LinearAlgebra/Matrix/ProjectiveSpecialLinearGroup.lean | 3 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 16570 | yuma-mizuno | chore(Tactic/CategoryTheory): change `TermElabM` to `MetaM` | Separated from #15335. To use `Qq`, we need to modify `Qq` to support universe matching. See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2315335.20meta.20code.20for.20monoidal.20categories). --- - [ ] depends on: #15335 [](https://gitpod.io/from-referrer/) | WIP t-meta | 26/15 | Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean,Mathlib/Tactic/CategoryTheory/Coherence.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mergify'] | nobody | 1 year ago | unknown | unknown |
| 10591 | adri326 | feat(Topology/Algebra/ConstMulAction): properties of continuous actions in Hausdorff spaces | Defines some useful properties of `ContinuousConstSMul` group actions on Hausdorff spaces: - `MulAction.isClosed_fixedBy`, which proves that the `fixedBy α m` set is closed - `t2_separation_smul`, which constructs an open set `s` such that `s` and `g • s` are disjoint - `Set.InjOn.t2_separation_smul`, the extension of `t2_separation_smul` to a set of group elements whose action is injective --- This PR belongs my series of PR around the formalization of Rubin's theorem. `MulAction.isClosed_fixedBy` is used in several places along the proof, and the separation lemmas are primarily used in showing that `(fixedBy α g)ᶜ` and `(fixedBy α h)ᶜ` are disjoint under some intricate but fully group-theoretic condition. [](https://gitpod.io/from-referrer/) | t-topology awaiting-author t-algebra | 57/0 | Mathlib/Topology/Algebra/ConstMulAction.lean | 1 | 9 | ['ADedecker', 'adri326', 'j-loreaux', 'jcommelin'] | ADedecker | 1 year ago | unknown | unknown |
| 7545 | shuxuezhuyi | feat: APIs of `Function.extend f g e'` when `f` is injective | We characterizes `range g`, `Injective g`, `Surjective g` and `Bijective g` in terms of `extend f g e'`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 50/0 | Mathlib.lean,Mathlib/Logic/Function/ApiForExtend.lean | 2 | 1 | ['fpvandoorn'] | nobody | 1 year ago | unknown | unknown |
| 14078 | Ruben-VandeVelde | feat(CI): continue after mk_all fails | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author CI | 43/0 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml,Mathlib/Data/Nat/Test.lean | 5 | 2 | ['bryangingechen', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 11283 | hmonroe | feat(ModelTheory/Satisfiability): define theory with independent sentence | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-logic | 8/0 | Mathlib/ModelTheory/Satisfiability.lean | 1 | 2 | ['fpvandoorn', 'hmonroe'] | nobody | 1 year ago | unknown | unknown |
| 16914 | siddhartha-gadgil | Loogle syntax with non-reserved | This is PR mainly to test that loogle syntax does not break stuff downstream --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 4/4 | lake-manifest.json,lakefile.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 13782 | alreadydone | feat(EllipticCurve): ZSMul formula in terms of division polynomials | The formula $[n]P = (\phi_n(x,y) : \omega_n(x,y) : \psi_n(x,y))$ in Jacobian coordinates for $P=(x,y)$ a nonsingular point on a Weierstrass/elliptic curve. --- - [x] depends on: #12883 - [x] depends on: #13399 - [ ] depends on: #13057 - [ ] depends on: #13155 - [x] depends on: #13845 - [x] depends on: #13846 - [ ] depends on: #13847 [](https://gitpod.io/from-referrer/) | t-algebra t-number-theory blocked-by-other-PR merge-conflict t-algebraic-geometry | 2462/232 | Mathlib.lean,Mathlib/Algebra/MvPolynomial/PDeriv.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/ZSMul.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Universal.lean,Mathlib/NumberTheory/EllipticDivisibilitySequence.lean | 10 | 8 | ['Multramate', 'alreadydone', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 8118 | iwilare | feat(CategoryTheory): add dinatural transformations | A starting point to define [dinatural transformations](https://ncatlab.org/nlab/show/dinatural+transformation). This is my first PR so style comments and improvements are very welcome! --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 147/7 | Mathlib.lean,Mathlib/CategoryTheory/DinatTrans.lean,Mathlib/CategoryTheory/Functor/Category.lean,Mathlib/CategoryTheory/Products/Bifunctor.lean | 4 | 49 | ['Shamrock-Frost', 'github-actions', 'iwilare', 'joelriou'] | Shamrock-Frost | 1 year ago | unknown | unknown |
| 14242 | js2357 | feat: Prove equivalence of `isDedekindDomain` and `isDedekindDomainDvr` | Prove that `isDedekindDomainDvr` is equivalent to both `isDedekindDomain` and `isDedekindDomainInv`. Specifically, prove `isDedekindDomainDvr A → isDedekindDomainInv A`, because `isDedekindDomain A → isDedekindDomainDvr A` and `IsDedekindDomain A ↔ IsDedekindDomainInv A` are already in Mathlib. - [x] depends on: #14099 - [x] depends on: #14216 - [ ] depends on: #14237 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR new-contributor | 269/1 | Mathlib.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/FractionalIdeal/LocalizedAtPrime.lean,Mathlib/RingTheory/Localization/Basic.lean | 4 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 7516 | ADedecker | perf: use `abbrev` to prevent unifying useless data | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 4/3 | Mathlib/Topology/ContinuousFunction/Bounded.lean | 1 | 3 | ['ADedecker', 'leanprover-bot', 'mattrobball'] | nobody | 1 year ago | unknown | unknown |
| 17127 | astrainfinita | chore: remove global `Quotient.mk` `⟦·⟧` notation | --- Merge this PR when we are ready to migrate to `QuotLike` API (#16421). [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 137/2 | Counterexamples/Pseudoelement.lean,Mathlib/Algebra/Associated/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean,Mathlib/Algebra/Order/CauSeq/Completion.lean,Mathlib/Algebra/Quandle.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean,Mathlib/CategoryTheory/Skeletal.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Fintype/List.lean,Mathlib/Data/Fintype/Quotient.lean,Mathlib/Data/Multiset/Basic.lean,Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean,Mathlib/Data/QPF/Univariate/Basic.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/Set/Finite.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/GroupAction/Basic.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/LinearAlgebra/Dual.lean,Mathlib/LinearAlgebra/Ray.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/ModelTheory/DirectLimit.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/Quotients.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/NumberTheory/NumberField/Embeddings.lean,Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean,Mathlib/NumberTheory/Padics/PadicIntegers.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/RepresentationTheory/Action/Concrete.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Ordinal.lean,Mathlib/SetTheory/Game/Basic.lean,Mathlib/SetTheory/Game/Birthday.lean,Mathlib/SetTheory/Game/Impartial.lean,Mathlib/SetTheory/Game/Ordinal.lean,Mathlib/SetTheory/Game/State.lean,Mathlib/SetTheory/Lists.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Surreal/Basic.lean,Mathlib/SetTheory/Surreal/Dyadic.lean,Mathlib/SetTheory/Surreal/Multiplication.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Rank.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/Homotopy/HomotopyGroup.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/Homotopy/Product.lean,Mathlib/Topology/MetricSpace/GromovHausdorff.lean,Mathlib/Topology/UniformSpace/Separation.lean,test/interactiveUnfold.lean | 68 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 16887 | metinersin | feat(ModelTheory/Complexity): define conjunctive and disjunctive formulas | Defines `FirstOrder.Language.BoundedFormula.IsConjunctive` and `FirstOrder.Language.BoundedFormula.IsDisjunctive`. --- - [ ] depends on: #16885 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 300/7 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Syntax.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 16888 | metinersin | feat(ModelTheory/Complexity): Define conjunctive and disjunctive normal forms | Define `FirstOrder.Language.BoundedFormula.IsDNF` and `FirstOrder.Language.BoundedFormula.IsCNF`. --- - [ ] depends on: #16887 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 415/7 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Syntax.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 16889 | metinersin | feat(ModelTheory/Complexity): Normal forms | Defines `FirstOrder.Language.BoundedFormula.toDNF` and `FirstOrder.Language.BoundedFormula.toCNF` - given a quantifier-free formula, these construct a semantically equivalent formula in disjunctive normal form and conjunctive normal form, respectively. --- - [ ] depends on: #16888 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 525/7 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Syntax.lean | 3 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 14712 | astrainfinita | perf: change instance priority and order about `OfNat` | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra delegated | 49/20 | Mathlib/Algebra/Group/Nat.lean,Mathlib/Algebra/Group/ZeroOne.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Data/BitVec.lean,Mathlib/Data/Nat/Cast/Defs.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/UInt.lean,Mathlib/NumberTheory/ArithmeticFunction.lean | 9 | 24 | ['MichaelStollBayreuth', 'astrainfinita', 'eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-bot', 'mathlib-bors'] | nobody | 1 year ago | unknown | unknown |
| 5995 | astrainfinita | feat: add APIs about `Quotient.choice` | Some docs in this PR refer to the definition in #5576. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author RFC t-data | 76/6 | Mathlib/Data/Quot.lean | 1 | 3 | ['YaelDillies', 'astrainfinita', 'gebner'] | eric-wieser | 1 year ago | unknown | unknown |
| 13156 | erdOne | refactor(Algebra/Module/LocalizedModule): Redefine `LocalizedModule` in terms of `OreLocalization`. | --- - [x] depends on: #13151 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 519/628 | Mathlib.lean,Mathlib/Algebra/Module/LocalizedModule.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/OreLocalization/Basic.lean,Mathlib/RingTheory/OreLocalization/Module.lean,Mathlib/RingTheory/OreLocalization/Ring.lean | 8 | 4 | ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mattrobball'] | nobody | 1 year ago | unknown | unknown |
| 16348 | urkud | refactor(Topology): require `LinearOrder` with `OrderTopology` | While the definition formally makes sense for a preorder, this topology is usually not the right one for a non-linear order (e.g., `Real × Real`). See [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Open.20Ioi) --- This PR doesn't cleanup any API, I'm going to do it in a later PR. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology t-order | 33/46 | Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean,Mathlib/Topology/Algebra/Order/LiminfLimsup.lean,Mathlib/Topology/Instances/Sign.lean,Mathlib/Topology/Order/Basic.lean,Mathlib/Topology/Order/Filter.lean,Mathlib/Topology/Order/MonotoneContinuity.lean | 6 | 10 | ['YaelDillies', 'github-actions', 'jcommelin', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 13965 | pechersky | feat(Data/DigitExpansion): reals via digit expansion are complete | --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #13964 | merge-conflict blocked-by-other-PR t-data | 3876/0 | Mathlib.lean,Mathlib/Data/DigitExpansion/Add.lean,Mathlib/Data/DigitExpansion/Defs.lean,Mathlib/Data/DigitExpansion/Hensel.lean,Mathlib/Data/DigitExpansion/Integer/Basic.lean,Mathlib/Data/DigitExpansion/Integer/Mul.lean,Mathlib/Data/DigitExpansion/Real/Basic.lean,Mathlib/Data/DigitExpansion/Real/CompleteSpace.lean,Mathlib/Data/DigitExpansion/Real/ConditionallyComplete.lean,docs/references.bib | 10 | 4 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 10796 | mcdoll | feat(Tactic/Positivity): non-negativity of functions | --- This makes the `Finset.sum` and `integral_nonneg` extensions even more useful. [](https://gitpod.io/from-referrer/) | WIP t-meta | 27/0 | Mathlib/Tactic/Positivity/Core.lean | 1 | 1 | ['YaelDillies'] | nobody | 1 year ago | unknown | unknown |
| 12750 | Command-Master | feat: define Gray code | --- Define binary reflected gray code, both as a permutation of `Nat` and as a permutation of `BitVec n`, and prove some theorems about them. Additionally, remove `@[simp]` from `Nat.bit_false` and `Nat.bit_true`, as `bit0` and `bit1` are deprecated, and add some lemmas to `Bits`, `Bitwise` and `Size`. - [ ] depends on: #12751 [](https://gitpod.io/from-referrer/) | blocked-by-other-PR t-data new-contributor merge-conflict awaiting-author | 226/0 | Mathlib.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/GrayCode.lean,Mathlib/Data/Nat/Size.lean | 5 | 5 | ['Rida-Hamadani', 'alreadydone', 'github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 14603 | awueth | feat: degree is invariant under graph isomorphism | --- Mathlib has the definition `SimpleGraph.Iso.mapNeighborSet` which is an equivalence between neighbor sets induced by an isomorphism. Would it be beneficial to add the same equivalence for `neighborFinset`? [](https://gitpod.io/from-referrer/) | WIP t-combinatorics new-contributor | 24/0 | Mathlib/Combinatorics/SimpleGraph/Map/Finite.lean | 1 | 11 | ['awueth', 'github-actions', 'jcommelin', 'kim-em', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 16925 | YnirPaz | feat(SetTheory/Cardinal/Cofinality): aleph index of singular cardinal has infinite cofinality | Prove `Ordinal.aleph0_le_cof_of_not_isRegular`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-set-theory | 6/0 | Mathlib/SetTheory/Cardinal/Cofinality.lean | 1 | 4 | ['YnirPaz', 'github-actions', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 9605 | davikrehalt | feat(Data/Finset & List): Add Lemmas for Sorting and Filtering | This PR includes several useful lemmas to the Data/Finset and Data/List modules in Lean's mathlib: 1. `toFinset_filter` (List): Shows that filtering commutes with toFinset. 2. `toFinset_is_singleton_implies_replicate` (List): Shows a list with a singleton toFinset is a List.replicate. 3. `filter_sort_commute` (Finset): Sorting and filtering can be interchanged in Finsets. 4. `Sorted.filter` (List): A sorted list stays sorted after filtering. 5. `Sorted.append_largest` (List): Appending the largest element keeps a list sorted. 6. `sort_monotone_map` (Finset): Relates sorting of a Finset after mapping to sorting of a list. 7. `sort_insert_largest` (Finset): Sorting a Finset with an inserted largest element. 8. `sort_range` (Finset): Sorting a range in a Finset equals the corresponding range list. 9. ~~`filter_eval_true` (List): Filtering a list with a predicate always true keeps the list unchanged.~~ 10. ~~`filter_eval_false` (List): Filtering with an always-false predicate gives an empty list.~~ 11. ~~`pairwise_concat` (List): Iff condition for Pairwise relation in concatenated lists (similar to pairwise_join).~~ 12. `list_map_toFinset` (Finset): toFinset commutes with map under injection --- - [x] depends on: #15952 This is my first PR to mathlib, so I'm not too familiar with etiquette's and more specifically there are two proofs in the PR which uses aesop, and I am not sure if it's frowned upon. I kept the aesop in there for now as I couldn't construct very short proofs otherwise. The sort_range function proof was suggested in https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Computing.20Finset.20sort.20of.20Finset.20range/near/410346731 by Ruben Van de Velde. Thanks for your time for improving this PR. | please-adopt t-data new-contributor merge-conflict awaiting-author | 71/0 | Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/List/Sort.lean | 4 | 30 | ['YaelDillies', 'davikrehalt', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-community-mathlib4-bot', 'urkud', 'vihdzp'] | YaelDillies | 1 year ago | unknown | unknown |
| 13514 | madvorak | feat(Computability/ContextFreeGrammar): closure under union | - [ ] depends on: #15895 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability blocked-by-other-PR | 448/4 | Mathlib/Computability/ContextFreeGrammar.lean | 1 | 50 | ['Rida-Hamadani', 'YaelDillies', 'github-actions', 'leanprover-community-mathlib4-bot', 'madvorak'] | nobody | 1 year ago | unknown | unknown |
| 9654 | urkud | feat: add `@[mk_eq]` version of `@[mk_iff]` | The new attribute generates theorems like ```lean List.chain_eq : @List.Chain = fun {α} R a a_1 => a_1 = [] ∨ ∃ b l, R a b ∧ List.Chain R b l ∧ a_1 = b :: l ``` and is useful to rewrite in a theorem that argues about the properties of an unapplied inductive predicate. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 63/9 | Mathlib/Lean/Meta.lean,Mathlib/Tactic/MkIffOfInductiveProp.lean,test/MkIffOfInductive.lean | 3 | 6 | ['Vierkantor', 'github-actions', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 16704 | AntoineChambert-Loir | feat(Mathlib.Data.Ordering.Dickson): Dickson orders | Dickson orders are a particular class of well founded orders characterized by the fact that every nonempty set has finitely many minimal elements. They appear in the classical theory of Groebner bases because it is easier to prove that some sets are well founded using this property. WiP. In the `tfae` function, property 2 is exactly `Set.PartiallyWellOrderedOn`, so the PR should be rewritten so as to use that property (and not define `IsDickson`). --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order | 324/0 | Mathlib.lean,Mathlib/Data/Ordering/Dickson.lean,scripts/noshake.json | 3 | 9 | ['AntoineChambert-Loir', 'b-mehta', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 16355 | Ruben-VandeVelde | feat: odd_{add,sub}_one | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-number-theory | 12/0 | Mathlib/Algebra/Ring/Int.lean,Mathlib/Algebra/Ring/Parity.lean | 2 | 4 | ['Ruben-VandeVelde', 'github-actions', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 8479 | alexjbest | feat: use leaff in CI | [Leaff](https://github.com/alexjbest/leaff) is an experimental lean-diff tool, this PR is to experiment with adding it as a CI step. --- I'm not sure yet if it is best to have this always run or only run on request (like bench). If it is always run should it post a comment or simply leave its output it the actions log (maybe as a summary object) the current iteration runs and updates a sticky comment with the latest result [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author | 340/0 | .github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build.yml.in,.github/workflows/build_fork.yml | 4 | 11 | ['alexjbest', 'github-actions', 'grunweg', 'kim-em', 'mathlib-bors', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 14598 | Command-Master | chore: add typeclasses to unify various `add_top`, `add_eq_top`, etc. | Add the four typeclasses `IsTopAbsorbing`, `IsBotAbsorbing`, `NoTopSum`, `NoBotSum`, as additive equivalents for `MulZeroClass` and `NoZeroDivisors`. Add instances of these for `ENNReal`, `WithTop α`, `WithBot α`, `PUnit`, `EReal`, `PartENat`, `Measure`, `Interval` and `Filter`. Also split `Algebra/Order/AddGroupWithTop` to `Algebra/Order/Group/WithTop` and `Algebra/Order/Monoid/WithTop` --- Previous usages of lemmas with quantified names like `WithTop.add_top` have to be changed to just `add_top`. `add_lt_top` is `@[simp]`, in accordance with `ENNReal.add_lt_top` being `@[simp]`. This affects `WithTop.add_lt_top` which previously hadn't been `@[simp]`. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra t-order new-contributor | 264/195 | Archive/Wiedijk100Theorems/BallotProblem.lean,Mathlib.lean,Mathlib/Algebra/Order/Group/WithTop.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/Algebra/PUnitInstances/Order.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/Analytic/Meromorphic.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/NormedSpace/ENorm.lean,Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean,Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Nat/WithBot.lean,Mathlib/Data/Real/EReal.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/MeasureTheory/Covering/Differentiation.lean,Mathlib/MeasureTheory/Decomposition/Lebesgue.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/L1Space.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Function/LpSpace.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/MeasureTheory/Integral/Bochner.lean,Mathlib/MeasureTheory/Integral/MeanInequalities.lean,Mathlib/MeasureTheory/Integral/SetIntegral.lean,Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Measure/Hausdorff.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/MeasureTheory/Measure/Typeclasses.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/Probability/Martingale/Convergence.lean,Mathlib/RingTheory/Multiplicity.lean,Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean,Mathlib/RingTheory/UniqueFactorizationDomain.lean,Mathlib/Topology/EMetricSpace/Defs.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean,Mathlib/Topology/MetricSpace/Lipschitz.lean | 57 | 30 | ['Command-Master', 'YaelDillies', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 16885 | metinersin | feat(ModelTheory/Complexity): define literals | Defines `FirstOrder.Language.BoundedFormula.IsLiteral` and `FirstOrder.Language.BoundedFormula.simpleNot` - an auxiliary operation that takes the negation of a formula and does some simplification. --- - [x] depends on: #16800 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-logic | 148/5 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean | 4 | 20 | ['YaelDillies', 'awainverse', 'github-actions', 'mathlib4-dependent-issues-bot', 'metinersin'] | nobody | 1 year ago | unknown | unknown |
| 18716 | jjaassoonn | feat(Algebra/Module/GradedModule): quotient and subgrading | - [ ] depends on: #9820 [](https://gitpod.io/from-referrer/) | WIP t-algebra blocked-by-other-PR awaiting-CI merge-conflict | 997/191 | Counterexamples/HomogeneousPrimeNotPrime.lean,Mathlib.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Module/GradedModule/Basic.lean,Mathlib/Algebra/Module/GradedModule/QuotientGrading.lean,Mathlib/Algebra/Module/GradedModule/Subgrading.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean,Mathlib/RingTheory/GradedAlgebra/Quotient.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,scripts/no_lints_prime_decls.txt | 12 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 9341 | winstonyin | feat: Naturality of integral curves | Let `v` and `v'` be sections of the tangent bundle of manifolds `M` and `M'`, respectively, and let `f : M → M'` be a differentiable map. Then `f` maps integral curves of `v` to integral curves of `v'` if and only if `v` and `v'` are `f`-related. - [x] depends on: #8483 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-differential-geometry | 45/0 | Mathlib/Geometry/Manifold/IntegralCurve.lean,Mathlib/Topology/Algebra/Module/Basic.lean | 2 | 9 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot', 'winstonyin'] | nobody | 1 year ago | unknown | unknown |
| 13248 | hcWang942 | feat: basic concepts of auction theory | ## Description
Formalise some core concepts and results in auction theory: this includes definitions for first-price and second-price auctions, as well as several fundamental results and helping lemmas.
This is the very first PR of the project formalizing core concepts and results in auction theory.
Our group is working on more contributions on the formalization of game theory prefix.
Co-authored-by: Ma Jiajun |
merge-conflict awaiting-author new-contributor t-logic | 204/0 | Mathlib.lean,Mathlib/GameTheory/Auction/Basic.lean,docs/references.bib | 3 | 148 | ['Shreyas4991', 'YaelDillies', 'eric-wieser', 'faenuccio', 'github-actions', 'grunweg', 'hcWang942', 'tb65536', 'urkud', 'vihdzp'] | hcWang942 | 1 year ago | unknown | unknown |
| 9344 | erdOne | feat: Add `AddGroup.FG` -> `Module.Finite ℤ` as instances | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 4/0 | Mathlib/RingTheory/Finiteness.lean | 1 | 4 | ['alreadydone', 'erdOne', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 12133 | ADedecker | feat: generalize instIsLowerProd to arbitrary products | Also change a bit the proof of the product case to match my own taste, feel free to tell if you prefer the old one. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology t-order | 34/14 | Mathlib/Topology/Constructions.lean,Mathlib/Topology/Order/LowerUpperTopology.lean | 2 | 13 | ['Ruben-VandeVelde', 'TwoFX', 'github-actions', 'jcommelin', 'mans0954', 'mathlib-bors', 'riccardobrasca'] | nobody | 1 year ago | unknown | unknown |
| 16637 | astrainfinita | perf: reorder `extends` of `(Add)Monoid` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 46/51 | Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/BigOperators/Ring/List.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Ring/SumsOfSquares.lean,Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean,Mathlib/Data/Finset/NoncommProd.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Torsion.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/Order/Filter/Germ/Basic.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/Coalgebra/Hom.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean | 20 | 3 | ['astrainfinita', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 8661 | joelriou | feat(CategoryTheory/Sites): descent of sheaves | In this PR, it is shown that the category of sheaves on a site `(C, J)` identifies as a full subcategory of a category of families of sheaves equipped with a descent data (for a family of objects which cover the final object). Under suitable conditions, it shall be shown that this is an equivalence of categories (TODO). --- This shall be split in small PRs later. - [x] depends on: #8622 - [x] depends on: #8632 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 1396/26 | Mathlib.lean,Mathlib/CategoryTheory/Over.lean,Mathlib/CategoryTheory/Sites/CoverPreserving.lean,Mathlib/CategoryTheory/Sites/Descent.lean,Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean,Mathlib/CategoryTheory/Sites/InducedTopology.lean,Mathlib/CategoryTheory/Sites/ObjectsCoverTop.lean,Mathlib/CategoryTheory/Sites/Over.lean,Mathlib/CategoryTheory/Sites/SheafHom.lean,Mathlib/CategoryTheory/Sites/Sieves.lean | 10 | 3 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 10476 | shuxuezhuyi | feat(Topology/UniformSpace): define uniform preordered space | We define the semi-uniform structure and the uniform preordered space. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 94/0 | Mathlib.lean,Mathlib/Topology/UniformSpace/UniformOrder.lean,docs/references.bib | 3 | 2 | ['shuxuezhuyi'] | nobody | 1 year ago | unknown | unknown |
| 17593 | astrainfinita | chore(Algebra/Order/GroupWithZero/Unbundled): deprecate useless lemmas, use `ZeroLEOneClass` | There are still some useless lemmas that were simply ported from `Algebra.Order.Monoid.Lemmas`, such as just chain an existing lemma with an assumption and lemmas whose assumptions imply `1 ≤ 0`. This PR removes them. Also, some lemmas have both assumptions like `1 < a` `0 < a`. This PR uses `ZeroLEOneClass` to remove redundant assumptions. --- - [ ] depends on: #17623 Ported from https://github.com/leanprover-community/mathlib/pull/16525 and https://github.com/leanprover-community/mathlib/pull/18158 Adapted from #9250. This version is easier to review. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR t-order | 188/48 | Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/Topology/Algebra/Order/Field.lean | 6 | 4 | ['astrainfinita', 'github-actions', 'mathlib4-dependent-issues-bot', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 17623 | 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. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-zulip t-order | 146/44 | Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean | 2 | 11 | ['YaelDillies', 'astrainfinita', 'github-actions', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 17624 | astrainfinita | feat(Algebra/Order/GroupWithZero/Unbundled): generalize lemmas | --- - [ ] depends on: #17623 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR t-order | 121/26 | Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 17513 | astrainfinita | perf: do not search algebraic hierarchies when using `map_*` lemmas | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra awaiting-bench | 5/3 | Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean | 2 | 10 | ['astrainfinita', 'github-actions', 'grunweg', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 17515 | astrainfinita | perf: do not need `simp low` now | --- - [ ] depends on: #17513 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR | 12/10 | Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/NumberTheory/LucasLehmer.lean | 4 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 19212 | Julian | feat(LinearAlgebra): add a variable_alias for VectorSpace | Taken directly from the variable_alias docs. Zulip: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/why.20.5Bvariable_alias.5D.20attribute.20is.20not.20used.20in.20Mathlib.3F --- This is the first actual variable alias added to mathlib. I haven't reviewed variable_alias fully, but it seems like there's at least 3 ways they could be distributed in Mathlib: * alongside whatever subfolder they "belong to" (which is what I've tentatively done here) * In a file called `Aliases` somewhere near the thing they alias (which seems less discoverable to me) * In a single file, a la `Mathlib.TrainingWheels` (with some less playful name) which is meant to define a bunch of more "friendly" aliases all in one place. I kind of like the idea of the third thing as a future module but perhaps it can be synthesized if/when there are more aliases? For now as I say I've done the first one, but please let me know if someone prefers something else. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 25/0 | Mathlib.lean,Mathlib/LinearAlgebra/VectorSpace.lean,scripts/noshake.json | 3 | 10 | ['Julian', 'PieterCuijpers', 'github-actions', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 19337 | zeramorphic | feat(Data/Finsupp): generalise `Finsupp` to any "zero" value | Remove the explicit dependence of `Finsupp` on `[Zero M]`, instead defining `Finsupp'` (better name pending) to be functions that are equal to a fixed value `z : M` cofinitely often. This PR is intended to do the initial work of replacing the definition of `Finsupp` with an instantiation of the more general definition, without adding any appropriate API. If accepted, the API development will follow in later PRs. Issues to consider: - Naming of `Finsupp'.` - Where should `Finsupp'` lemmas go? Do they need their own file/folder under `Data/`? Relevant Zulip threads: - https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Finsupp.20generalisations - https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Finsupp-like.20partial.20function Comments are welcome. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 203/83 | Archive/Wiedijk100Theorems/Partition.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/MvPolynomial/Rename.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/Data/Finsupp/BigOperators.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean,Mathlib/RingTheory/PowerBasis.lean,scripts/nolints_prime_decls.txt | 13 | 5 | ['github-actions', 'vihdzp', 'zeramorphic'] | nobody | 1 year ago | unknown | unknown |
| 10332 | adri326 | feat(Topology/Sets): define regular open sets and their boolean algebra | Introduces a new module, `Mathlib.Topology.Sets.RegularOpens`, which defines the `IsRegularOpen s` predicate (`interior (closure s) = s`) and `TopologicalSpace.RegularOpens`, the type of bundled regular open sets (defined as `Heyting.Regular (Opens X)`). A few properties of regular open sets (bundled and unbundled) and `interior (closure s)` are proven, and a pointwise instance of `MulAction` is provided for regular open sets. --- This PR belongs to my series of PRs around my formalization of Rubin's theorem. There are two possible ways to implement `RegularOpens`: - either construct them by hand and show that they form a boolean algebra (better def-eq but more boilerplate code required) - or use `Heyting.Regular` on the heyting algebra of `Opens` inherited from the `Frame` instance on them I first chose to use the former approach, but using the latter cuts the length of the construction of the boolean algebra of regular open sets by 100 lines of code, and allows us to inherit all of the helper lemmas defined for `Heyting.Regular`. The big downside, though, is that an element of `RegularOpens` isn't defined as a bundled regular open set anymore, but rather as an `Opens` set `s` for which `Opens.interior ↑(Opens.interior ↑sᶜ)ᶜ = s`, so I added an alternative constructor `RegularOpens.of` that instead accepts any set `s` for which `IsRegularOpen s` holds. Another minor downside is that coercion to a set takes two coercions instead of one. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology | 434/0 | Mathlib.lean,Mathlib/Data/Set/Pointwise/SMul.lean,Mathlib/Topology/Sets/Opens.lean,Mathlib/Topology/Sets/RegularOpens.lean,docs/references.bib | 5 | 1 | ['adri326'] | YaelDillies | 1 year ago | unknown | unknown |
| 18756 | astrainfinita | refactor: deprecate `DistribMulActionSemiHomClass` `MulSemiringActionSemiHomClass` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 50/28 | Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean | 3 | 4 | ['astrainfinita', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 19125 | yhtq | feat: add theorems to transfer `IsGalois` between pairs of fraction rings | feat: add theorems to transfer `IsGalois` between pairs of fraction rings. - [x] depends on: #18404 - [x] depends on: #19124 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra new-contributor | 121/0 | Mathlib.lean,Mathlib/FieldTheory/Galois/IsFractionRing.lean,Mathlib/RingTheory/Localization/FractionRing.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'tb65536'] | nobody | 1 year ago | unknown | unknown |
| 18841 | hrmacbeth | chore: change some `linarith`s to `linear_combination`s | Change 100 `linarith`s to `linear_combination`s; this is generally a slight speedup. --- [](https://gitpod.io/from-referrer/) - [x] depends on: #18714 (not strictly blocked by this, but the speed comparison will be more informative after it) | merge-conflict WIP | 106/107 | Archive/Imo/Imo1959Q2.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2021Q1.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Complex/AbelLimit.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/Analysis/Convex/Slope.lean,Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean,Mathlib/Analysis/Convex/Uniform.lean,Mathlib/Analysis/Convex/Visible.lean,Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleWith.lean,Mathlib/Probability/Distributions/Pareto.lean | 30 | 29 | ['github-actions', 'grunweg', 'hrmacbeth', 'jcommelin', 'leanprover-bot', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 11142 | hmonroe | feat(ProofTheory): Define logical symbols abstractly; opens new top-level section, drawing from lean4-logic | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 468/1 | Mathlib.lean,Mathlib/Data/Fin/VecNotation.lean,Mathlib/ProofTheory/LogicSymbol.lean | 3 | 19 | ['PatrickMassot', 'YaelDillies', 'avigad', 'fpvandoorn', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 11210 | hmonroe | Test commit | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 1950/1 | Mathlib.lean,Mathlib/Data/Fin/VecNotation.lean,Mathlib/ProofTheory/Calculus.lean,Mathlib/ProofTheory/FirstOrder/Arith/Language.lean,Mathlib/ProofTheory/FirstOrder/Basic/Syntax/Term.lean,Mathlib/ProofTheory/LogicSymbol.lean,Mathlib/ProofTheory/Matrix.lean,Mathlib/ProofTheory/Semantics.lean,Mathlib/ProofTheory/System.lean,docs/references.bib | 10 | 100 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 19621 | Command-Master | feat: Multiplicity and prime-adic valuation of derivations | --- - [ ] depends on: #19596 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR large-import | 397/13 | Mathlib.lean,Mathlib/Algebra/Order/AddGroupWithTop.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/Derivation/Multiplicity.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/PrimeMultiplicity.lean | 9 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 18262 | joelriou | feat(Algebra/Category/ModuleCat/Presheaf): exterior powers of presheaves of modules | --- - [x] depends on: #18261 - [ ] depends on: #18236 - [ ] depends on: #18197 [](https://gitpod.io/from-referrer/) | WIP t-algebra blocked-by-other-PR t-category-theory merge-conflict | 874/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/ExteriorPower.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/FunctorOfNatTrans.lean,Mathlib/Algebra/Category/ModuleCat/Pseudofunctor.lean | 6 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 15269 | kkytola | feat: Add ENNReal.floor | A right-continuous floor function on `ENNReal`. --- - [x] depends on: #13938 - [ ] depends on: #15773 (general type class for `ENat`-valued floor functions) - [x] depends on: #15380 (topology on `ENat` is needed to state right continuity of the floor function) [](https://gitpod.io/from-referrer/) | t-algebra blocked-by-other-PR t-order merge-conflict awaiting-author | 445/0 | Mathlib.lean,Mathlib/Algebra/Order/EFloor.lean,Mathlib/Data/ENNReal/Floor.lean,Mathlib/Data/Nat/Lattice.lean | 4 | 18 | ['YaelDillies', 'github-actions', 'kkytola', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 15773 | kkytola | feat: Add type class for ENat-valued floor functions | This PR adds a type class for extended natural number -valued floor functions. This is split off from #15269, where the suggestions were to make the floor function on ENNReal ENat-valued and to have an API mimicling FloorSemirings. Besides ENNReal, at least ENNRat would naturally satisfy the general type class. --- Two things are worth noting: * To fully mimic `FloorSemiring` API, also ceiling functions need to be added. The plan is to do that in a later PR. * The PR introduces the class `CastNatENatClass` to ensure that `natCast` and a coercion from `ENat` behave in the natural and order-respecing manner. This feels a little ad hoc, but such assumptions are needed for general `ENat`-valued floor functions to behave well. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-order | 231/0 | Mathlib.lean,Mathlib/Algebra/Order/EFloor.lean,Mathlib/Data/ENat/Basic.lean | 3 | 5 | ['YaelDillies', 'github-actions', 'kkytola', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 3251 | kmill | feat: deriving `LinearOrder` for simple enough inductive types | Uses the same machinery underlying the `Fintype` derive handler to derive a lexicographical `LinearOrder` for non-recursive inductive types that have no indices. In principle more complicated types can have `LinearOrder`s, but that would require a more sophisticated implementation. --- - [x] depends on: #3198 [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author t-meta | 82/0 | Mathlib.lean,Mathlib/Tactic/DeriveLinearOrder.lean | 2 | 5 | ['ChrisHughes24', 'kim-em', 'kmill', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 16120 | awainverse | feat(ModelTheory/Algebra/Ring/Basic): Ring homomorphisms are a `StrongHomClass` for the language of rings | Adds an `IsAlgebraic` instance to the language of rings Adds a `StrongHomClass` instance to the type of ring homomorphisms between rings with `CompatibleRing` structures --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra RFC t-logic | 34/13 | Mathlib/ModelTheory/Algebra/Ring/Basic.lean | 1 | 10 | ['ChrisHughes24', 'YaelDillies', 'awainverse', 'github-actions', 'jcommelin'] | nobody | 1 year ago | unknown | unknown |
| 20459 | Ruben-VandeVelde | chore: fix names of roots_C_mul_X_{add,sub}_C_of_IsUnit | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 11/5 | Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Roots.lean | 2 | 2 | ['eric-wieser', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 20527 | trivial1711 | refactor(Topology/UniformSpace/Completion): more descriptive names for `α → Completion α` | - We rename the various maps `α → Completion α` in order to make their names more consistent. - Let `α` be a uniform space. We rename the uniformly continuous function `α → Completion α` from `UniformSpace.Completion.coe'` to `UniformSpace.Completion.coe`. - Let `α` be a uniform additive group. We rename the additive group homomorphism `α →+ Completion α` from `UniformSpace.Completion.toCompl` to `UniformSpace.Completion.coeAddHom`. - Let `α` be a uniform ring. The ring homomorphism `α →+* Completion α` is called `UniformSpace.Completion.coeRingHom`; its name is unchanged. - Let `α` be a normed space over a field `𝕜`. We rename the linear isometry `α →ₗᵢ[𝕜] Completion α` from `UniformSpace.Completion.toComplₗᵢ` to `UniformSpace.Completion.coeₗᵢ`. - Let `α` be a normed space over a field `𝕜`. We rename the continuous linear map `α →L[𝕜] Completion α` from `UniformSpace.Completion.toComplL` to `UniformSpace.Completion.coeL`. - Let `α` be a normed additive group. We rename the norm preserving homomorphism `NormedAddGroupHom α (Completion α)` from `NormedAddCommGroup.toCompl` to `UniformSpace.Completion.coeNormedAddGroupHom`. - We analogously rename some other theorems. - We add some trivial theorems (all of which are proved by `rfl`) that state that the functions considered above are equal. We give all of them the `simp` and `norm_cast` attributes. - We add a new theorem `UniformSpace.Completion.coeAddHom_eq_coe` that states that `UniformSpace.Completion.coeAddHom` and `UniformSpace.Completion.coe` are equal as functions. - We similarly add a new theorem `UniformSpace.Completion.coeRingHom_eq_coe`. - We rename the theorem `UniformSpace.Completion.coe_toComplₗᵢ` to `UniformSpace.Completion.coeₗᵢ_eq_coe`. - We rename the theorem `UniformSpace.Completion.coe_toComplL` to `UniformSpace.Completion.coeL_eq_coe`. - We similarly add a new theorem `UniformSpace.Completion.coeNormedAddGroupHom_eq_coe`. - We change all occurrences of the string `((↑) : α → Completion α)` to `(coe : α → Completion α)` or just `coe`. - We put the statements of some theorems into simp normal form by using the plain function `coe` rather than the homomorphisms that carry more structure. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 130/92 | Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Complex/AbsMax.lean,Mathlib/Analysis/Complex/Liouville.lean,Mathlib/Analysis/InnerProductSpace/Completion.lean,Mathlib/Analysis/Normed/Group/HomCompletion.lean,Mathlib/Analysis/Normed/Module/Completion.lean,Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean,Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean,Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean,Mathlib/Topology/Algebra/UniformRing.lean,Mathlib/Topology/Category/UniformSpace.lean,Mathlib/Topology/MetricSpace/Completion.lean,Mathlib/Topology/UniformSpace/Completion.lean | 17 | 4 | ['eric-wieser', 'github-actions', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 17739 | Aaron1011 | feat(Topology/Order/DenselyOrdered): prove Not (IsOpen) for intervals | Prove that Iic/Ici/Ioc/Ico/Icc intervals are not open in densely ordered topologies with no min/max element --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology new-contributor | 27/0 | Mathlib/Topology/Order/DenselyOrdered.lean | 1 | 8 | ['github-actions', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 18474 | astrainfinita | perf: lower the priority of `*WithOne.to*` instances | --- From #7873. [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra t-data | 9/2 | Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Data/Int/Cast/Defs.lean,Mathlib/Data/Nat/Cast/Defs.lean | 3 | 7 | ['astrainfinita', 'eric-wieser', 'github-actions', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 20656 | Komyyy | feat(Mathlib/Geometry/Manifold/VectorBundle/Sphere): convert orthogonal smooth `M → 𝕊ⁿ` & `M → ℝⁿ⁺¹` to smooth `M → T𝕊ⁿ` | Current Mathlib has no easy way to define function from a manifold to tangent bundles of sphere: `T𝕊ⁿ`. This PR gives this: `sphereTangentMap`. This convert orthogonal smooth `M → 𝕊ⁿ` & `M → ℝⁿ⁺¹` to smooth `M → T𝕊ⁿ`. I also proved that if `f : M → 𝕊ⁿ` & `g : M → ℝⁿ⁺¹` are smooth then `sphereTangentMap` of `f` & `g` is smooth too. --- ⚠ **CAUTION** I formalized this in my spare time. I don't have the energy to maintain the PR, but I create this PR so this may helps everyone. The only one thing to do is proof cleanup. TODO: - [x] `contDiff_uncurry_stereoInvFunAux` & `coe_sphere_comp_stereoInvFun` may have to be moved to `Mathlib.Geometry.Manifold.Instances.Sphere`. - [ ] Proof cleanup. Current proof may be redundant and ugly. [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-differential-geometry | 246/6 | Mathlib.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/VectorBundle/Sphere.lean | 3 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 15711 | znssong | feat(Combinatorics/SimpleGraph): Some lemmas about walk, cycle and Hamiltonian cycle | --- These lemmas are separated from the `meow-sister/BondyChvatal` branch and will be needed for the proof of the Bondy-Chvátal theorem. - [x] depends on: #15536 - [x] depends on: #16294 | merge-conflict awaiting-author t-combinatorics new-contributor | 407/3 | Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Path.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean | 4 | 22 | ['Rida-Hamadani', 'YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'znssong'] | nobody | 1 year ago | unknown | unknown |
| 15720 | znssong | feat(SimpleGraph): The Bondy-Chvátal theorem | The proof of the Bondy-Chvátal theorem, with Dirac's theorem and Ore's theorem as its corollary. - [x] depends on: #15536 - [ ] depends on: #15711 - [ ] depends on: #15578 | merge-conflict blocked-by-other-PR t-combinatorics new-contributor | 903/3 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/BondyChvatal.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Path.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean,Mathlib/Dynamics/FixedPoints/Basic.lean,Mathlib/Dynamics/FixedPoints/Increasing.lean | 8 | 3 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot'] | YaelDillies | 1 year ago | unknown | unknown |
| 18629 | tomaz1502 | feat(Computability.Timed): Formalization of runtime complexity of List.merge | This PR adds the formalization of the runtime complexity of the merge function, defined in `Data/List/Sort`. Requires: https://github.com/leanprover-community/mathlib4/pull/15450 References: - Previous PR on mathlib3: https://github.com/leanprover-community/mathlib3/pull/14494/ - First discussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/BSc.20Final.20Project/near/220647062 - Second disussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Formalization.20of.20Runtime.20Complexity.20of.20Sorting.20Algorithms/near/284184450 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author new-contributor | 186/0 | Mathlib.lean,Mathlib/Computability/Timed/InsertionSort.lean,Mathlib/Computability/Timed/Merge.lean | 3 | 2 | ['github-actions', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 8362 | urkud | feat(Asymptotics): define `ReflectsGrowth` | --- - [x] depends on: #8349 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 268/0 | Mathlib.lean,Mathlib/Analysis/Asymptotics/ReflectsGrowth.lean | 2 | 14 | ['YaelDillies', 'fpvandoorn', 'github-actions', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 6692 | prakol16 | feat: disjoint indexed union of local homeomorphisms | Add disjoint indexed union of local equivs and local homeomorphisms --- This is leading up to PRing some things related to covering spaces that I wrote a long time ago in lean 3 but never submitted a PR for. Note that this was converted using mathport. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 126/0 | Mathlib/Logic/Equiv/PartialEquiv.lean,Mathlib/Topology/PartialHomeomorph.lean | 2 | 4 | ['alreadydone', 'github-actions', 'winstonyin'] | nobody | 1 year ago | unknown | unknown |
| 18461 | hannahfechtner | feat: left and right common multiples mixins | add mixins for left and right common multiples. These carry the data of what factors are used to create the common multiples --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 78/0 | Mathlib/Algebra/Group/Defs.lean | 1 | 13 | ['github-actions', 'hannahfechtner', 'jcommelin', 'kbuzzard', 'kim-em', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 19291 | PieterCuijpers | feat(Algebra/Order/Hom): add quantale homomorphism | Definition of quantale homomorphisms as functions that are both semigroup homomorphisms and complete lattice homomorphisms. --- - [x] depends on: #19810 - [x] depends on: #19811 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 209/0 | Mathlib.lean,Mathlib/Algebra/Order/Hom/Quantale.lean,scripts/noshake.json | 3 | 29 | ['PieterCuijpers', 'YaelDillies', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 19352 | hrmacbeth | chore: change some `nlinarith`s to `linear_combination`s | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 13/13 | Archive/Imo/Imo2021Q1.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Mathlib/Analysis/Normed/Group/AddCircle.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Ring/Units.lean,Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean,Mathlib/NumberTheory/Modular.lean | 8 | 4 | ['github-actions', 'hrmacbeth', 'leanprover-bot'] | nobody | 1 year ago | unknown | unknown |
| 20372 | jvlmdr | feat(MeasureTheory/Function): Add ContinuousLinearMap.bilinearCompLp(L) | Introduce ContinuousLinearMap.bilinearCompLp and bilinearCompLpL. Generalize eLpNorm_le_eLpNorm_mul_eLpNorm theorems to include constant C in bound condition. --- Expect this may be useful for defining tempered distributions from functions in `L^p`. The definitions more or less follow `ContinuousLinearMap.compLp...`. Names are loosely analogous to `ContinuousLinearMap.bilinearComp` and `SchwartzMap.bilinLeftCLM`. Note: I preferred the spelling `hpqr : p⁻¹ + q⁻¹ = r⁻¹` with `f` in `L^p` and `g` in `L^q` to `hpqr : 1 / p = 1 / q + 1 / r`. It's easier to obtain from `ENNReal.IsConjExponent` too. A few questions: - [ ] I defined `bilinear{Left,Right}LpL` in addition to `bilinearCompLpL` because `LinearMap.mkContinuous₂` is marked as `noncomputable` and `LinearMap.mkContinuous` is not. Is this worth the extra definitions? (Note: This is not visible in the source due to `noncomputable section`.) - [ ] Should I use `C : ℝ` instead of `C : NNReal` for `eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm'`? - [ ] Is it going to be painful to have `[Fact (1 ≤ p)] [Fact (1 ≤ q)] [Fact (1 ≤ r)]`? I don't think there's a way to avoid it though. Maybe providing specialized versions for `p.IsConjExponent q` with `L^1`? Naming: - [ ] Is it satisfactory to add a `'` to the `eLpNorm_le_eLpNorm_mul_eLpNorm ` definitions in `CompareExp.lean` where `≤ ‖f x‖ * ‖g x‖` has been replaced with `≤ C * ‖f x‖ * ‖g x‖`? These could replace the existing theorems, although I don't want to break backwards compatibility. There are 5 instances: `eLpNorm_le_eLpNorm_top_mul_eLpNorm'`, `eLpNorm_le_eLpNorm_mul_eLpNorm_top'`, `eLpNorm'_le_eLpNorm'_mul_eLpNorm''`, `eLpNorm_le_eLpNorm_mul_eLpNorm_of_nnnorm'`, `eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm'` (I'm not sure why the existing theorem `eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm` has an internal `'`) - [ ] Is `bilinearLeftLpL` a suitable name? Other options: `bilinearCompLpLeftL`, `bilinearCompLeftLpL`, `bilinLeftLpL` (analogous to `SchwartzMap.bilinLeftCLM`) [](https://gitpod.io/from-referrer/) | merge-conflict t-measure-probability new-contributor | 203/40 | Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSpace.lean | 2 | 1 | ['github-actions'] | nobody | 1 year ago | unknown | unknown |
| 2605 | eric-wieser | chore: better error message in linarith | On this mwe: ```lean import Mathlib.Tactic.Linarith example (s : Set ℕ) (h : s = s) : 0 ≤ 1 := by linarith ``` this now indicates where the internal error is coming from. Is there a better way of chaining errors than this? --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 12/1 | Mathlib/Tactic/Linarith/Preprocessing.lean | 1 | 3 | ['Vierkantor', 'harahu', 'kim-em', 'mo271'] | nobody | 1 year ago | unknown | unknown |
| 11837 | trivial1711 | feat: completion of a uniform multiplicative group | Multiplicativize `Topology.Algebra.GroupCompletion`. That is, rewrite it in the multiplicative setting and recover the original results using `@[to_additive]`. - Because `@[to_additive]` doesn't work with `noncomputable section` (https://github.com/leanprover/lean4/pull/2610), some instances with `@[to_additive]` need to be explicitly marked with `noncomputable instance`. - One might be tempted to multiplicativize this definition from `Topology.Algebra.GroupCompletion`: ```lean instance [UniformSpace α] [Add α] : Add (Completion α) := ⟨Completion.map₂ (· + ·)⟩ ``` to this: ```lean @[to_additive] instance [UniformSpace α] [Mul α] : Mul (Completion α) := ⟨Completion.map₂ (· * ·)⟩ ``` However, as Eric Wieser pointed out, doing so would create a bad diamond with the definition ```lean instance [UniformSpace α] [TopologicalRing α] [UniformAddGroup α] [Ring α] : Mul (Completion α) := ⟨curry <| (denseInducing_coe.prod denseInducing_coe).extend ((↑) ∘ uncurry (· * ·))⟩ ``` in `Topology.Algebra.UniformRing`. How should this diamond be resolved? Well, the definition of multiplication that uses `curry <| (denseInducing_coe.prod denseInducing_coe).extend ((↑) ∘ uncurry (· * ·))` is the "correct" one. For example, it yields the correct result if `α` is `ℚ`, unlike the definition that uses `Completion.map₂ (· * ·)`. (This is because `Completion.map₂` yields junk values if used on a function which is not uniformly continuous. Note, however, that if multiplication on `α` *is* uniformly continuous, then `Completion.map₂ (· * ·)` and `curry <| (denseInducing_coe.prod denseInducing_coe).extend ((↑) ∘ uncurry (· * ·))` are propositionally equal.) So, following Eric's suggestion, we remove the definition that uses `Completion.map₂ (· * ·)`, and generalize the other definition to any uniform space with a multiplication operation: ```lean @[to_additive] noncomputable instance [UniformSpace α] [Mul α] : Mul (Completion α) := ⟨curry <| (denseInducing_coe.prod denseInducing_coe).extend ((↑) ∘ uncurry (· * ·))⟩ ``` This requires slightly modifying some of the proofs in `Topology.Algebra.GroupCompletion`. For example, suppose that `α` is a uniform group. Since we can no longer use `Completion.continuous_map₂`, it becomes more efficient to prove that the multiplication, inversion, and division operations on `Completion α` are uniformly continuous *before* we prove that `Completion α` is a group. - Previously, `Topology.Algebra.GroupCompletion` had an instance: ```lean instance [UniformSpace α] [Sub α] : Sub (Completion α) := ... ``` Naively multiplicativizing this would yield ```lean @[to_additive] instance [UniformSpace α] [Inv α] : Inv (Completion α) := ... ``` Unfortunately, this would conflict with `Topology.Algebra.UniformField`, which already instantiates `Inv (Completion α)` when `α` is a uniform field. Instead, we use two different `instance` declarations. (If `α` is an additive group, then this instantiates `Neg (Completion α)` twice, and the instances are syntactically equal.) ```lean @[to_additive] noncomputable instance [UniformSpace α] [Group α] : Inv (Completion α) := ... instance [UniformSpace α] [Neg α] : Neg (Completion α) := ... ``` This avoids the bad diamond (because a uniform field can never be a `Group`) while remaining backward compatible. Note that the `@[to_additive]` is necessary here, because it maintains the link between the additive setting and multiplicative setting. We use a similar method to instantiate `Div (Completion α)`. - Some definitions in this file involve a module structure on `α`. We leave these as is and do not attempt to multiplicativize them at all. - The instance of `DistribMulAction` must be multiplicativized to an instance of `MulDistribMulAction` manually. Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Completion.20of.20a.20uniform.20multiplicative.20group --- # (Small) Issue Recall the following trick that this pull request uses to define inversion and negation on uniform spaces. The idea is that we define negation on the completion of any uniform space that has a negation operation, but we define inversion on only the completion of a uniform space that has the structure of a multiplicative group. We do this to avoid creating a bad diamond with the inversion operation on a uniform field. ```lean @[to_additive] noncomputable instance {α : Type*} [UniformSpace α] [Group α] : Inv (Completion α) := ... instance {α : Type*} [UniformSpace α] [Neg α] : Neg (Completion α) := ... ``` Now, suppose that we want to prove `coe_inv_of_group` (resp. `coe_neg`), which states that the coercion `α → Completion α` commutes with inversion (resp. negation). In the current version of this pull request, `coe_inv_of_group` (resp. `coe_neg`) only applies to uniform multiplicative (resp. additive) groups. However, we do not use the fact that multiplication (resp. addition) on `α` is uniformly continuous to prove it. We only use the fact that inversion (resp. negation) is continuous. So, what we really want is to have more general statements that look like this: ```lean theorem coe_inv_of_group {α : Type*} [UniformSpace α] [Group α] [ContinuousInv α] : ... theorem coe_neg {α : Type*} [UniformSpace α] [Neg α] [ContinuousNeg α] : ... ``` Note that `coe_inv_of_group` needs the assumption `[Group α]`, because otherwise inversion is not defined on `Completion α` at all. However, `coe_neg` does not need the analogous assumption `[AdditiveGroup α]`. The question is: If `coe_inv_of_group` and `coe_neg` are written in this more general form, how can we link them using `@[to_additive]`? Here is one option, but it obviously leaves something to be desired. ```lean @[to_additive coe_neg_do_not_use_this_use_the_more_general_version] theorem coe_inv_of_group {α : Type*} [UniformSpace α] [Group α] [ContinuousInv α] : ... theorem coe_neg {α : Type*} [UniformSpace α] [Neg α] [ContinuousNeg α] : ... ``` Co-authored-by: Eric Wieser --- [](https://gitpod.io/from-referrer/) | WIP t-algebra merge-conflict help-wanted t-topology | 342/217 | Mathlib/Analysis/InnerProductSpace/Completion.lean,Mathlib/Analysis/Normed/Group/HomCompletion.lean,Mathlib/Analysis/Normed/Module/Completion.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean,Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean,Mathlib/Topology/Algebra/UniformField.lean,Mathlib/Topology/Algebra/UniformMulAction.lean,Mathlib/Topology/Algebra/UniformRing.lean | 9 | 14 | ['eric-wieser', 'github-actions', 'trivial1711'] | nobody | 1 year ago | unknown | unknown |
| 12670 | trivial1711 | feat: completion of a nonarchimedean multiplicative group | We prove that the completion of a nonarchimedean multiplicative group is a nonarchimedean multiplicative group. --- - [x] depends on: #12669 - [ ] depends on: #11837 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra t-topology blocked-by-other-PR | 358/228 | Mathlib/Analysis/InnerProductSpace/Completion.lean,Mathlib/Analysis/Normed/Group/HomCompletion.lean,Mathlib/Analysis/Normed/Module/Completion.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean,Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean,Mathlib/Topology/Algebra/UniformField.lean,Mathlib/Topology/Algebra/UniformMulAction.lean,Mathlib/Topology/Algebra/UniformRing.lean | 9 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 9449 | hmonroe | feat: Add Turing machine with the quintet definition (TMQ) and a chainable step function for each TM type | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author | 458/1 | Mathlib/Computability/TuringMachine.lean,Mathlib/Logic/PartArith.lean | 2 | 8 | ['eric-wieser', 'github-actions', 'hmonroe'] | nobody | 1 year ago | unknown | unknown |
| 19697 | quangvdao | feat(BigOperators/Fin): Sum/product over `Fin` intervals | This PR adds new theorems about the sum/product of some vector over `Fin` intervals. One example is: ``` @[to_additive] theorem prod_Iic_succ (i : Fin n) : ∏ j ∈ Iic i.succ, v j = (∏ j ∈ Iic i.castSucc, v j) * v i.succ ``` --- - [x] depends on: #20360 This is in preparation for reworking `finSigmaFinEquiv` and `finProdFinEquiv` in #19013. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 87/12 | Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Data/Fintype/Fin.lean,Mathlib/Order/Interval/Finset/Fin.lean | 3 | 20 | ['Ruben-VandeVelde', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib4-dependent-issues-bot', 'quangvdao'] | nobody | 1 year ago | unknown | unknown |
| 19353 | hrmacbeth | chore: golf some term/rw proofs using `linear_combination` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 47/102 | Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Mathlib/Analysis/Convex/Slope.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean,Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean | 7 | 5 | ['github-actions', 'grunweg', 'hrmacbeth', 'leanprover-bot'] | grunweg | 1 year ago | unknown | unknown |
| 20248 | peabrainiac | feat(Topology/Compactness): first-countable locally path-connected spaces are delta-generated | Shows that all first-countable locally path-connected spaces are delta-generated (so in particular all normed spaces and convex subsets thereof are), and that delta-generated spaces are equivalently generated by the unit interval or standard simplices. --- - [ ] depends on: #21616 In principle, this should be close to all that's required to show that all simplicial complexes and CW-complexes are delta-generated; I just haven't done it yet because I'm not sure which file to best do it in. [](https://gitpod.io/from-referrer/) | blocked-by-other-PR large-import new-contributor merge-conflict awaiting-author t-topology | 1189/813 | Mathlib.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean,Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean,Mathlib/Topology/Connected/LocPathConnected.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/Homotopy/HSpaces.lean,Mathlib/Topology/Path.lean | 9 | 22 | ['YaelDillies', 'github-actions', 'kbuzzard', 'mathlib4-dependent-issues-bot', 'peabrainiac'] | nobody | 1 year ago | unknown | unknown |
| 10678 | adri326 | feat(Topology/UniformSpace): prove that a uniform space is completely regular | Provides the pseudometric definition of a uniform space (for any open set `s` and `x ∈ s`, there exists a finite family of pseudometric spaces on `X` and an `ε > 0`, such that the intersection of the balls of these pseudometric spaces is a subset of `s`), and uses it to prove that `UniformSpace X` implies `CompletelyRegularSpace X`. --- This PR aims to close the gap of pi-base's theorem [T345](https://topology.pi-base.org/theorems/T000345), which says that topological groups are completely regular. We already have a proof that topological groups are uniform, but it turns out that we do not have any connection between `UniformSpace X` and `CompletelyRegularSpace X`. There is an equivalence between `UniformSpace X` and `CompletelyRegularSpace X`: the former implies the latter, and the latter implies *the existence of* the former. This PR provides the first half of this equivalence. The construction of the pseudometric definition is based on N. Bourbaki, Chapter 9, Theorem 4.1 The proof that a uniform space is completely regular is based on [the outline on mathexchange](https://math.stackexchange.com/questions/494718/how-to-prove-that-every-uniform-space-is-completely-regular). I tried to outline the major steps of the different proofs inside of comments; I can happily be more verbose to clear up any confusion. See [the corresponding Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Some.20missing.2C.20accessible.2C.20topology.20results) for more context. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 332/0 | Mathlib.lean,Mathlib/Topology/UniformSpace/Basic.lean,Mathlib/Topology/UniformSpace/CompletelyRegular.lean | 3 | 6 | ['ADedecker', 'adri326'] | ADedecker | 1 year ago | unknown | unknown |
| 18785 | erdOne | feat(CategoryTheory): command that generates instances for `MorphismProperty` | Co-authored-by: Calle Sönne --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory t-meta | 369/0 | Mathlib.lean,Mathlib/CategoryTheory/MorphismProperty/Tactic.lean,MathlibTest/AddMorphismPropertyInstances.lean,scripts/noshake.json | 4 | 19 | ['alexjbest', 'chrisflav', 'erdOne', 'github-actions', 'grunweg', 'jcommelin', 'joelriou'] | nobody | 1 year ago | unknown | unknown |
| 16311 | madvorak | feat(Computability): regular languages are context-free | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-computability | 72/0 | Mathlib.lean,Mathlib/Computability/Chomsky.lean,Mathlib/Computability/ContextFreeGrammar.lean | 3 | 7 | ['Rida-Hamadani', 'YaelDillies', 'github-actions', 'madvorak'] | nobody | 1 year ago | unknown | unknown |
| 19943 | AlexLoitzl | feat(Computability): Add Chomsky Normal Form Grammar and translation | - Define Chomsky normal form grammars - Add language-preserving translation between context-free grammars and Chomsky normal form grammars Co-authored-by: Martin Dvorak martin.dvorak@matfyz.cz --- [](https://gitpod.io/from-referrer/) | merge-conflict t-computability awaiting-author new-contributor | 3151/0 | Mathlib.lean,Mathlib/Computability/ChomskyNormalForm/Basic.lean,Mathlib/Computability/ChomskyNormalForm/EmptyElimination.lean,Mathlib/Computability/ChomskyNormalForm/LengthRestriction.lean,Mathlib/Computability/ChomskyNormalForm/TerminalRestriction.lean,Mathlib/Computability/ChomskyNormalForm/Translation.lean,Mathlib/Computability/ChomskyNormalForm/UnitElimination.lean,Mathlib/Computability/ContextFreeGrammar.lean | 8 | 59 | ['AlexLoitzl', 'YaelDillies', 'github-actions', 'kim-em', 'madvorak'] | nobody | 1 year ago | unknown | unknown |
| 17005 | YnirPaz | feat(SetTheory/Cardinal/Regular): define singular cardinals | Define singular cardinals and prove basic lemmas about them. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-set-theory | 94/1 | Mathlib.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Ordinal/Basic.lean | 3 | 28 | ['YaelDillies', 'YnirPaz', 'github-actions', 'vihdzp'] | nobody | 1 year ago | unknown | unknown |
| 21501 | sksgurdldi | feat(List): add sum_zipWith_eq_finset_sum | ### **Description:** This PR adds the lemma `List.sum_zipWith_eq_finset_sum` to `Mathlib.Algebra.BigOperators.Group.Finset.Basic`. #### **Statement:** The sum of the `zipWith` operation on two lists equals the sum of applying the operation to corresponding elements of the two lists, indexed over the minimum of their lengths. #### **Formal Statement:** ```lean lemma sum_zipWith_eq_finset_sum [Inhabited α] [Inhabited β] [AddCommMonoid γ] {op : α → β → γ} (l : List α) (m : List β) : (List.zipWith op l m).sum = ∑ x ∈ (Finset.range (Nat.min l.length m.length)), op (l[x]!) (m[x]!) ``` #### **Remarks:** - This lemma provides a useful equivalence between `List.zipWith` and summation over a `Finset.range` indexed by `Nat.min l.length m.length`. - It can be helpful in algebraic manipulations involving list-based summations. #### **Dependencies:** No additional dependencies. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra new-contributor | 43/0 | Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean | 1 | 1 | ['github-actions', 'j-loreaux'] | nobody | 1 year ago | unknown | unknown |
| 12054 | adomani | feat: auto-bugs | This PR introduces a linter for suggesting bugs in tactics. See * #12077 * #12083 * #12084 for some bugs exposed by the test suite. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 737/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/MetaTesting.lean,scripts/noshake.json,test/MetaTesting.lean | 5 | 20 | ['adomani', 'eric-wieser', 'github-actions', 'joneugster', 'kim-em'] | joneugster | 1 year ago | unknown | unknown |
| 5062 | adomani | feat(Tactic/Prune + test/Prune): add `prune` tactic, for removing unnecessary hypotheses | This tactic removes very conservatively all local declarations that 1. do not appear in the main goal, 2. do not appear in a declaration that appears in the main goal, 3. ... and so on recursively. The main motivation for this tactic is that all available variables in the current `namespace/section` appear in the goal state, not just the ones that are needed for the statement to type-check. Using `prune` mitigates this situation. The tactic also admits an optional natural number argument: `prune n` removes all variables that have not appeared at the `(n+1)`-st stage in the above list. Thus, `prune 0` only leaves the variables needed for the statement to type-check. Also, for sufficiently large `n`, `prune n` is a synonym for `prune`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/substitute.20for.20.60include.2Fomit.60.3F) --- [](https://gitpod.io/from-referrer/) | merge-conflict modifies-tactic-syntax awaiting-author t-meta | 181/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Prune.lean,test/Prune.lean | 4 | 5 | ['adomani', 'j-loreaux', 'kmill'] | nobody | 1 year ago | unknown | unknown |
| 21433 | grunweg | chore: change more lemmas to be about enorm instead of nnnorm | --- - [x] depends on: #21782 - [x] depends on: #21783 (and this PR modifies the file split, and file splits are painful to merge over) [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author carleson t-measure-probability | 172/71 | Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean | 9 | 18 | ['RemyDegenne', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib4-dependent-issues-bot'] | nobody | 1 year ago | unknown | unknown |
| 20454 | urkud | chore(TangentCone): review names | Also add some `@[simp]` attrs. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis | 201/139 | Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/Deriv/Abs.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Equiv.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/Calculus/MeanValue.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean,Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean,Mathlib/MeasureTheory/Integral/FundThmCalculus.lean | 25 | 3 | ['github-actions', 'sgouezel', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 16550 | awainverse | feat(ModelTheory): A typeclass for languages expanding other languages | Defines `L.Expands L'` to consist of a privileged injective inclusion, `L'.Inclusion L`, from `L'` to `L`, corresponding to one language being a subset of the other in set-theoretic foundations. Replaces `L.IsOrdered` with `L.Expands Language.order` and `L.OrderLHom` with `Language.order.Inclusion L` Redefines `leSymb` in terms of `Language.order.Inclusion L` Deletions: - `FirstOrder.Language.IsOrdered` - `FirstOrder.Language.OrderLHom` - `instance : IsOrdered Language.order` - `sum.instIsOrdered` --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 97/43 | Mathlib/ModelTheory/LanguageMap.lean,Mathlib/ModelTheory/Order.lean | 2 | 9 | ['YaelDillies', 'awainverse', 'github-actions'] | nobody | 1 year ago | unknown | unknown |
| 14313 | grhkm21 | feat(RepresentationTheory/FdRep): FdRep is a full subcategory of Rep | ``` /-- Equivalence between `FDRep` and the full subcategory of finite dimensional `Rep`. -/ def equivFiniteDimensional : FDRep k G ≌ FullSubcategory (fun V : Rep k G ↦ FiniteDimensional k V) ``` | merge-conflict t-algebra t-category-theory new-contributor | 47/8 | Mathlib/RepresentationTheory/FDRep.lean | 1 | 19 | ['github-actions', 'grhkm21', 'joelriou', 'kim-em', 'mathlib-bors'] | nobody | 1 year ago | unknown | unknown |
| 10823 | alexkeizer | feat: convert curried type functions into uncurried type functions | Adds a conversion `TypeFun.ofCurried : CurriedTypeFun.{u, v} n -> TypeFun.{u, v} n`, where `CurriedTypeFun.{u,v} n` is a (def-eq) abbreviation for `Type u -> ... -> Type u -> Type v`, i.e., the type of *curried* functions taking `n` arguments of type `Type u` to return an element of `Type v`, and `TypeFun.{u, v} n` is an abbreviation for `TypeVec.{u} n -> Type v`. It is generally more idiomatic to define type functions with multiple arguments in the curried style, but in the QPF development we use the uncurried equivalent `TypeVec n -> Type _`. Thus, having a canonical conversion from curried functions to uncurried gives us a canonical way to ask if a curried type function, say `Sum` is a QPF (namely, "is there an instance of `MvQPF (TypeFun.ofCurried Sum)`"). --- This is code ported from https://github.com/alexkeizer/QpfTypes, where this conversion is crucial in presenting a high-level interface, in terms of idiomatic, curried, type functions to users, while being built on QPFs (and thus, uncurried typefunctions) underneath. There is also a conversion in the other direction, from uncurried to curried, which I've decided to PR later, to keep this PR smaller and hopefully easier to review. - [x] depends on: #10818 (all changes to `Fin2.lean` are part of 10818, not the current PR) [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 66/0 | Mathlib.lean,Mathlib/Data/TypeFun.lean | 2 | 9 | ['YaelDillies', 'alexkeizer', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 1 year ago | unknown | unknown |
| 13648 | urkud | feat(Topology/Module): generalize `ContinuousLinearMap.compSL` | Generalize `ContinuousLinearMap.compSL` to topological vector spaces. --- - [ ] depends on: #15217 This PR is not polished yet, but the main statement is there. @ADedecker This answers a question I asked you on Zulip a few months ago. [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict awaiting-author t-topology t-analysis | 23/18 | Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean | 2 | 5 | ['fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'urkud'] | nobody | 1 year ago | unknown | unknown |
| 14060 | YnirPaz | feat(SetTheory/Ordinal/Clubs): define club sets and prove basic properties | Create a file where club sets are defined and their basic properties are proven. I also created a new recursion principle for ordinals, bounded recursion. --- - [ ] depends on: #19189 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR new-contributor t-logic | 315/3 | Mathlib.lean,Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Club.lean,Mathlib/SetTheory/Ordinal/Topology.lean | 6 | 93 | ['YaelDillies', 'YnirPaz', 'alreadydone', 'dupuisf', 'github-actions', 'mathlib4-dependent-issues-bot', 'vihdzp', 'zeramorphic'] | nobody | 1 year ago | unknown | unknown |
| 20636 | eric-wieser | feat: multiplication of intervals in rings | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 36/1 | Mathlib/Algebra/Order/Interval/Basic.lean | 1 | 16 | ['Timeroot', 'YaelDillies', 'eric-wieser', 'github-actions'] | nobody | 11 months ago | unknown | unknown |
| 16000 | YaelDillies | feat: Croot-Sisask Almost Periodicity | Almost periodicity is nowadays a standard tool in additive combinatorics. From LeanAPAP --- - [ ] depends on: #15443 [](https://gitpod.io/from-referrer/) | t-combinatorics t-analysis blocked-by-other-PR | 0/0 | 0 | 4 | ['github-actions', 'leanprover-community-mathlib4-bot', 'mergify'] | nobody | 11 months ago | unknown | unknown | |
| 22340 | sinhp | feat(CategoryTheory): Locally Cartesian Closed Categories (Beck-Chevalley Conditions) | Building on top of the API of `ExponentiableMorphism` in #22321, we state and prove Beck-Chevalley conditions. This will be crucial for our development of polynomial functors along exponentiable morphisms.
Co-authored-by: Emily Riehl |
WIP blocked-by-other-PR t-category-theory large-import merge-conflict | 1144/24 | Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Comma/Over/Sections.lean,Mathlib/CategoryTheory/Galois/Examples.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Basic.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/BeckChevalley.lean,docs/references.bib | 8 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 11 months ago | unknown | unknown |
| 21959 | BGuillemet | feat(Topology/ContinuousMap): Stone-Weierstrass theorem for MvPolynomial | Add the subalgebra of multivariate polynomials and prove it separates points, on the same model as `ContinuousMap/Polynomial.lean`. Prove the Stone-Weierstrass theorem and some variations for multivariate polynomials. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology new-contributor | 285/1 | Mathlib.lean,Mathlib/Topology/ContinuousMap/MvPolynomial.lean,Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean | 3 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 18470 | astrainfinita | perf: lower the priority of `Normed*.to*` instances | --- From #7873. [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra t-analysis | 28/0 | Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean | 2 | 9 | ['astrainfinita', 'github-actions', 'jcommelin', 'leanprover-bot'] | nobody | 11 months ago | unknown | unknown |
| 16944 | YnirPaz | feat(SetTheory/Cardinal/Cofinality): lemmas about limit ordinals and cofinality | Prove that a singular cardinal has a limit aleph index and that a limit ordinal and positive cofinality. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-set-theory | 18/0 | Mathlib/SetTheory/Cardinal/Cofinality.lean | 1 | 8 | ['YnirPaz', 'github-actions', 'vihdzp'] | nobody | 11 months ago | unknown | unknown |
| 17368 | Felix-Weilacher | feat(Topology/Baire/BaireMeasurable): add the Kuratowski-Ulam theorem | Add the Kuratowski-Ulam theorem, which one can think of as a "Fubini" for Baire category. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 187/1 | Mathlib/MeasureTheory/MeasurableSpace/Basic.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Topology/Baire/BaireMeasurable.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/GDelta/Basic.lean | 5 | 6 | ['Felix-Weilacher', 'github-actions', 'urkud'] | nobody | 11 months ago | unknown | unknown |
| 8767 | eric-wieser | refactor(Cache): tidy lake-manifest parsing in Cache | This now respects local copies of Mathlib dependencies (though in practice these invalidate the *online* cache because to point to local copies of Mathlib, the hash for `lakefile.lean` and `lake-manifest.json` is first invalidated). --- - [x] depends on: #11492 [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 49/49 | Cache/Hashing.lean,Cache/IO.lean,lake-manifest.json | 3 | 8 | ['digama0', 'eric-wieser', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 11 months ago | unknown | unknown |
| 15578 | znssong | feat(Function): Fixed points of function `f` with `f(x) >= x` | We added some lemmas of fixed points of function `f` with `f(x) >= x`, where `f : α → α` is a function on a finite type `α`. This will be needed in proof of Bondy-Chvátal theorem. --- See also branch `meow-sister/BondyChvatal`. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis new-contributor | 82/0 | Mathlib.lean,Mathlib/Dynamics/FixedPoints/Basic.lean,Mathlib/Dynamics/FixedPoints/Increasing.lean | 3 | 32 | ['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'urkud', 'vihdzp', 'znssong'] | nobody | 11 months ago | unknown | unknown |
| 22660 | Ruben-VandeVelde | chore: follow naming convention around Group.IsNilpotent | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 133/67 | Mathlib/GroupTheory/Frattini.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/SpecificGroups/ZGroup.lean | 3 | 1 | ['github-actions'] | nobody | 11 months ago | unknown | unknown |
| 13999 | adomani | feat: a linter to flag potential confusing conventions | Currently, the linter flags all uses of * `a - b` where `a b : Nat`; * `a / b` where `a b : Nat` or `a b : Int`; * `a / 0` more or less whenever the type of `a` has a `0` and a division. This comes up often when starting to use Lean and hopefully the flag can help mitigate initial confusions. When the local context contains the relevant inequality/divisibility hypothesis, the linter is quiet. A recent [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/not.20understanding.20deliberate.20error.20with.20.60ring.60.20over.20.E2.84.95/near/445879310) --- To make sure that the linter does not produce errors, #14007 activates the linter on "all" of mathlib. The expectation is that no error is thrown, just warnings. [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 251/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/Papercut.lean,MathlibTest/Papercut.lean | 4 | 24 | ['Julian', 'YaelDillies', 'adomani', 'eric-wieser', 'github-actions'] | nobody | 11 months ago | unknown | unknown |
| 19013 | quangvdao | feat(Algebra/BigOperators/Fin): Add `finSigmaFinEquiv` | This PR adds `finSigmaFinEquiv` which is the equivalence `(i : Fin m) × Fin (n i) ≃ Fin (∑ i, n i)`. This is the dependent version of `finProdFinEquiv`. CI should be passing, but there are two things I'd like feedback on: 1. When defining the mappings, I have to consider `m = 0` separately. Is there a more uniform definition? 2. I'm proving this as a step toward defining `Fin.join`, which is the analogue of `List.join`. I can now technically define `Fin.join` as: ``` variable {a : Fin n → ℕ} {α : (i : Fin n) → (j : Fin (a i)) → Sort*} def join (v : (i : Fin n) → (j : Fin (a i)) → α i j) (k : Fin (∑ i, a i)) : α (finSigmaFinEquiv.invFun k).1 (finSigmaFinEquiv.invFun k).2 := v (finSigmaFinEquiv.invFun k).1 (finSigmaFinEquiv.invFun k).2 ``` but this looks horrible. This highly motivates refactoring `invFun` as two new definitions: ``` def func1 {n : ℕ} (a : Fin n → ℕ) (k : Fin (∑ i, a i)) : Fin n := sorry def func2 {n : ℕ} (a : Fin n → ℕ) (k : Fin (∑ i, a i)) : Fin (a (func1 a k)) := sorry ``` I'm not sure what to call these functions. The analogues in the non-dependent case are `divNat` and `modNat`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 92/16 | Mathlib/Algebra/BigOperators/Fin.lean | 1 | 14 | ['YaelDillies', 'eric-wieser', 'github-actions', 'quangvdao'] | nobody | 11 months ago | unknown | unknown |
| 19189 | YnirPaz | feat(SetTheory/Ordinal/Arithmetic): order isomorphism between omega and the natural numbers | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-set-theory | 44/0 | Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean | 2 | 21 | ['YaelDillies', 'YnirPaz', 'github-actions', 'vihdzp'] | nobody | 11 months ago | unknown | unknown |
| 19227 | adomani | fix(CI): unwrap `lake test` in problem matcher | ... and also add a `#guard_msgs` in `AssertImported` test, so that `lake test` properly fails. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/CI.3A.20noisy.20.22test.20mathlib.22/near/483126955) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author CI | 9/20 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,MathlibTest/AssertImported.lean | 5 | 2 | ['bryangingechen', 'github-actions'] | nobody | 11 months ago | unknown | unknown |
| 15774 | kkytola | feat: Topology on `ENat` | This PR may contain some results that are not in the PR that adds a toppology on `ENat`. --- The immediate motivation is to be able to make the right continuity statement of the extended floor function on `ENNReal`, when this floor function is made `ENat`valued as suggested in the PR review of #15269. The API here is modelled on the early parts of [the corresponding ENNReal file](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Instances/ENNReal.html#top), although much of this case is more trivial. - [x] depends on: #15380 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology t-order | 161/9 | Mathlib/Data/ENat/Basic.lean,Mathlib/Topology/Instances/ENat.lean | 2 | 4 | ['YaelDillies', 'github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 11 months ago | unknown | unknown |
| 20222 | eric-wieser | feat: generalize lemmas about derivatives | Rather than creating a huge diff by shuffling things around, this generalizes everything in-place and swaps between `section`s for topological and normed vector spaces. The rationale for this approach is that: * we may further generalize the results of this file, and this avoids us jumbling up the order multiple times unnecessarily. * this greatly reduces the chance of merge conflicts --- - [ ] depends on: #21065 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-analysis | 554/50 | Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,MathlibTest/Recall.lean | 3 | 8 | ['adomani', 'eric-wieser', 'github-actions', 'leanprover-bot', 'mathlib4-dependent-issues-bot'] | nobody | 11 months ago | unknown | unknown |
| 21018 | markimunro | feat(Data/Matrix): add file with key definitions and theorems about elementary row operations | Prove that each elementary row operation is equivalent to a multiplication by an elementary matrix, has another row operation which inverts it, and that each elementary matrix has a left inverse.
This is a very large PR and I understand it will take time. This is my first one and will likely have issues but I will be ready to answer questions/fix them as soon as possible.
Co-authored-by: Christopher Lynch |
t-data enhancement new-contributor merge-conflict awaiting-author | 1230/0 | Mathlib.lean,Mathlib/Data/Matrix/ElementaryRowOperations.lean,Mathlib/Data/Matrix/GaussianElimination.lean,Mathlib/Data/Matrix/GaussianEliminationOld,Mathlib/Data/Matrix/oldnames,et --hard 18533caba32,lean-toolchain | 7 | 17 | ['chrisflav', 'eric-wieser', 'github-actions', 'j-loreaux', 'markimunro'] | nobody | 11 months ago | unknown | unknown |
| 23514 | eric-wieser | refactor: smooth over Lattice/LinearOrder inheritance | This fixes the forgetful inheritance in `CompleteLinearOrder` and `ConditionallyCompleteLinearOrder`, which previously did not carry `compare` fields. (edit: moved to #23515) The following is the inheritance diagram before, where the dotted lines are manual instances. Note that every lattice typeclass that extends `LinearOrder` has to implement another dotted line edge, and remember to copy all the necessary data fields. ```mermaid graph TD LinearOrder --> Min,Max; LinearOrder --> PartialOrder; Lattice --> PartialOrder; CompleteLinearOrder --> Lattice; ConditionallyCompleteLinearOrder --> Lattice; LinearOrder-.-> Lattice; CompleteLinearOrder -.-> LinearOrder; ConditionallyCompleteLinearOrder -.-> LinearOrder; ``` This change introduces two new auxiliary typeclasses, to encapsulate these troublesome edges. `LinearOrderedLattice` can be thought of as `LinearOrder`, but with `sup`/`inf` instead of `min`/`max`. This is crucial, because it ensures the duplicate fields are merged in `extends CompleteLattice X, LinearOrderedLattice X`, which would not be the case for `extends CompleteLattice X, LinearOrder X`. The result is: ```mermaid graph TD LinearOrder --> Min,Max; LinearOrder --> LinearOrderBase; LinearOrderBase --> PartialOrder; Lattice --> PartialOrder; LinearOrderedLattice -.-> LinearOrder; LinearOrderedLattice --> LinearOrderBase; LinearOrderedLattice --> Lattice; CompleteLinearOrder --> LinearOrderedLattice; ConditionallyCompleteLinearOrder --> LinearOrderedLattice; ``` --- - [ ] depends on: #23515 - [ ] [](https://gitpod.io/from-referrer/) | merge-conflict | 85/66 | Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Order/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Lattice.lean | 7 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 11 months ago | unknown | unknown |
| 22810 | pechersky | feat(Counterexamples): metric space not induced by norm | Because the distance is not homogeneous --- [](https://gitpod.io/from-referrer/) - [x] depends on: #22845 | merge-conflict WIP t-topology t-analysis | 202/1 | Counterexamples.lean,Counterexamples/NotBoundedSMulMetricSpace.lean,Mathlib.lean,Mathlib/Analysis/Normed/PiNat.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean,Mathlib/Topology/MetricSpace/Polish.lean | 6 | 21 | ['eric-wieser', 'github-actions', 'loefflerd', 'mathlib4-dependent-issues-bot', 'pechersky'] | nobody | 11 months ago | unknown | unknown |
| 13124 | astrainfinita | chore: remove `CovariantClass` and `ContravariantClass` | Lean cannot handle `CovariantClass` and `ContravariantClass` correctly - TC slowness - [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/TC.20slowness) - https://github.com/leanprover-community/mathlib4/issues/6646#issuecomment-1691792488 - It may also have made #6326 fail. - Needs a weird hack to find instance: #9252 --- - [x] depends on: #13154 [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 602/486 | Mathlib/Algebra/AddConstMap/Basic.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/Algebra/Group/Submonoid/Pointwise.lean,Mathlib/Algebra/Group/UniqueProds/Basic.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Group/Action.lean,Mathlib/Algebra/Order/Group/DenselyOrdered.lean,Mathlib/Algebra/Order/Group/Units.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean,Mathlib/Algebra/Order/GroupWithZero/WithZero.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/OrderDual.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Ring/Subring/Pointwise.lean,Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean,Mathlib/Analysis/SumOverResidueClass.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/GroupTheory/OrderOfElement.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/Topology/Algebra/Order/LiminfLimsup.lean | 37 | 6 | ['MichaelStollBayreuth', 'astrainfinita', 'github-actions', 'leanprover-bot', 'mathlib4-dependent-issues-bot'] | nobody | 11 months ago | unknown | unknown |
| 19275 | eric-wieser | fix: if nolint files change, do a full rebuild | Otherwise CI will succeed when removing entries from the file, but fail later when someone changes something unrelated. --- [](https://gitpod.io/from-referrer/) | merge-conflict delegated | 8/0 | lakefile.lean | 1 | 20 | ['YaelDillies', 'adomani', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-bors'] | nobody | 10 months ago | unknown | unknown |
| 15212 | victorliu5296 | feat: Add fundamental theorem of calculus-2 for Banach spaces | add the Mean Value Theorem for Banach spaces to the library and include reference for the theorem statement This theorem states that if `f : X → Y` is differentiable along the line segment from `a` to `b`, then the change in `f` equals the integral of its derivative along this path. This extends the mean value theorem to Banach spaces. This can be used for the eventual proof of the Newton-Kantorovich theorem with 1 constant contained inside the added reference. Here is the discussion on Zulipchat: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Contributing.20FTC-2.20for.20Banach.20spaces | t-measure-probability new-contributor merge-conflict awaiting-author t-analysis | 60/1 | Mathlib/MeasureTheory/Integral/FundThmCalculus.lean | 1 | 3 | ['github-actions', 'hrmacbeth', 'victorliu5296'] | nobody | 10 months ago | unknown | unknown |
| 22888 | plp127 | perf: replace `Lean.Expr.swapBVars` with a better? implementation | Replaces `Lean.Expr.swapBVars` with a version that traverses the expression. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 14/12 | Mathlib/Tactic/FunProp/ToBatteries.lean | 1 | 23 | ['eric-wieser', 'github-actions', 'joneugster', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'plp127'] | eric-wieser and joneugster | 10 months ago | unknown | unknown |
| 22579 | kvanvels | doc(Topology/Defs/Induced): fix comments on three functions related to RestrictGenTopology | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-topology documentation awaiting-author | 10/9 | Mathlib/Topology/Defs/Induced.lean,Mathlib/Topology/RestrictGen.lean | 2 | 4 | ['github-actions', 'kvanvels', 'leanprover-community-bot-assistant', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 21488 | imbrem | feat(CategoryTheory/Monoidal): premonoidal categories | Add support for premonoidal categories --- Still want to add support for: - Premonoidal braided/symmetric categories - The monoidal coherence theorem, which I've already ported in my `discretion` library - The `coherence` tactic, which should work fine for premonoidal categories too but wanted to get this in front of reviewers ASAP to make sure my general approach was alright [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory new-contributor | 900/361 | Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean,Mathlib/CategoryTheory/Bicategory/End.lean,Mathlib/CategoryTheory/GradedObject/Monoidal.lean,Mathlib/CategoryTheory/Localization/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/CategoryTheory/Monoidal/End.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Opposite.lean,Mathlib/CategoryTheory/Monoidal/Transport.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/MonoidalComp.lean,MathlibTest/StringDiagram.lean | 21 | 9 | ['YaelDillies', 'github-actions', 'grunweg', 'imbrem', 'kim-em', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 21525 | sinhp | feat(CategoryTheory): Locally Cartesian Closed Categories (Prelim) | This PR defines the basic preliminaries for defining locally cartesian closed categories (LCCCs). In particular, using the calculus of mates we define certain natural isomorphisms involving `Over.star` and `Over.pullback` which will be crucial in defining the right adjoint to the pullback functor in the development of LCCCs. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory large-import | 338/24 | Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Galois/Examples.lean | 3 | 13 | ['b-mehta', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'sinhp'] | nobody | 10 months ago | unknown | unknown |
| 22319 | sinhp | feat(CategoryTheory): Locally Cartesian Closed Categories (Sections Right Adjoint) | we define the `Over.sections` functor in the file `CategoryTheory.Comma.Over.Sections` and prove that it is a right adjoint to the `Over.star`, thereby solving an existing TODO in `Over.pullback` file. The `sections` functor is used to define the right adjoint to the pullback functor `Over.pullback` in the development of LCCCs. Moreover, the rest of added lemmas and theorems to `CategoryTheory.Comma.Over.Pullback` are crucial for the development of LCCCs in the next PR. --- - [ ] depends on: #21525 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory large-import | 547/24 | Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Comma/Over/Sections.lean,Mathlib/CategoryTheory/Galois/Examples.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 22321 | sinhp | feat(CategoryTheory): Locally Cartesian Closed Categories (Definition) | This PR defines locally cartesian closed categories in terms of existence of the pushforward functors (right adjoint to the pullback functor) for all morphisms. We develop basic API and prove the following:
1. Existence of the pushforward functors is equivalent to cartesian closed slices.
2. Any locally cartesian closed category with a terminal object is cartesian closed.
3. The slices of a locally cartesian closed category are locally cartesian closed.
Some of the content is based on the project of formalization of polynomial functors at the Trimester "Prospect of Formal Mathematics" at the Hausdorff Institute (HIM) in Bonn. https://github.com/sinhp/Poly
I found this implementation of locally cartesian closed categories amenable to polynomial functors formalization.
Co-authored-by: Emily Riehl |
merge-conflict blocked-by-other-PR t-category-theory large-import | 812/24 | Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Comma/Over/Sections.lean,Mathlib/CategoryTheory/Galois/Examples.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Basic.lean | 6 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 19425 | hrmacbeth | perf: gcongr forward-reasoning adjustment | This PR changes the "forward-reasoning" component of `gcongr`, rendering it more efficient, particularly in problems with a large number of variables/hypotheses in the context.
Previously `gcongr` attempted to match *every* `LocalDecl` against *every* node in the parse tree using *each* of the five implemented `@[gcongr_forward]` mini-tactics: matching directly, matching after applying `symm`, matching after applying `le_of_lt`, etc etc.
The new algorithm filters out the non-Prop `LocalDecl`s, and also adjusts the `@[gcongr_forward]` extensions so that, rather than re-apply the relevant lemmas (`symm`, `le_of_lt`, etc) at every node in the parse tree, the lemmas are applied in advance to the `LocalDecl`s and the result (if successful) stored.
The performance effect on mathlib as a whole is miniscule, but it speeds up the profiler's count of "tactic execution of Mathlib.Tactic.GCongr" in the newly-added test from 257 ms to 47 ms, and has a similar effect on real-life examples in an analysis project of mine.
Co-authored-by: Mario Carneiro |
merge-conflict awaiting-author | 130/59 | Mathlib/Order/Lattice.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GCongr/ForwardAttr.lean,MathlibTest/GCongr/inequalities.lean | 4 | 17 | ['Vierkantor', 'github-actions', 'hrmacbeth', 'leanprover-bot', 'leanprover-community-bot-assistant'] | Vierkantor | 10 months ago | unknown | unknown |
| 20873 | vbeffara | feat(Topology/Covering): path lifting and homotopy lifting | This proves the existence and uniqueness of path and homotopy lifts through covering maps. --- I tried to separate as much of the proof as possible into separate PRs (which are already in Mathlib now), but the proof here relies on a monolithic construction of an explicit lift along a well-chosen subdivision, in `partial_lift`, with associated definitions. Only one standalone lean file added. An older WIP PR #10084 by Junyan Xu @alreadydone proves similar results using a very similar construction for path lifting, with a different argument to obtain continuity for homotopy lifting. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology new-contributor | 281/1 | Mathlib.lean,Mathlib/Topology/Covering/Basic.lean,Mathlib/Topology/Covering/Lift.lean | 3 | 9 | ['alreadydone', 'github-actions', 'grunweg', 'vbeffara'] | nobody | 10 months ago | unknown | unknown |
| 22817 | peabrainiac | feat(CategoryTheory/Sites): local sites | Defines local sites and shows that sheaves of types on them form a local topos, in that the global sections functor `Sheaf.Γ` has a right adjoint `Sheaf.codisc` that is fully faithful. --- - [x] depends on: #22816 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 263/0 | Mathlib.lean,Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Products.lean,Mathlib/CategoryTheory/Limits/Types.lean,Mathlib/CategoryTheory/Sites/GlobalSections.lean,Mathlib/CategoryTheory/Sites/LocalSite.lean,Mathlib/CategoryTheory/Sites/Sheaf.lean | 6 | 4 | ['github-actions', 'joelriou', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 16314 | astrainfinita | chore(Data/Quot): deprecate `ind*'` APIs | --- - [x] depends on: #16264 [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 247/287 | Counterexamples/CliffordAlgebraNotInjective.lean,Mathlib/Algebra/Colimit/Module.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean,Mathlib/CategoryTheory/ConnectedComponents.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/CategoryTheory/Subobject/FactorThru.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Computability/Reduce.lean,Mathlib/Computability/Tape.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/Multiset/MapFold.lean,Mathlib/Data/Multiset/ZeroCons.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/Data/Setoid/Partition.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/GroupTheory/Complement.lean,Mathlib/GroupTheory/Congruence/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/Hom.lean,Mathlib/GroupTheory/Coset/Basic.lean,Mathlib/GroupTheory/Coset/Defs.lean,Mathlib/GroupTheory/FreeAbelianGroup.lean,Mathlib/GroupTheory/GroupAction/Basic.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/PGroup.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/GroupTheory/PresentedGroup.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/GroupTheory/SchurZassenhaus.lean,Mathlib/GroupTheory/Sylow.lean,Mathlib/LinearAlgebra/Alternating/DomCoprod.lean,Mathlib/LinearAlgebra/Projectivization/Basic.lean,Mathlib/LinearAlgebra/Quotient/Basic.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean,Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Category/PartOrd.lean,Mathlib/Order/Filter/Germ/Basic.lean,Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Congruence/Basic.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Defs.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Valuation/Quotient.lean,Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean,Mathlib/Topology/Algebra/InfiniteSum/Module.lean,Mathlib/Topology/Separation/Basic.lean | 65 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 23509 | eric-wieser | refactor: Make ENNReal an abbrev | The `Coe` instance becomes `CoeTC` to match what we do for `WithTop` (such that the priority kicks in) Probably we could have both copies and things would be ok. --- [](https://gitpod.io/from-referrer/) This includes part of #23750 | merge-conflict t-data | 22/66 | Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/BigOperators.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/MeasureTheory/Integral/SetToL1.lean,Mathlib/MeasureTheory/Measure/Sub.lean,Mathlib/MeasureTheory/Measure/TightNormed.lean,Mathlib/Topology/MetricSpace/PartitionOfUnity.lean | 7 | 22 | ['eric-wieser', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'leanprover-community-mathlib4-bot', 'mattrobball', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 11455 | adomani | fix: unsqueeze simp, re Yaël's comments on #11259 | This PR reverts/simplifies some of the "squeeze `simp`" changes in #11259. See #11259 for context. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 3/6 | Mathlib/Algebra/Group/Conj.lean,Mathlib/Data/Seq/WSeq.lean | 2 | 8 | ['Ruben-VandeVelde', 'YaelDillies', 'grunweg', 'loefflerd', 'robertylewis', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 7325 | eric-wieser | chore: use preimageIso instead of defeq abuse for InducedCategory | This makes a few things slightly more verbose, but the type casts are now explicit in those places. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory awaiting-CI | 22/21 | Mathlib/CategoryTheory/EssentialImage.lean,Mathlib/CategoryTheory/Monoidal/Braided.lean,Mathlib/CategoryTheory/Monoidal/Subcategory.lean | 3 | 1 | ['grunweg'] | nobody | 10 months ago | unknown | unknown |
| 7874 | astrainfinita | chore: make `IsScalarTower A A B` and `IsScalarTower A B B` higher priority | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra awaiting-CI | 10/9 | Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Data/Rat/Cast/Defs.lean,Mathlib/GroupTheory/GroupAction/Ring.lean | 4 | 3 | ['astrainfinita', 'grunweg', 'leanprover-bot'] | nobody | 10 months ago | unknown | unknown |
| 13038 | adomani | feat: Mathlib weekly reports | This PR introduces a weekly cron job that computes a "global" report on the evolution of Mathlib in the previous week. It consists of * a CI workflow with a cron job that runs at minight on Sunday (`.github/workflows/mathlib_stats.yaml`); * a Lean file extracting a categorized list of "all" the declarations in Mathlib (`scripts/count_decls.lean`); * a bash file computing Git-diff-related information and collating the data from the Lean file (`scripts/mathlib_stats.sh`); * a convenience CI workflow that is triggered on adding the `test-ci` label and results in posting on the PR and on Zulip the report (`.github/workflows/mathlib_stats_label.yaml`). The second CI workflow is intended to be removed just before/right after the PR is ready to merge. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general) [Thread for the reports](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Mathlib.20weekly.20change.20report) --- [](https://gitpod.io/from-referrer/) | awaiting-author CI t-meta | 338/0 | .github/workflows/mathlib_stats.yaml,.github/workflows/mathlib_stats_label.yaml,scripts/count_decls.lean,scripts/mathlib_stats.sh | 4 | 10 | ['adomani', 'github-actions', 'grunweg', 'kim-em', 'kmill'] | nobody | 10 months ago | unknown | unknown |
| 5952 | eric-wieser | feat: add Qq wrappers for ToExpr | --- - [ ] depends on: #6699 (to appease the linter) [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-CI t-meta | 247/150 | Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/VecNotation.lean,Mathlib/Data/Matrix/Notation.lean,Mathlib/Tactic/DeriveToExpr.lean,Mathlib/Tactic/FBinop.lean,Mathlib/Tactic/ToExpr.lean,Mathlib/Util/Qq.lean,test/DeriveToExpr.lean,test/vec_notation.lean | 9 | 7 | ['eric-wieser', 'gebner', 'grunweg', 'leanprover-community-mathlib4-bot'] | nobody | 10 months ago | unknown | unknown |
| 15483 | astrainfinita | chore(GroupTheory/Coset): reduce defeq abuse | --- - [x] depends on: #15482 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 114/60 | Mathlib/GroupTheory/Commensurable.lean,Mathlib/GroupTheory/Coset.lean,Mathlib/GroupTheory/QuotientGroup.lean,Mathlib/LinearAlgebra/Alternating/DomCoprod.lean,Mathlib/MeasureTheory/Measure/Haar/Quotient.lean,Mathlib/Topology/Algebra/Group/Compact.lean | 6 | 14 | ['astrainfinita', 'eric-wieser', 'github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mattrobball', 'mergify', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 16594 | astrainfinita | perf: reorder `extends` and remove some instances in algebra hierarchy | --- [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra | 240/92 | Mathlib.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Associated/Basic.lean,Mathlib/Algebra/BigOperators/Ring/List.lean,Mathlib/Algebra/Field/Defs.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/Prod.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Order/AddGroupWithTop.lean,Mathlib/Algebra/Order/Field/Canonical/Defs.lean,Mathlib/Algebra/Order/Field/Defs.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/Algebra/Ring/Ext.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/Rat.lean,Mathlib/Algebra/Ring/SumsOfSquares.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/InnerProductSpace/Symmetric.lean,Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean,Mathlib/Data/Finset/NoncommProd.lean,Mathlib/Data/Int/Cast/Defs.lean,Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean,Mathlib/FieldTheory/SplittingField/Construction.lean,Mathlib/GroupTheory/Congruence/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/GroupTheory/Torsion.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/Order/Filter/Germ/Basic.lean,Mathlib/Order/Interval/Finset/Box.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/Coalgebra/Hom.lean,Mathlib/RingTheory/Ideal/Quotient.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean,Mathlib/Util/NoInstances.lean,scripts/noshake.json | 50 | 8 | ['astrainfinita', 'github-actions', 'grunweg', 'leanprover-bot'] | nobody | 10 months ago | unknown | unknown |
| 19467 | quangvdao | feat(MvPolynomial/Equiv): Add `MvPolynomial.finSuccEquivNth` | This PR adds `MvPolynomial.finSuccEquivNth`, which is the algebra isomorphism between `MvPolynomial (Fin (n + 1)) R` and `Polynomial (MvPolynomial (Fin n) R)` by identifying the `p`-th variable as the indeterminate.
This generalizes `MvPolynomial.finSuccEquiv` which is only for the `0`-th variable. The supporting theorems for the `Nth` version are identical to the current version, with the `Nth` version deduced from the former.
These changes require new definitions in `Finsupp/Fin`, which is a separate PR.
Co-authored-by: Yaël Dillies |
merge-conflict t-algebra blocked-by-other-PR | 541/163 | Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finsupp.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/Tuple/Basic.lean,Mathlib/Data/Finsupp/Fin.lean,scripts/nolints_prime_decls.txt | 7 | 9 | ['acmepjz', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'quangvdao'] | nobody | 10 months ago | unknown | unknown |
| 20313 | thefundamentaltheor3m | feat(Data/Complex/Exponential): prove some useful results about the complex exponential. | This PR proves two basic results about the complex exponential: * `abs_exp_mul_I (x : ℂ) : abs (Complex.exp (I * x)) = Real.exp (-x.im)` * `one_sub_rexp_re_le_abs_one_sub_cexp (x : ℂ) : 1 - Real.exp x.re ≤ Complex.abs (1 - Complex.exp x)` Both results were proved as part of the sphere packing project. There's a chance they're too specific for mathlib, but I thought they were worth PRing anyway. Would it also be a good idea to tag `abs_exp_mul_I` with `simp`? Feedback/suggestions welcome. Note: `one_sub_rexp_re_le_abs_one_sub_cexp` was proved by Bhavik Mehta @b-mehta --- [](https://gitpod.io/from-referrer/) | merge-conflict t-analysis new-contributor | 167/141 | Mathlib.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/ERealExp.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean,Mathlib/Data/Complex/Exponential/Defs.lean,Mathlib/Data/Complex/Exponential/Lemmas.lean,Mathlib/Data/Complex/ExponentialBounds.lean,Mathlib/Tactic/FunProp.lean,MathlibTest/Recall.lean,MathlibTest/positivity.lean | 10 | 12 | ['b-mehta', 'github-actions', 'kim-em', 'thefundamentaltheor3m', 'trivial1711'] | nobody | 10 months ago | unknown | unknown |
| 22698 | Kiolt | feat: notation for whisker(Left/Right)Iso | From Toric --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory toric | 175/113 | Mathlib/Algebra/Homology/Monoidal.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Bicategory/Basic.lean,Mathlib/CategoryTheory/Bicategory/Coherence.lean,Mathlib/CategoryTheory/Bicategory/Extension.lean,Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Strong.lean,Mathlib/CategoryTheory/Bicategory/SingleObj.lean,Mathlib/CategoryTheory/Closed/Functor.lean,Mathlib/CategoryTheory/Closed/Ideal.lean,Mathlib/CategoryTheory/Enriched/FunctorCategory.lean,Mathlib/CategoryTheory/GradedObject/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Center.lean,Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean,Mathlib/CategoryTheory/Monoidal/Preadditive.lean,Mathlib/CategoryTheory/Monoidal/Transport.lean,Mathlib/Tactic/CategoryTheory/BicategoricalComp.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Normalize.lean,Mathlib/Tactic/CategoryTheory/Bicategory/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/MonoidalComp.lean | 27 | 21 | ['Kiolt', 'YaelDillies', 'b-mehta', 'github-actions', 'leanprover-bot'] | nobody | 10 months ago | unknown | unknown |
| 19613 | madvorak | refactor(Combinatorics/Optimization/ValuedCSP): make only valid `FractionalOperation` possible | Originally `FractionalOperation` was any multiset (possible empty). Then `FractionalOperation.IsValid` said it was nonempty. Instead, I would like to make it nonempty by definition. As a result, empty/invalid fractional operation couldn't be declared at all. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 14/17 | Mathlib/Combinatorics/Optimization/ValuedCSP.lean | 1 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 20730 | kuotsanhsu | feat(LinearAlgebra/Matrix/SchurTriangulation): prove Schur decomposition/triangulation | `Matrix.schur_triangulation` shows that a matrix over an algebraically closed field is unitarily similar to an upper triangular matrix --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 317/2 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/LinearAlgebra/Matrix/SchurTriangulation.lean,Mathlib/Logic/Equiv/Basic.lean | 4 | 14 | ['eric-wieser', 'github-actions', 'kim-em', 'kuotsanhsu'] | nobody | 10 months ago | unknown | unknown |
| 19117 | eric-wieser | feat: derivatives of matrix operations | These are finally possible to state after #19108. However, a lot of bundled `ContinuousLinearMap`s are missing. --- - [x] depends on: #19108 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 336/22 | Mathlib.lean,Mathlib/Analysis/Calculus/Deriv/Matrix.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Matrix.lean | 4 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 12605 | astrainfinita | chore: attribute [induction_eliminator] | Add attribute [induction_eliminator] to `AdjoinRoot.induction_on` `ENat.recTopCoe` `ENNReal.recTopCoe` `Finset.induction` `Magma.AssocQuotient.induction_on` `ManyOneDegree.ind_on` `Module.Ray.ind` (and add `Orientation.ind` for `Orientation`, an abbrev of it. I wish that we do not need to add it in the future.) `Multiset.induction` `MvPolynomial.induction_on` `OnePoint.rec` `Opposite.rec'` `Ordinal.limitRecOn` `PartENat.casesOn` `Polynomial.induction_on'` `QuotientAddGroup.induction_on'` (and add `AddCircle.induction_on` for `AddCircle`, an abbrev of it. I wish that we do not need to add it in the future.) `QuotientGroup.induction_on'` (doesn't actually work) `Real.Angle.induction_on` `SimplexCategory.rec` `Trunc.induction_on` --- - [x] depends on: #13476 - [x] depends on: #13264 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 354/342 | Mathlib/Algebra/BigOperators/Associated.lean,Mathlib/Algebra/BigOperators/Group/Finset.lean,Mathlib/Algebra/BigOperators/Group/Multiset.lean,Mathlib/Algebra/BigOperators/Ring.lean,Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/GCDMonoid/Multiset.lean,Mathlib/Algebra/Group/Subgroup/Finite.lean,Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/Weights/Basic.lean,Mathlib/Algebra/Module/BigOperators.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/MvPolynomial/Derivation.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Eval.lean,Mathlib/Algebra/Polynomial/Induction.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Polynomial/PartialFractions.lean,Mathlib/Algebra/Polynomial/Smeval.lean,Mathlib/Algebra/Tropical/BigOperators.lean,Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean,Mathlib/AlgebraicTopology/SimplexCategory.lean,Mathlib/AlgebraicTopology/SplitSimplicialObject.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/Asymptotics/Asymptotics.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/Deriv/Polynomial.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Exposed.lean,Mathlib/Analysis/Fourier/AddCircle.lean,Mathlib/Analysis/NormedSpace/Exponential.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/PolynomialExp.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean,Mathlib/CategoryTheory/Filtered/Basic.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean,Mathlib/Combinatorics/SetFamily/Compression/Down.lean,Mathlib/Combinatorics/SetFamily/FourFunctions.lean,Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/DFinsupp/Basic.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finset/Lattice.lean,Mathlib/Data/Finset/NAry.lean,Mathlib/Data/Fintype/Sum.lean,Mathlib/Data/Multiset/Antidiagonal.lean,Mathlib/Data/Multiset/Basic.lean,Mathlib/Data/Multiset/Bind.lean,Mathlib/Data/Multiset/Fold.lean,Mathlib/Data/Multiset/Lattice.lean,Mathlib/Data/Multiset/Pi.lean,Mathlib/Data/Multiset/Powerset.lean,Mathlib/Data/Multiset/Sections.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Quot.lean,Mathlib/Data/Set/Pointwise/BigOperators.lean,Mathlib/FieldTheory/IntermediateField.lean,Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/RingedSpace/Basic.lean,Mathlib/Geometry/RingedSpace/OpenImmersion.lean,Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean,Mathlib/GroupTheory/Coset.lean,Mathlib/GroupTheory/NoncommPiCoprod.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/LinearAlgebra/Determinant.lean,Mathlib/LinearAlgebra/Eigenspace/Basic.lean,Mathlib/LinearAlgebra/FiniteDimensional.lean,Mathlib/LinearAlgebra/LinearIndependent.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Orientation.lean,Mathlib/LinearAlgebra/Projectivization/Basic.lean,Mathlib/LinearAlgebra/Ray.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/Logic/Hydra.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean,Mathlib/MeasureTheory/Function/L1Space.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Integral/Lebesgue.lean,Mathlib/MeasureTheory/Integral/Marginal.lean,Mathlib/MeasureTheory/Integral/MeanInequalities.lean,Mathlib/MeasureTheory/Integral/SetIntegral.lean,Mathlib/MeasureTheory/Measure/AddContent.lean | 140 | 14 | ['YaelDillies', 'astrainfinita', 'eric-wieser', 'github-actions', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 23859 | urkud | feat(Topology/../Order/Field): generalize to `Semifield` | .. from a linear ordered field to a linear ordered semifield--- - [ ] depends on: #23857 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 245/219 | Mathlib/Algebra/Order/Group/Pointwise/Interval.lean,Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean,Mathlib/Topology/Algebra/Order/Field.lean,Mathlib/Topology/Order/Basic.lean | 4 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 24219 | Paul-Lez | feat: linear independence of the tensor product of two linearly independent families | This is still WIP (the proofs are a little too long, and some lemmas need to be moved to other files!) From Toric --- [](https://gitpod.io/from-referrer/) | WIP t-algebra toric | 193/0 | Mathlib/LinearAlgebra/LinearIndependent/Tprod.lean | 1 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 23810 | b-reinke | chore(Order/Interval): generalize succ/pred lemmas to partial orders | Many lemmas in `Mathlib/Order/Interval/Set/SuccPred.lean`and `Mathlib/Order/Interval/Finset/SuccPred.lean` also work for partial orders. They are generalized in this PR by introducing different sections for `PartialOrder` and `LinearOrder` assumptions in the respective files. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-order | 231/89 | Mathlib/Order/Interval/Finset/SuccPred.lean,Mathlib/Order/Interval/Set/SuccPred.lean | 2 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 24285 | madvorak | chore(Algebra/*-{Category,Homology}): remove unnecessary universe variables | Discussions: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Call.20for.20help.3A.20technical.2F.20organisational.20debt/with/513620128 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Algebra.20and.20.60Type*.60/with/513558902 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Task.2026.3A.20Replace.20Type.20u.20by.20Type*.20wherever.20possible/with/513592993 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 542/916 | Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Field.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Central/Basic.lean,Mathlib/Algebra/Central/Defs.lean,Mathlib/Algebra/Central/TensorProduct.lean,Mathlib/Algebra/CharP/Pi.lean,Mathlib/Algebra/CharP/Quotient.lean,Mathlib/Algebra/CharP/Subring.lean,Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Finsupp.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/EuclideanDomain/Basic.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/Defs.lean,Mathlib/Algebra/Field/IsField.lean,Mathlib/Algebra/Field/MinimalAxioms.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/Field/Subfield/Defs.lean,Mathlib/Algebra/FreeNonUnitalNonAssocAlgebra.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Equiv/Finite.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Hom/End.lean,Mathlib/Algebra/Group/Hom/Instances.lean,Mathlib/Algebra/Group/Invertible/Basic.lean,Mathlib/Algebra/Group/Invertible/Defs.lean,Mathlib/Algebra/Group/Pi/Basic.lean,Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Group/TypeTags/Finite.lean,Mathlib/Algebra/Group/TypeTags/Hom.lean,Mathlib/Algebra/Group/Units/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/Algebra/Group/WithOne/Basic.lean,Mathlib/Algebra/Group/WithOne/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Pi.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/Invertible.lean,Mathlib/Algebra/GroupWithZero/NeZero.lean,Mathlib/Algebra/Lie/Abelian.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/CartanMatrix.lean,Mathlib/Algebra/Lie/CartanSubalgebra.lean,Mathlib/Algebra/Lie/Character.lean,Mathlib/Algebra/Lie/Classical.lean,Mathlib/Algebra/Lie/DirectSum.lean,Mathlib/Algebra/Lie/Free.lean,Mathlib/Algebra/Lie/Ideal.lean,Mathlib/Algebra/Lie/IdealOperations.lean,Mathlib/Algebra/Lie/Matrix.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean,Mathlib/Algebra/Lie/OfAssociative.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Lie/SkewAdjoint.lean,Mathlib/Algebra/Lie/Solvable.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/TensorProduct.lean,Mathlib/Algebra/Lie/UniversalEnveloping.lean,Mathlib/Algebra/Module/Basic.lean,Mathlib/Algebra/Module/CharacterModule.lean,Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/End.lean,Mathlib/Algebra/Module/Equiv/Opposite.lean,Mathlib/Algebra/Module/Lattice.lean,Mathlib/Algebra/Module/LinearMap/Basic.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/Algebra/Module/MinimalAxioms.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/Module/Opposite.lean,Mathlib/Algebra/Module/Pi.lean,Mathlib/Algebra/Module/Presentation/Differentials.lean,Mathlib/Algebra/Module/Presentation/Tensor.lean,Mathlib/Algebra/Module/Rat.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/MonoidAlgebra/Support.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/MvPolynomial/CommRing.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean | 182 | 22 | ['erdOne', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'madvorak', 'mattrobball'] | nobody | 10 months ago | unknown | unknown |
| 8370 | 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) --- [](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 | 10 months ago | unknown | unknown |
| 22583 | imathwy | feat: affinespace homeomorphism | There exists a homeomorphism (a continuous bijection with a continuous inverse) between an affine subspace s of a vector space V over a field 𝕜 and its direction s.direction , given a chosen point z ∈ s . --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 64/2 | Mathlib/Analysis/Normed/Group/AddTorsor.lean,Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/MulAction.lean | 4 | 6 | ['JovanGerb', 'eric-wieser', 'github-actions', 'grunweg'] | nobody | 10 months ago | unknown | unknown |
| 23593 | erdOne | feat(AlgebraicGeometry): the tilde construction is functorial | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebraic-geometry | 95/38 | Mathlib/AlgebraicGeometry/Modules/Sheaf.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean | 2 | 4 | ['chrisflav', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 21065 | eric-wieser | feat: generalize `tangentConeAt.lim_zero` to TVS | ... and then adjust the `variable`s down the rest of the file to make use of the generality. There are two key lemmas that this does not generalize, which would probably unlock the rest of the file: * `subset_tangentCone_prod_left` (and `_right`) * `zero_mem_tangentCone` --- - [ ] depends on: #20859 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 55/28 | Mathlib/Analysis/Calculus/TangentCone.lean | 1 | 16 | ['ADedecker', 'eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'urkud'] | nobody | 10 months ago | unknown | unknown |
| 22721 | grunweg | chore(MeasureTheory/Function/LpSeminorm/Basic): generalise more results to enorm classes | Done for the Carleson project. --- - depends on #22708 [](https://gitpod.io/from-referrer/) | merge-conflict WIP carleson t-measure-probability | 134/10 | Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 10 months ago | unknown | unknown |
| 14731 | adomani | feat: the repeated typeclass assumption linter | [#mathlib4 > recyclable variables @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/recyclable.20variables/near/451167963) also [#mathlib4 > Normed modules @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Normed.20modules/near/512242167) --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter large-import | 178/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter.lean,Mathlib/Tactic/Linter/DependentTypeclass.lean,MathlibTest/DependentTypeclass.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mattrobball'] | nobody | 10 months ago | unknown | unknown |
| 13649 | astrainfinita | chore: redefine `Nat.div2` `Nat.bodd` | The new definitions are faster than the old ones. `Nat.binaryRec` will be moved to batteries (https://github.com/leanprover-community/batteries/pull/799) or core (https://github.com/leanprover/lean4/pull/3756), so relevant contents are moved to a new file temporarily. --- - [x] depends on: #15567 - [x] depends on: #19666 [](https://gitpod.io/from-referrer/) | merge-conflict | 63/88 | Mathlib/Computability/Primrec.lean,Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Size.lean,Mathlib/Logic/Denumerable.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Equiv/Nat.lean | 8 | 15 | ['astrainfinita', 'digama0', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'urkud'] | digama0 | 10 months ago | unknown | unknown |
| 24549 | grunweg | feat: define embedded submanifolds, attempt 1 | Not meant to be merged (I think a different design is better); opening this so I can find this more easily. --- - [ ] depends on: #23040 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry blocked-by-other-PR | 1445/2 | Mathlib.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Splits.lean,Mathlib/Geometry/Manifold/Diffeomorph.lean,Mathlib/Geometry/Manifold/EmbeddedSubmanifold.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/MSplits.lean,Mathlib/LinearAlgebra/Prod.lean | 8 | 2 | ['leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 10 months ago | unknown | unknown |
| 22809 | b-reinke | feat: Category algebras and path algebras | This PR defines the category algebra of a linear category and path algebras of quivers. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-category-theory new-contributor | 218/0 | Mathlib/Algebra/Ring/Assoc.lean,Mathlib/CategoryTheory/Linear/CategoryAlgebra.lean,Mathlib/Combinatorics/Quiver/PathAlgebra.lean,Mathlib/Data/DFinsupp/BigOperators.lean | 4 | 2 | ['b-reinke', 'github-actions'] | nobody | 10 months ago | unknown | unknown |
| 14675 | adomani | dev: the repeated variable linter | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-linter | 71/0 | Mathlib/Tactic/Linter/Lint.lean | 1 | 1 | ['github-actions'] | nobody | 10 months ago | unknown | unknown |
| 14330 | Ruben-VandeVelde | chore: split Mathlib.Algebra.Star.Basic | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 446/331 | Mathlib.lean,Mathlib/Algebra/Module/LinearMap/Star.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/BigOperators.lean,Mathlib/Algebra/Star/Defs.lean,Mathlib/Algebra/Star/Lemmas.lean,Mathlib/Algebra/Star/Order.lean,Mathlib/Algebra/Star/Pi.lean,Mathlib/Algebra/Star/Pointwise.lean,Mathlib/Algebra/Star/Rat.lean,Mathlib/Algebra/Star/Regular.lean,Mathlib/Algebra/Star/StarRingHom.lean,Mathlib/Analysis/NormedSpace/LinearIsometry.lean,Mathlib/Data/Complex/Basic.lean,scripts/noshake.json | 15 | 3 | ['github-actions', 'grunweg', 'j-loreaux'] | nobody | 10 months ago | unknown | unknown |
| 8511 | eric-wieser | refactor(MeasureTheory/Measure/Haar/Basic): partially generalize to the affine case | Without a `Mul` version of `AddTorsor`, this generalization can only go so far. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-measure-probability | 52/46 | Mathlib/MeasureTheory/Measure/Haar/Basic.lean | 1 | 0 | [] | nobody | 10 months ago | unknown | unknown |
| 7994 | ericrbg | chore: generalize `LieSubalgebra.mem_map_submodule` | --- Not sure if we should rename to something like `mem_map_iff_mem_map_submodule` or not. [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-algebra | 16/4 | Mathlib/Algebra/Lie/SkewAdjoint.lean,Mathlib/Algebra/Lie/Subalgebra.lean | 2 | 3 | ['eric-wieser', 'ericrbg'] | nobody | 10 months ago | unknown | unknown |
| 6317 | eric-wieser | refactor(Data/Finsupp/Defs): make Finsupp.single defeq to Pi.single | By adding a `DecidableEq ι` argument to `Finsupp.single`, we remove the reference to `Classical.decEq ι` in the definition, which in turn means that when coerced to a function it is now defeq to `Pi.single`. This also brings it in line with `DFinsupp.single`. This does not go as far as making `Finsupp.single` computable. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-data | 269/226 | Mathlib/Algebra/BigOperators/Finsupp.lean,Mathlib/Data/Finsupp/AList.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Fintype.lean,Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/ToDFinsupp.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/LinearAlgebra/Basis.lean,Mathlib/LinearAlgebra/Finsupp.lean | 12 | 0 | [] | nobody | 10 months ago | unknown | unknown |
| 11524 | mcdoll | refactor: Introduce type-class for SchwartzMap | --- There are a lot of other refactors to do (`seminormAux` should have a nicer name and gobble up more theorems from `seminorm`), then one can prove `integrable` and friends with only `SchwartzMapClass`. [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis | 139/137 | Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Fourier/PoissonSummation.lean,Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean | 3 | 0 | [] | nobody | 10 months ago | unknown | unknown |
| 11003 | thorimur | chore: migrate to `tfae` block tactic | Migrates to the `tfae` block tactic syntax, eliminating uses of `tfae_have` and `tfae_finish`. --- - [ ] depends on: #11000 - [ ] depends on: #10991 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR t-meta | 1267/1081 | Mathlib/Algebra/Exact.lean,Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/CategoryTheory/Abelian/Exact.lean,Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean,Mathlib/FieldTheory/Galois.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/LinearAlgebra/Eigenspace/Zero.lean,Mathlib/MeasureTheory/Group/Action.lean,Mathlib/NumberTheory/FLT/Basic.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/Height.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/RingTheory/Bezout.lean,Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean,Mathlib/RingTheory/Flat/EquationalCriterion.lean,Mathlib/RingTheory/Henselian.lean,Mathlib/RingTheory/LocalRing/RingHom/Basic.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/SetTheory/Ordinal/Topology.lean,Mathlib/Tactic/TFAE.lean,Mathlib/Topology/Algebra/Group/SubmonoidClosure.lean,Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean,Mathlib/Topology/Category/Profinite/EffectiveEpi.lean,Mathlib/Topology/Category/Stonean/EffectiveEpi.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/LocallyClosed.lean,Mathlib/Topology/LocallyConstant/Basic.lean,Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Order/LeftRightNhds.lean,Mathlib/Topology/Separation.lean,Mathlib/Topology/UniformSpace/UniformConvergence.lean,scripts/noshake.json,test/tfae.lean | 42 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 10 months ago | unknown | unknown |
| 22488 | smmercuri | fix: lower priority for `UniformSpace.Completion.instSMul` | Following the introduction of the `WithVal` type synonym in #22055 the following instance takes a long time to synthesise in FLT, and times out in the default heartbeats ```lean import Mathlib namespace IsDedekindDomain.HeightOneSpectrum variable (A K : Type*) [CommRing A] [Field K] [Algebra A K] [IsFractionRing A K] [IsDedekindDomain A] (v : HeightOneSpectrum A) #synth SMul (v.adicCompletionIntegers K) (v.adicCompletion K) ``` The issue is that `UniformSpace.Completion.instSMul (v.adicCompletionIntegers K) (v.adicCompletion K)` now fires during the start of instance search (because we now have `UniformSpace (WithVal (v.valuation K))` whereas previously this would be `UniformSpace K`, which was not automatic), and this takes a long time to fail (leading to ~1400 entries in the trace). The first few lines of the new trace is ```lean [Meta.synthInstance] [5.512418] ✅️ SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▼ [] [0.000118] new goal SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000537] ✅️ apply UniformSpace.Completion.instSMul to SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.004411] ✅️ apply @WithVal.instSMul to SMul (↥(adicCompletionIntegers K v)) (WithVal (valuation K v)) ▶ [] [0.000765] ❌️ apply @GradedMonoid.GradeZero.smul to SMul (↥(adicCompletionIntegers K v)) K ▶ [] [0.000378] ✅️ apply @Algebra.toSMul to SMul (↥(adicCompletionIntegers K v)) K ▶ ... [] 1339 more entries... ▶ ``` Lowering the priority of `UniformSpace.Completion.instSMul` fixes this particular issue, leading to a trace that matches that seen prior to the introduction of `WithVal`: ```lean [Meta.synthInstance] [0.016405] ✅️ SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▼ [] [0.000119] new goal SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000491] ❌️ apply @GradedMonoid.GradeZero.smul to SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000403] ✅️ apply @Algebra.toSMul to SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000134] ❌️ apply inst✝⁴ to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000093] ❌️ apply inst✝⁵ to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000077] ❌️ apply inst✝⁷ to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000082] ❌️ apply inst✝⁹ to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000075] ❌️ apply inst✝¹² to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.000220] ❌️ apply Algebra.id to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [] [0.001015] ✅️ apply @ValuationSubring.instAlgebraSubtypeMem to Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [resume] [0.000038] propagating Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) to subgoal Algebra (↥(adicCompletionIntegers K v)) (adicCompletion K v) of SMul (↥(adicCompletionIntegers K v)) (adicCompletion K v) ▶ [check] [0.013358] ✅️ Algebra.toSMul [] result Algebra.toSMul ``` --- [](https://gitpod.io/from-referrer/) | awaiting-author t-topology FLT | 1/1 | Mathlib/Topology/Algebra/UniformMulAction.lean | 1 | 10 | ['github-actions', 'leanprover-bot', 'smmercuri', 'urkud'] | nobody | 9 months ago | unknown | unknown |
| 23546 | JovanGerb | feat(LinearAlgebra/AffineSpace/AffineSubspace): rename `AffineSubspace.mk'` to `Submodule.shift` | In addition to renaming, I've refactored the code a bit: - `mem_mk'_iff_vsub_mem` was obsolete since it was the same as `mem_mk'`, so I removed it (this is due to a change in the definition I made recently) - I added a nonempty instance for `shift` - I added a simp lemma that `shift` isn't equal to `⊥` (the empty affine subspace). I need this for the next point. - Edit: I'll leave this for a later PR. ~I proved a simp lemma that a `shift` is parallel to a `shift` if and only if the linear subspaces are the same.~ - I renamed `mk'_eq` to `shift_direction_eq_self `. - I renamed `eq_or_eq_secondInter_of_mem_mk'_span_singleton_iff_mem` to `eq_or_eq_secondInter_iff_mem_of_mem_shift_span_singleton`. I think it is better to put the `of_mem_mk'_span_singleton` at the end of the name. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-euclidean-geometry | 128/99 | Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Geometry/Euclidean/Basic.lean,Mathlib/Geometry/Euclidean/MongePoint.lean,Mathlib/Geometry/Euclidean/PerpBisector.lean,Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean | 7 | 4 | ['JovanGerb', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 9 months ago | unknown | unknown |
| 15654 | 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 [](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 | 9 months ago | unknown | unknown |
| 19315 | quangvdao | feat(Data/Finsupp/Fin): Add `Finsupp` operations on `Fin` tuple | This PR adds more analogues of operations on `Fin` tuples to the `Finsupp` setting. Before, there were only `Finsupp.cons` and `Finsupp.tail`. Now there are also `Finsupp.snoc`, `Finsupp.insertNth`, `Finsupp.init`, and `Finsupp.removeNth`. These all come with supporting lemmas. I also removed the porting comment about `succAboveCases` in `Data/Fin/Basic`, and added a lemma about `succAbove` in `Data/Fin/Tuple/Basic`. --- - [x] depends on: #20361 - [x] depends on: #20771 - [x] depends on: #20770 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 193/16 | Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finsupp.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Data/Finsupp/Fin.lean,Mathlib/RingTheory/MvPolynomial/Homogeneous.lean,scripts/nolints_prime_decls.txt | 6 | 44 | ['YaelDillies', 'github-actions', 'j-loreaux', 'kbuzzard', 'mathlib4-dependent-issues-bot', 'quangvdao'] | nobody | 9 months ago | unknown | unknown |
| 24155 | eric-wieser | feat: add a "rw_proc" for fin vectors | This seems a little nicer than an elaborator, since it means I can use the default elaboration rules to handle my first few variables. Ideally there would be something like ```lean rw_procQ {A : Type u} {B : A -> Type v} (a : A) (b : B a) : b = ?rhs => do /-- Context: u v : Level A : Q(Type u) B : Q($A -> Type v) a : Q($A) b : Q($B $a) rhs : Q($B $a) -- metavariable to assign |- MetaM Q($b = ?rhs) -/ ``` or ```lean rw_proc {A : Type u} {B : A -> Type v} (a : A) (b : B a) : b = ?rhs => do /-- Context: u v : Level A B a b : Expr rhs : MVarId |- MetaM Expr -/ ``` which would generate the code I wrote here --- [](https://gitpod.io/from-referrer/) | awaiting-author RFC t-data t-meta | 27/2 | Mathlib/Data/Fin/Tuple/Reflection.lean | 1 | 2 | ['github-actions', 'urkud'] | nobody | 9 months ago | unknown | unknown |
| 21276 | GabinKolly | feat(ModelTheory/Substructures): define equivalences between equal substructures | Define first-order equivalences between equal substructures, and prove related properties. --- This is some preparatory work for #18876 [](https://gitpod.io/from-referrer/) | awaiting-author t-logic | 62/0 | Mathlib/ModelTheory/Substructures.lean | 1 | 19 | ['GabinKolly', 'YaelDillies', 'fpvandoorn', 'github-actions', 'grunweg'] | nobody | 9 months ago | unknown | unknown |
| 24008 | meithecatte | chore(EpsilonNFA): replace manual lemmas with @[simps] | --- [](https://gitpod.io/from-referrer/) | t-computability awaiting-author new-contributor | 2/24 | Mathlib/Computability/EpsilonNFA.lean | 1 | 2 | ['YaelDillies', 'github-actions', 'urkud'] | nobody | 9 months ago | unknown | unknown |
| 24642 | grunweg | WIP-feat: add layercake formula for ENNReal-valued functions | Not much to see here yet; some significant amount of work remains. --- - [ ] depends on: #24643 - [ ] depends on: #24640 (based on that PR for simplicity) [](https://gitpod.io/from-referrer/) | merge-conflict WIP carleson t-analysis | 189/24 | Mathlib/Analysis/SpecialFunctions/Pow/Integral.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Integral/Layercake.lean | 4 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 9 months ago | unknown | unknown |
| 21712 | grunweg | chore: generalise more lemmas to `ContinuousENorm` | --- - [x] depends on: #21781 (minor drive-by clean-up) - [x] depends on: #21670 - [x] depends on: #22708 (extracted from this) - some parts depend on #21433 (or better: #22175); when the dependent PR has landed, I will re-assess whether to split these into a separate PR [](https://gitpod.io/from-referrer/) | merge-conflict carleson awaiting-CI t-measure-probability | 76/31 | Mathlib/Analysis/Normed/MulAction.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean | 4 | 5 | ['github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 9 months ago | unknown | unknown |
| 21375 | grunweg | WIP: generalise lemmas to ENorm | This work is part of (and a necessary pre-requisite for) the Carleson project. --- [](https://gitpod.io/from-referrer/) | WIP awaiting-CI t-measure-probability carleson merge-conflict | 471/221 | Mathlib/Analysis/NormedSpace/IndicatorFunction.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Function/LocallyIntegrable.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean,Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean,Mathlib/MeasureTheory/Function/LpSpace.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/Probability/Independence/Integrable.lean | 13 | 2 | ['fpvandoorn', 'grunweg'] | nobody | 9 months ago | unknown | unknown |
| 24618 | b-mehta | feat(Analysis): add Schur inequality and variants | Add Schur inequality and some of its common variants. TODO: - [x] add reference to source: https://www.cip.ifi.lmu.de/~grinberg/VornicuS.pdf - [ ] add other generalisations - [ ] move some of the lemmas elsewhere --- [](https://gitpod.io/from-referrer/) | WIP t-analysis | 145/0 | Mathlib/Analysis/Convex/Schur.lean | 1 | 16 | ['b-mehta', 'eric-wieser', 'github-actions'] | nobody | 9 months ago | unknown | unknown |
| 15115 | kkytola | feat: Generalize assumptions in liminf and limsup results in ENNReals | In a [review comment](https://github.com/leanprover-community/mathlib4/pull/13938#discussion_r1649744441) it was pointed out that results about liminf and limsup in ENNReal hold under milder assumptions. This PR does the generalization. --- This PR is split off from #13938, where the review comment was made. The changes needed for the suggested generalization were of different kind than the simple PR's content, justifying a separate PR. - [x] depends on: #13938 [](https://gitpod.io/from-referrer/) | t-order merge-conflict help-wanted awaiting-author t-topology | 215/27 | Mathlib/MeasureTheory/Measure/Portmanteau.lean,Mathlib/Order/LiminfLimsup.lean,Mathlib/Topology/Instances/ENNReal.lean | 3 | 8 | ['Ruben-VandeVelde', 'github-actions', 'grunweg', 'j-loreaux', 'kkytola', 'leanprover-community-mathlib4-bot'] | nobody | 9 months ago | unknown | unknown |
| 24957 | eric-wieser | feat: use ` binderNameHint` in sum_congr | Zulip thread: [#new members > Choosing dummy variable inside summation @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Choosing.20dummy.20variable.20inside.20summation/near/518492888)
Co-authored-by: Joachim Breitner |
t-algebra | 23/16 | Mathlib/Algebra/BigOperators/Expect.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/List/OfFn.lean,Mathlib/Data/Multiset/Count.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Multiset/MapFold.lean,Mathlib/Data/Option/Basic.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Sym/Basic.lean,Mathlib/Data/Sym/Sym2.lean | 13 | 1 | ['github-actions'] | nobody | 9 months ago | unknown | unknown |
| 23349 | BGuillemet | feat: add LocallyLipschitzOn.lipschitzOnWith_of_isCompact and two small lemmas about Lipschitz functions | Main feat (in Mathlib/Topology/EMetricSpace/Basic.lean): if a function `f` from an extended pseudometric space to a pseudometric space is locally Lipschitz on a compact subset `s`, then `f` is Lipschitz on `s`. The theorem is true only when the codomain of `f` is a pseudometric space, so it needs imports from Mathlib/Topology/MetricSpace. Other small feat (in Mathlib/Analysis/Calculus/ContDiff/RCLike.lean): a function that is continuously differentiable on an open subset is locally Lipschitz on this subset. --- - [ ] depends on: #22890 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology large-import new-contributor | 59/4 | Mathlib/Analysis/Calculus/ContDiff/RCLike.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean | 2 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | PatrickMassot | 9 months ago | unknown | unknown |
| 12438 | jjaassoonn | feat: some APIs for flat modules | Need horseshoe lemma --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 1674/3 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean,Mathlib/Algebra/Exact.lean,Mathlib/CategoryTheory/Abelian/Basic.lean,Mathlib/CategoryTheory/Abelian/DiagramLemmas/Horseshoe.lean,Mathlib/CategoryTheory/Abelian/LeftDerived.lean,Mathlib/RingTheory/Flat/Basic.lean | 8 | 21 | ['erdOne', 'github-actions', 'jjaassoonn', 'joelriou'] | nobody | 9 months ago | unknown | unknown |
| 8740 | digama0 | fix: improve `recall` impl / error reporting | Simplifies the implementation of `recall`, fixing a bug [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/.60recall.60.20strangeness/near/405076713) and also eliminating a use of `open private`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author awaiting-CI t-meta | 27/39 | Mathlib/Tactic/Recall.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 9 months ago | unknown | unknown |
| 25473 | adomani | feat(CI): check that Mathlib files have lean or md extension | Twice recently there have been files with an "intended" `.lean` extension in `Mathlib/`: * #24942, ending in `;lean`; * #25457, ending in `.Lean`. `mk_all` does not add these files to `Mathlib.lean`, since they do not end in `.lean` and this later causes problems. This CI step checks that all files in `Mathlib/` end with `.lean` or `.md`. See #25474 for a test where the new step [correctly fails](https://github.com/leanprover-community/mathlib4/actions/runs/15464097783/job/43532018379?pr=25474). --- [](https://gitpod.io/from-referrer/) | CI delegated | 10/0 | .github/workflows/lint_and_suggest_pr.yml | 1 | 10 | ['adomani', 'bryangingechen', 'github-actions', 'grunweg', 'mathlib-bors'] | nobody | 8 months ago | unknown | unknown |
| 16020 | adomani | feat: compare PR `olean`s size with `master` | Adds two CI steps: * `print the sizes of the oleans` that prints the sizes of all the folders containing `Mathlib` `.olean`s; * `compare oleans` that compares the sizes of the previous step with the corresponding sizes on `master`. In the test runs, the two steps have taken at most 3 seconds combined (the first is virtually instantaneous, the second one depends on `curl` to find a job id and on `gh` to retrieve the logs of a previous CI run -- everything else appears to be negligible). This hopefully helps finding out if some PR is bloating up the `.olean`s. See [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Error.3A.20No.20space.20left.20on.20device/near/463792355) for a PR of mine that prompted this check. --- [](https://gitpod.io/from-referrer/) | merge-conflict CI | 120/0 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,scripts/olean_comparison.sh | 5 | 50 | ['Vtec234', 'YaelDillies', 'adomani', 'bryangingechen', 'github-actions', 'grunweg', 'kim-em', 'leanprover-community-bot-assistant', 'mattrobball'] | nobody | 8 months ago | unknown | unknown |
| 16062 | adomani | Test/ci olean size | Tests for oleans --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author CI | 114/0 | .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,scripts/olean_comparison.sh | 5 | 4 | ['Parcly-Taxel', 'adomani', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 12799 | jstoobysmith | feat(LinearAlgebra/UnitaryGroup): Add properties of Special Unitary Group | Add properties of the special unitary group, mirroring the properties of found in Algebra/Star/Unitary.lean. In particular, I add an instance of `specialUnitaryGroup` as a `Group`, `Star`, `InvolutiveStar`, and `StarMul`. --- [](https://gitpod.io/from-referrer/) | please-adopt t-algebra new-contributor merge-conflict awaiting-author | 78/0 | Mathlib/LinearAlgebra/UnitaryGroup.lean | 1 | 8 | ['chrisflav', 'jcommelin', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 23709 | plp127 | feat: `Nat.findFrom` | This PR adds `Nat.findFrom`, which is like `Nat.find`, but starting from an arbitrary `k` instead of `0`. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 190/47 | Mathlib/Data/Nat/Find.lean | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 25340 | dupuisf | chore(Analysis/Convex): move files pertaining to convex/concave functions to their own folder | This PR creates a new folder under `Analysis/Convex` called `Analysis/Convex/Function`, which includes files that are mostly or entirely about convex/concave functions (as opposed to convex sets). --- [](https://gitpod.io/from-referrer/) | merge-conflict t-convex-geometry | 4264/4155 | Mathlib.lean,Mathlib/Analysis/Convex/Continuous.lean,Mathlib/Analysis/Convex/Deriv.lean,Mathlib/Analysis/Convex/Exposed.lean,Mathlib/Analysis/Convex/Extrema.lean,Mathlib/Analysis/Convex/Function.lean,Mathlib/Analysis/Convex/Function/Basic.lean,Mathlib/Analysis/Convex/Function/Continuous.lean,Mathlib/Analysis/Convex/Function/Deriv.lean,Mathlib/Analysis/Convex/Function/Extrema.lean,Mathlib/Analysis/Convex/Function/Integral.lean,Mathlib/Analysis/Convex/Function/Jensen.lean,Mathlib/Analysis/Convex/Function/Mul.lean,Mathlib/Analysis/Convex/Function/Piecewise.lean,Mathlib/Analysis/Convex/Function/Quasiconvex.lean,Mathlib/Analysis/Convex/Function/Slope.lean,Mathlib/Analysis/Convex/Function/Strong.lean,Mathlib/Analysis/Convex/Integral.lean,Mathlib/Analysis/Convex/Jensen.lean,Mathlib/Analysis/Convex/Mul.lean,Mathlib/Analysis/Convex/Piecewise.lean,Mathlib/Analysis/Convex/Quasiconvex.lean,Mathlib/Analysis/Convex/Slope.lean,Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean,Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean,Mathlib/Analysis/Convex/Strong.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/Normed/Module/Convex.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean,Mathlib/Analysis/SpecialFunctions/Pochhammer.lean,Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean,Mathlib/NumberTheory/Harmonic/GammaDeriv.lean | 34 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 21734 | adomani | fix(PR summary): checkout GITHUB_SHA | This should make the version of the script that is used on PRs more stable. Suggested by Eric Wieser on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/messageFile.2Emd/near/498941855). --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author CI | 2/1 | .github/workflows/PR_summary.yml | 1 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 8 months ago | unknown | unknown |
| 13483 | adomani | feat: automatically replace deprecations | This PR introduces `lake exe update_deprecations` that uses the cache to automatically replace deprecated declarations with the corresponding un-deprecated one. The script handles namespacing, replacing a possibly non-fully-qualified, deprecated name with the fully-qualified non-deprecated name. It is also possible to use ```bash lake exe update_deprecations --mods One.Two.Three,Dd.Ee.Ff ``` to limit the scope of the replacements to the modules `One.Two.Three` and `Dd.Ee.Ff`. This is intended to be a first step in automating updates: combining this with a linter that emits appropriate warnings, the functionality of `lake exe update_deprecations` can be extended to perform more complicated updates. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author delegated t-meta | 306/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/UpdateDeprecations.lean,MathlibTest/UpdateDeprecations.lean,lakefile.lean,scripts/README.md,scripts/update_deprecations.lean | 7 | 16 | ['YaelDillies', 'adomani', 'github-actions', 'j-loreaux', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib-bors', 'sgouezel'] | joneugster | 8 months ago | unknown | unknown |
| 20334 | miguelmarco | feat: allow polyrith to use a local Singular/Sage install | Try to call a local install of Singular (either standalone or inside Sage) to find the witness for polyrith before trying to call the online sage cell server. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-meta | 171/48 | Mathlib/Tactic/Polyrith.lean,scripts/polyrith_sage.py | 2 | 16 | ['eric-wieser', 'github-actions', 'hanwenzhu', 'kim-em', 'miguelmarco', 'mkoeppe'] | nobody | 8 months ago | unknown | unknown |
| 23953 | b-reinke | feat(Data/Matroid/Tutte): define the Tutte polynomial of a matroid | This PR defines the Tutte polynomial of a matroid and shows basic properties. - [x] depends on: #23926 - [ ] depends on #24336 - [ ] depends on: #23951 --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-data | 111/0 | Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Data/Matroid/Tutte/Basic.lean,Mathlib/Data/Set/Image.lean | 3 | 7 | ['apnelson1', 'b-reinke', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 18771 | joelriou | feat(LinearAlgebra/ExteriorPower): exterior powers of free modules are free | Co-authored-by: sophie.morel@ens-lyon.fr --- - [ ] depends on: #18662 - [x] depends on: #18534 - [x] depends on: #18651 - [x] depends on: #18590 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra blocked-by-other-PR | 1185/160 | Mathlib.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Sum/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basis.lean,Mathlib/LinearAlgebra/ExteriorPower/Generators.lean,Mathlib/LinearAlgebra/ExteriorPower/Pairing.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean,Mathlib/LinearAlgebra/TensorPower/Basic.lean,Mathlib/LinearAlgebra/TensorPower/Pairing.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean | 19 | 3 | ['alreadydone', 'github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 18441 | ADedecker | refactor(AdicTopology): use new API for algebraic filter bases, and factor some code | --- - [x] depends on: #18437 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-algebra | 847/159 | Mathlib.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Algebra/FilterBasisNew.lean,Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean,Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean,Mathlib/Topology/Algebra/Nonarchimedean/BasesNew.lean | 6 | 3 | ['ADedecker', 'github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 18439 | ADedecker | refactor: use new algebraic filter bases API in `FiniteAdeleRing` | --- - [x] depends on: #18437 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-algebra | 699/21 | Mathlib.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Algebra/FilterBasisNew.lean,Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean,Mathlib/Topology/Algebra/Nonarchimedean/BasesNew.lean | 6 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 18438 | ADedecker | refactor: adapt `KrullTopology` to the new algebraic filter bases API | --- - [x] depends on: #18437 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology t-algebra | 771/168 | Mathlib.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Algebra/FilterBasisNew.lean,Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean,Mathlib/Topology/Algebra/Nonarchimedean/BasesNew.lean | 6 | 5 | ['ADedecker', 'AntoineChambert-Loir', 'github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 13964 | pechersky | feat(Data/DigitExpansion): begin defining variant of reals without rationals | Based on a de Bruijn 1976 paper. This file is just the basic definition of a digit expansion. Will be followed up with further constructions. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 518/0 | Mathlib.lean,Mathlib/Data/DigitExpansion/Defs.lean,docs/references.bib | 3 | 11 | ['eric-wieser', 'github-actions', 'kim-em', 'pechersky'] | dupuisf | 8 months ago | unknown | unknown |
| 18662 | joelriou | feat(LinearAlgebra/ExteriorPower): generators of the exterior powers | --- - [x] depends on: #18534 - [x] depends on: #18590 - [ ] depends on: #26464 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra blocked-by-other-PR | 818/158 | Mathlib.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Sum/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Generators.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean | 15 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 18735 | joelriou | feat(Algebra/Module): presentation of the exterior power | Given a presentation of a `R`-module `M`, we obtain a presentation of `⋀[R]^n M`. --- (Still one sorry left.) - [ ] depends on: #18527 - [ ] depends on: #18432 - [ ] depends on: #26464 - [ ] depends on: #18534 - [ ] depends on: #18662 - [x] depends on: #18590 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra blocked-by-other-PR | 1856/157 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean,Mathlib/Algebra/Module/Presentation/Basic.lean,Mathlib/Algebra/Module/Presentation/ExteriorPower.lean,Mathlib/Algebra/Module/Presentation/PiTensor.lean,Mathlib/Algebra/Module/Presentation/Tensor.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Sum/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Generators.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean | 20 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 8 months ago | unknown | unknown |
| 16801 | awainverse | feat(ModelTheory/Equivalence): The quotient type of formulas modulo a theory | Defines `FirstOrder.Language.Theory.Formula`: `T.Formula α` is the quotient of `L.Formula α` by equivalence modulo a theory `T`. Puts a boolean algebra instance on `T.Formula α`, with `≤` corresponding to implication. --- - [x] depends on: #16799 - [x] depends on: #16800 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 174/60 | Mathlib/ModelTheory/Complexity.lean,Mathlib/ModelTheory/Equivalence.lean,Mathlib/ModelTheory/Types.lean | 3 | 30 | ['YaelDillies', 'awainverse', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'metinersin'] | YaelDillies | 7 months ago | unknown | unknown |
| 17458 | 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. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-zulip | 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 | 7 months ago | unknown | unknown |
| 17627 | hrmacbeth | feat: universal properties of vector bundle constructions | Characterizations for the smoothness of maps into the total spaces of (1) the direct sum of two vector bundles; (2) the pullback of a vector bundle. This gap in the library was exposed by #17358. --- - [x] depends on: #22804 [](https://gitpod.io/from-referrer/) | merge-conflict t-differential-geometry delegated | 311/9 | Mathlib/Data/Bundle.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean,Mathlib/Topology/FiberBundle/Constructions.lean | 4 | 24 | ['PatrickMassot', 'github-actions', 'grunweg', 'hrmacbeth', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'sgouezel'] | grunweg | 7 months ago | unknown | unknown |
| 22928 | javra | feat(CategoryTheory): infrastructure for inclusion morphisms into products in categories with 0-morphisms | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 52/14 | Mathlib/CategoryTheory/Limits/Shapes/BinaryBiproducts.lean,Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean,Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean | 3 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 24710 | chrisflav | chore(Data/Set): `tsum` version of `Set.encard_iUnion_of_finite` for non-finite types | As requested here: https://github.com/leanprover-community/mathlib4/pull/23849#discussion_r2081070200 --- - [ ] depends on: #23849 [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 163/0 | Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Data/Set/Card/Arithmetic.lean,Mathlib/Data/Set/Card/InfiniteArithmetic.lean,Mathlib/Data/Set/Finite/Lattice.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/Instances/ENat/Lemmas.lean | 7 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 24823 | eric-wieser | refactor: add `hom` lemmas for the `MonoidalCategory` structure on `ModuleCat` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 148/164 | Mathlib/Algebra/Category/FGModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Free.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Generator.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Internal/Module.lean,Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Rep.lean | 11 | 21 | ['101damnations', 'YaelDillies', 'eric-wieser', 'github-actions', 'joelriou', 'kbuzzard', 'leanprover-community-bot-assistant'] | 101damnations | 7 months ago | 242 days ago | 25 days |
| 25071 | erdOne | feat(EllipticCurve): basic API for singular cubics | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-geometry | 320/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Singular/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean | 3 | 35 | ['Multramate', 'acmepjz', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 25218 | kckennylau | feat(AlgebraicGeometry): Tate normal form of elliptic curves | --- [](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 | 7 months ago | unknown | unknown |
| 25561 | callesonne | feat(Category/Grpd): define the bicategory of groupoids | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 179/25 | Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean,Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean,Mathlib/CategoryTheory/Category/Cat.lean,Mathlib/CategoryTheory/Category/Grpd.lean | 6 | 6 | ['callesonne', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'robin-carlier'] | nobody | 7 months ago | 258 days ago | 10 days |
| 20784 | eric-wieser | fix: prevent `exact?` recursing forever on `n = 55` | Test case thanks to @llllvvuu: ```lean import Mathlib.SetTheory.Ordinal.Basic theorem natCast_inj {m n : ℕ} : (m : Ordinal) = n ↔ m = n := sorry example (n : Nat) : n = 55 := by exact? ``` This is surely a workaround for some unreported lean bug. The bug still exists for `n = 71` or higher, so we can still track down the bug after merging this patch. --- [](https://gitpod.io/from-referrer/) | t-set-theory | 22/3 | Mathlib/SetTheory/Ordinal/Basic.lean,MathlibTest/LibrarySearchRecDepth.lean | 2 | 15 | ['Command-Master', 'eric-wieser', 'github-actions', 'kbuzzard', 'kim-em', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mattrobball'] | nobody | 7 months ago | unknown | unknown |
| 24405 | mcdoll | refactor(Topology/Algebra/Module/WeakDual): Clean up | - Move `Dual` and `dualPairing` lower in the import-hierachy - deduplicate `dualPairing` - Make `WeakDual` and `WeakSpace` reducible --- New version of #11500 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology large-import | 146/162 | Mathlib.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/Dual.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/VonNeumannAlgebra/Basic.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/Topology/Algebra/Module/Dual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,docs/overview.yaml,docs/undergrad.yaml | 14 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 26647 | b-mehta | feat(Data/Sym/Sym2): lift commutative operations to sym2 | While we have `Sym2.lift`, it's often useful to lift operations which are known to be commutative to the typeclass system. Indeed, the existing `Sym2.mul` witnesses this already. Thus, this PR can also be seen as generalising `Sym2.mul`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-data | 48/28 | Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/Sym/Sym2/Finsupp.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/QuadraticForm/Basis.lean | 4 | 12 | ['b-mehta', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | 240 days ago | 3 days |
| 10541 | xgenereux | feat(Algebra/SkewMonoidAlgebra/Basic): add SkewMonoidAlgebra | # Skew Monoid algebras This file presents a skewed version of `Mathlib.Algebra.MonoidAlgebra.Basic`. ## Definition We define `SkewMonoidAlgebra k G := G →₀ k` attached with a skewed convolution product. Here, the product of two elements `f g : SkewMonoidAlgebra k G` is the finitely supported function whose value at `a` is the sum of `f x * (x • g y)` over all pairs `x, y` such that `x * y = a`. This will be used in a later PR to define skew polynomial rings. Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- - [x] depends on: #15878 - [x] depends on: #19084 - [x] depends on: #22078 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra new-contributor | 1624/0 | Mathlib.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean,Mathlib/Algebra/SkewMonoidAlgebra/Lift.lean | 4 | 105 | ['AntoineChambert-Loir', 'YaelDillies', 'eric-wieser', 'fpvandoorn', 'github-actions', 'mariainesdff', 'mathlib4-dependent-issues-bot', 'mattrobball', 'xgenereux'] | AntoineChambert-Loir | 7 months ago | unknown | unknown |
| 25611 | erdOne | chore(RingTheory): add `Algebra (FractionRing R) (FractionRing S)` | Co-authored-by: Yakov Pechersky --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 152/108 | Mathlib.lean,Mathlib/Algebra/Algebra/NonZeroDivisors.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean,Mathlib/RingTheory/Ideal/Norm/RelNorm.lean,Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean,Mathlib/RingTheory/Localization/FractionRing.lean,Mathlib/RingTheory/Localization/FractionRingAlgebra.lean,Mathlib/RingTheory/Localization/Integral.lean | 10 | 20 | ['alreadydone', 'erdOne', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'pechersky'] | nobody | 7 months ago | 265 days ago | 2 days |
| 18230 | digama0 | feat(Tactic/ScopedNS): extend `scoped[NS]` to more commands | refactor `ScopedNS` to remove error prone repetitiveness and extend it to other commands such as `syntax`, `macro`, `elab`, etc.
Co-authored-by: Jon Eugster |
awaiting-author t-meta | 201/26 | Mathlib/Tactic/ScopedNS.lean,MathlibTest/scopedNS.lean | 2 | 7 | ['adomani', 'digama0', 'eric-wieser', 'github-actions', 'joneugster', 'kbuzzard'] | nobody | 7 months ago | unknown | unknown |
| 25284 | alreadydone | feat(LinearAlgebra/Contraction): bijectivity of `dualTensorHom` + generalize to CommSemiring | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 167/32 | Mathlib/Data/Finsupp/Defs.lean,Mathlib/LinearAlgebra/Contraction.lean,Mathlib/LinearAlgebra/Pi.lean,Mathlib/LinearAlgebra/Trace.lean,Mathlib/RingTheory/Finiteness/Finsupp.lean | 5 | 16 | ['alreadydone', 'eric-wieser', 'github-actions', 'kckennylau', 'leanprover-bot', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | 230 days ago | 10 days |
| 22749 | joelriou | feat(CategoryTheory/Abelian): the Gabriel-Popescu theorem as a localization with respect to a Serre class | This PR introduces a structure `GabrielPopescuPackage C` which contains the information to say that the abelian category `C` is a localization of a category of modules with respect to a suitable Serre class. --- - [x] depends on: #26033 - [ ] depends on: #26663 - [x] depends on: #22733 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 202/6 | Mathlib.lean,Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/GabrielPopescu.lean,Mathlib/CategoryTheory/Abelian/SerreClass/Bousfield.lean,Mathlib/CategoryTheory/Abelian/SerreClass/MorphismProperty.lean,Mathlib/CategoryTheory/ObjectProperty/ContainsZero.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 24668 | robertmaxton42 | feat(LinearAlgebra): add inductive principle for the free product of algebras | * Add `FreeProduct.inductionOn` and `.asPowers.inductionOn`. - [ ] depends on: #24532 --- * `simp↓` on `empty_rel'_bot`: the LHS is indeed not in simp-normal form, but `simp` can't solve the full lemma (if only because `Function.onFun` isn't marked `@[simp]`) and the actual simp-normal form of `rel'` isn't terribly useful for humans. Since I do expect users to type `rel' R A` by hand, I claim this use of `simp↓` is justified. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR | 205/9 | Mathlib/LinearAlgebra/FreeProduct/Basic.lean | 1 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 7 months ago | unknown | unknown |
| 13973 | digama0 | feat: lake exe refactor, initial framework | This is the initial framework code for `lake exe refactor`. To use it, you add your refactoring to `Refactor/Main.lean` (note, you have to actually write some metaprogramming code here for the refactoring itself), and the harness will run it on specified files and apply the generated edits. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 139/0 | Refactor/Main.lean,lakefile.lean | 2 | 11 | ['adomani', 'digama0', 'eric-wieser', 'github-actions', 'joneugster', 'leanprover-community-bot-assistant', 'mattrobball'] | nobody | 7 months ago | unknown | unknown |
| 10190 | jstoobysmith | feat(AlgebraicTopology): add Augmented Simplex Category | - Added the definition of the category FinLinOrd of finite linear ordered sets. - Added the definition of the augmented simplex category `AugmentedSimplexCategory`, and showed it is the Skeleton of FinLinOrd. - Showed that the category of augmented simplicial objects defined as a comma category is equivalent to the category of functors from `AugmentedSimplexCategory^\op` --- [](https://gitpod.io/from-referrer/) | t-algebraic-topology WIP t-category-theory new-contributor merge-conflict | 720/0 | Mathlib.lean,Mathlib/AlgebraicTopology/AugmentedSimplexCategory.lean,Mathlib/AlgebraicTopology/SimplicialObject.lean,Mathlib/Order/Category/FinLinOrd.lean | 4 | 5 | ['TwoFX', 'YaelDillies', 'joelriou', 'jstoobysmith'] | nobody | 7 months ago | unknown | unknown |
| 25914 | eric-wieser | feat: add an ext lemma for the opposite category | This powers up `aesop_cat`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory awaiting-CI | 18/56 | Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/CategoryTheory/Abelian/Opposite.lean,Mathlib/CategoryTheory/Category/RelCat.lean,Mathlib/CategoryTheory/GuitartExact/Opposite.lean,Mathlib/CategoryTheory/Limits/Opposites.lean,Mathlib/CategoryTheory/Limits/Shapes/Products.lean,Mathlib/CategoryTheory/Opposites.lean,Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean,Mathlib/Combinatorics/Quiver/Basic.lean | 9 | 7 | ['eric-wieser', 'github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'robin-carlier'] | nobody | 7 months ago | unknown | unknown |
| 20208 | js2357 | feat: Define the localization of a fractional ideal at a prime ideal | Define the localization of a fractional ideal at a prime ideal, and prove some basic properties. --- Alternate version of #14237 generalized to use `IsLocalization` and `IsFractionRing` rather than `Localization.AtPrime` and `FractionRing` [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 248/0 | Mathlib.lean,Mathlib/RingTheory/FractionalIdeal/LocalizedAtPrime.lean | 2 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 7 months ago | unknown | unknown |
| 24260 | plp127 | feat(Topology): add API for Hereditarily Lindelof spaces | Copies the stuff about Lindelof spaces to Hereditarily Lindelof spaces. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 222/42 | Mathlib/Topology/Compactness/Lindelof.lean | 1 | 15 | ['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'urkud'] | urkud | 7 months ago | unknown | unknown |
| 27225 | eric-wieser | refactor(Tactic/Lift): deprecate the third with argument | We already have a number of tactics where the clearing happens all the time, and you have to opt out with `id h`. This also fixes a bug where `lift z to Nat with n hn this_is_unused` would silently ignore `this_is_unused`. --- - [ ] depends on: #27223 [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 21/9 | Mathlib/Tactic/Lift.lean,MathlibTest/lift.lean | 2 | 8 | ['JovanGerb', 'adomani', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'vihdzp'] | JovanGerb | 7 months ago | 213 days ago | 15 days |
| 25486 | VTrelat | feat(SetTheory/ZFC/Integers): define integers in ZFC | Extend the model of ZFC with integers following the converse direction as for naturals. We first define a type and then build a set. We finally show that both representations have coercions in both direction: - define a proper type `ZFInt` representing integers based on `ZFNat × ZFNat` and following the usual construction of integers - add theorems on usual algebraic properties of integers - define a set `Int` and show that it matches-i.e. that it is isomorphic to-the type `ZFInt` --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #25483 - [ ] depends on: #25485 | merge-conflict t-set-theory blocked-by-other-PR new-contributor | 2003/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean,Mathlib/SetTheory/ZFC/Integers.lean | 4 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 25485 | VTrelat | feat(SetTheory/ZFC/Naturals): define natural numbers in ZFC | Extend the model of ZFC with naturals: - define a set `Nat` of naturals following the usual construction (∅, {∅}, {∅, {∅}}, ...) - define a proper type `ZFNat` representing naturals - add theorems on usual algebraic properties of naturals - provide a recursor and induction schemes to define/prove by induction --- [](https://gitpod.io/from-referrer/) - [ ] depend on: #25483 | merge-conflict t-set-theory new-contributor | 2095/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean,Mathlib/SetTheory/ZFC/Naturals.lean | 4 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 25484 | VTrelat | feat(SetTheory/ZFC/Booleans): define Boolean algebra in ZFC | Extend the model of ZFC with Boolean algebra: - define a set 𝔹 of booleans - define a proper type `ZFBool` representing booleans - add theorems on usual algebraic properties of booleans - provide usual boolean notations like `⊤`, `⊥`, `∧`, `∨`, etc. --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #25483 | merge-conflict t-set-theory blocked-by-other-PR new-contributor | 619/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean | 3 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 25238 | Hagb | feat(Tactic/ComputeDegree): add support for scalar multiplication with different types | It would be able to deal with `a • (X : R[X])` where `a : S` is in a different type `S` with `[SMulZeroClass S R]`. --- - [x] depends on: #25237 [](https://gitpod.io/from-referrer/) | merge-conflict t-meta new-contributor | 17/5 | Mathlib/Tactic/ComputeDegree.lean,MathlibTest/ComputeDegree.lean | 2 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 22909 | AntoineChambert-Loir | feat(RingTheory/Pure): pure submodules | A submodule `N` of an `R`-module is *pure* if all maps `S ⊗[R] N → S ⊗[R] M` deduced by base change from the injection of `N` into `M` are injective, for all `R`-algebras `S`. This is expressed by the class `Submodule.IsPure`. For type theoretic reason, the definition of `Submodule.IsPure` only considers algebras `S` in the same universe as `R`, but `Submodule.IsPure.baseChange_injective` establishes the property for all universes. * `Submodule.IsComplemented.isPure` : a complemented submodule is pure. Co-authored with @mariainesdff --- - [ ] depends on: #22898 - [ ] depends on: #22908 - [x] depends on: #22911 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory blocked-by-other-PR | 592/3 | Mathlib.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/RingTheory/Adjoin/FG.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Finiteness/Cardinality.lean,Mathlib/RingTheory/Finiteness/Small.lean,Mathlib/RingTheory/Pure.lean,Mathlib/RingTheory/Spectrum/Prime/RingHom.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/FG.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/Small.lean | 11 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 22908 | AntoineChambert-Loir | feat(RingTheory/Finiteness/Small): tensor product of the system of small submodules | The directed limit of a tensor product for the directed system of small submodules. Co-authored with @mariainesdff --- - [ ] depends on: #22898 - [x] depends on: #22911 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory blocked-by-other-PR | 624/2 | Mathlib.lean,Mathlib/RingTheory/Adjoin/FG.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Finiteness/Cardinality.lean,Mathlib/RingTheory/Finiteness/Small.lean,Mathlib/RingTheory/Spectrum/Prime/RingHom.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/FG.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/Small.lean | 9 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 22898 | AntoineChambert-Loir | feat(RingTheory/TensorProduct/DirectLimit/FG): direct limit of finitely generated submodules and tensor product | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-ring-theory | 399/0 | Mathlib.lean,Mathlib/RingTheory/Adjoin/FG.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/DirectLimit/FG.lean | 5 | 9 | ['AntoineChambert-Loir', 'alreadydone', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 20431 | erdOne | feat(RingTheory/AdicCompletion): monotonicity of adic-completeness | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 206/16 | Mathlib.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Mono.lean,Mathlib/RingTheory/Finiteness/Ideal.lean | 7 | 13 | ['chrisflav', 'erdOne', 'github-actions'] | nobody | 6 months ago | unknown | unknown |
| 19596 | Command-Master | feat(RingTheory/Valuation/PrimeMultiplicity): define `WithTop ℤ`-valued prime multiplicity on a fraction field | Moves: - `multiplicity_addValuation` -> `AddValuation.multiplicity` - `multiplicity_addValuation_apply` -> `AddValuation.multiplicity_apply` --- - [x] depends on: #19149 - [x] depends on: #18786 - [x] depends on: #19122 - [x] depends on: #18954 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory large-import | 101/37 | Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/Valuation/PrimeMultiplicity.lean | 3 | 11 | ['ChrisHughes24', 'Command-Master', 'Vierkantor', 'faenuccio', 'github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 18646 | jxjwan | feat(RingTheory): isotypic components | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory new-contributor | 308/0 | Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/RingTheory/Isotypic.lean,Mathlib/RingTheory/SimpleModule.lean | 3 | 1 | ['github-actions'] | nobody | 6 months ago | unknown | unknown |
| 17246 | pechersky | feat(RingTheory/PrimaryDecomposition): PIR of Noetherian under jacobson condition | --- - [x] depends on: #17634 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 653/1 | Mathlib.lean,Mathlib/NumberTheory/KummerDedekind.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Jacobson/Ideal.lean,Mathlib/RingTheory/PrimaryDecomposition.lean,docs/references.bib | 8 | 8 | ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot'] | erdOne | 6 months ago | unknown | unknown |
| 21474 | erdOne | feat(RingTheory): replace `Ring.DimensionLEOne` with `Ring.KrullDimLE` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory large-import | 285/170 | Mathlib.lean,Mathlib/RingTheory/DedekindDomain/Basic.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/DedekindDomain/Ideal.lean,Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/KrullDimension/Basic.lean,Mathlib/RingTheory/KrullDimension/Localization.lean,Mathlib/RingTheory/KrullDimension/Polynomial.lean,Mathlib/RingTheory/KrullDimension/Quotient.lean,Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean,Mathlib/RingTheory/Nilpotent/End.lean,Mathlib/RingTheory/Nilpotent/Lemmas.lean,Mathlib/RingTheory/PID/Quotient.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/Spectrum/Maximal/Localization.lean | 16 | 1 | ['github-actions'] | nobody | 6 months ago | unknown | unknown |
| 11212 | shuxuezhuyi | feat(GroupTheory/GroupAction): instance `MulAction (β ⧸ H) α` | We instance this naturally from `MulAction β α` when `H` is a normal subgroup and acts trivially on `α`. We also instance `IsometricSMul (M ⧸ N) X` in this way. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-group-theory large-import | 53/1 | Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/Topology/MetricSpace/IsometricSMul.lean | 2 | 6 | ['YaelDillies', 'github-actions', 'grunweg', 'urkud'] | eric-wieser | 6 months ago | unknown | unknown |
| 17469 | joelriou | feat(Algebra/ModuleCat/Differentials/Presheaf): the presheaf of relative differentials | Given a functor `F : C ⥤ D`, presheaves of commutative rings `S`, `R` and a morphism `φ : S ⟶ F.op ⋙ R`, we show that derivations relative to `φ` are representable by a presheaf of `R`-modules. This is obtained by reducing to the case of absolute differentials. The construction shall allow to deduce the presheaf version of the cokernel sequence $$f^\star \Omega_{Y/S} ⟶ \Omega_{X/S} ⟶ \Omega_{X/Y} ⟶ 0$$ when `f : X ⟶ Y` and `g : Y ⟶ S` are morphisms of schemes. --- - [x] depends on: #17366 - [x] depends on: #19507 - [x] depends on: #17388 - [x] depends on: #16755 [](https://gitpod.io/from-referrer/) | WIP t-category-theory large-import merge-conflict t-algebraic-geometry | 391/10 | Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean | 1 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 20671 | thefundamentaltheor3m | feat(Analysis/Asymptotics/SpecificAsymptotics): Proving that 𝛔ₖ(n) = O(nᵏ⁺¹) | This PR proves a result about the $\sigma_k(n)$ arithmetic function, namely, that it is $O\left(n^{k+1}\right)$. Main theorem: `theorem sigma_asymptotic (k : ℕ) : (fun n ↦ (σ k n : ℝ)) =O[atTop] (fun n ↦ (n ^ (k + 1) : ℝ))` This result was proved as part of the sphere packing project. --- [](https://gitpod.io/from-referrer/) | t-number-theory new-contributor large-import merge-conflict awaiting-author | 29/0 | Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean | 1 | 3 | ['b-mehta', 'github-actions', 'mathlib4-merge-conflict-bot'] | b-mehta | 6 months ago | unknown | unknown |
| 20267 | joelriou | feat(CategoryTheory): comma categories are accessible | --- (I shall probably not work on this PR in the near future.) - [ ] depends on: #19937 - [ ] depends on: #19945 - [ ] depends on: #19959 - [ ] depends on: #20005 - [ ] depends on: #19955 - [x] depends on: #20263 [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author t-category-theory | 1513/7 | Mathlib.lean,Mathlib/CategoryTheory/Comma/Arrow.lean,Mathlib/CategoryTheory/Comma/CardinalArrow.lean,Mathlib/CategoryTheory/EssentiallySmall.lean,Mathlib/CategoryTheory/Limits/Comma.lean,Mathlib/CategoryTheory/Limits/TypesFiltered.lean,Mathlib/CategoryTheory/Presentable/Basic.lean,Mathlib/CategoryTheory/Presentable/CardinalFilteredPresentation.lean,Mathlib/CategoryTheory/Presentable/Comma.lean,Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/CategoryTheory/Presentable/Limits.lean,Mathlib/CategoryTheory/Presentable/LocallyPresentable.lean,Mathlib/CategoryTheory/Presentable/ParallelMaps.lean,Mathlib/SetTheory/Cardinal/HasCardinalLT.lean,docs/references.bib | 15 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 24862 | grunweg | feat(LocallyIntegrable): generalise more to enorms | --- Note: github's diff is very confused; it includes changes which very clearly are already on the master branch. I'll see which of the remaining changes after the dependencies have landed is already polished enough. - [x] depends on: #24352 - [x] depends on: #27457 (this half is settled already) - [ ] open question: filter lemmas; IsBoundedUnder is not the right condition as-is; need to think (or just not generalise) [](https://gitpod.io/from-referrer/) | merge-conflict WIP carleson t-measure-probability | 171/88 | Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean,Mathlib/MeasureTheory/Function/LocallyIntegrable.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean | 3 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 27003 | eric-wieser | chore: use `Simp.ResultQ` more often | Also uses `~q` in place of manual `isDefEq` matching. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 18/22 | Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/NormNum/Result.lean,Mathlib/Tactic/ReduceModChar.lean | 3 | 7 | ['JovanGerb', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | JovanGerb | 6 months ago | 202 days ago | 32 days |
| 22925 | ggranberry | feat(Mathlib/PlaceHolder/ToeplitzHausdorff): Toeplitz-Hausdorff | --- [](https://gitpod.io/from-referrer/) | WIP new-contributor will-close-soon awaiting-author help-wanted t-analysis | 411/0 | Mathlib/PlaceHolder/ToeplitzHausdorff.lean,Mathlib/PlaceHolder/ToeplitzHausdorff_v2.lean | 2 | 11 | ['faenuccio', 'ggranberry', 'github-actions'] | faenuccio | 6 months ago | unknown | unknown |
| 25483 | VTrelat | chore(Data/Set/Prod, SetTheory/ZFC/Basic): add theorem prod_subset_of_prod and extend ZFC model | Required by @eric-wieser in #24281 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data new-contributor | 103/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean | 2 | 10 | ['Ruben-VandeVelde', 'VTrelat', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 6 months ago | unknown | unknown |
| 25401 | digama0 | feat(Util): SuppressSorry option | See also leanprover/lean4#8611 and [#lean4 > Silent sorry @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Silent.20sorry/near/503537964). This is a stop-gap solution while leanprover/lean4#8611 is underway, but it works about as well as any other built in option. Hooking declaration elaborators turns out to be a very powerful technique. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-meta | 342/0 | Mathlib.lean,Mathlib/Util/CommandElabHook.lean,Mathlib/Util/SuppressSorry.lean,MathlibTest/suppressSorry.lean | 4 | 15 | ['digama0', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | alexjbest | 6 months ago | unknown | unknown |
| 7873 | astrainfinita | perf: reorder `extends` and change instance priority in algebra hierarchy | There are no strict rules, but in general `Cancel` is dropped first, then `Comm`, then `Neg / Inv`, then `Assoc`. Not sure if there's a better way. --- - [ ] depends on: #14712 - [x] depends on: #16638 - [ ] depends on: #18464 - [ ] depends on: #18468 - [ ] depends on: #18470 - [ ] depends on: #18472 - [ ] depends on: #18474 [](https://gitpod.io/from-referrer/) | merge-conflict slow-typeclass-synthesis t-algebra blocked-by-other-PR | 494/204 | Archive/Imo/Imo1998Q2.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Associated.lean,Mathlib/Algebra/BigOperators/Ring/List.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean,Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/EuclideanDomain/Field.lean,Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/Defs.lean,Mathlib/Algebra/Field/IsField.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/GroupWithZero/Basic.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/GroupWithZero/Prod.lean,Mathlib/Algebra/GroupWithZero/Semiconj.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/Algebra/Order/AddGroupWithTop.lean,Mathlib/Algebra/Order/Field/Canonical/Defs.lean,Mathlib/Algebra/Order/Field/Defs.lean,Mathlib/Algebra/Order/Group/Abs.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/Algebra/Ring/BooleanRing.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/Algebra/Ring/Ext.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/Rat.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/InnerProductSpace/Orientation.lean,Mathlib/Analysis/InnerProductSpace/Symmetric.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/NormedSpace/Star/Multiplier.lean,Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean,Mathlib/CategoryTheory/Preadditive/SingleObj.lean,Mathlib/CategoryTheory/Triangulated/Functor.lean,Mathlib/Data/Finset/NoncommProd.lean,Mathlib/Data/Int/Cast/Defs.lean,Mathlib/Data/Nat/Cast/Defs.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/Data/Num/Lemmas.lean,Mathlib/Data/Rat/Denumerable.lean,Mathlib/Data/Real/ENatENNReal.lean,Mathlib/Dynamics/Ergodic/AddCircle.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/GroupTheory/Congruence/Basic.lean,Mathlib/GroupTheory/MonoidLocalization.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/Torsion.lean,Mathlib/Init/ZeroOne.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/LinearAlgebra/Orientation.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean,Mathlib/MeasureTheory/Decomposition/Jordan.lean,Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean,Mathlib/NumberTheory/ArithmeticFunction.lean,Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean,Mathlib/NumberTheory/RamificationInertia.lean,Mathlib/NumberTheory/WellApproximable.lean,Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean,Mathlib/Order/Filter/Germ.lean,Mathlib/Order/Interval/Finset/Box.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/Coalgebra/Hom.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/Filtration.lean,Mathlib/RingTheory/Henselian.lean,Mathlib/RingTheory/Ideal/IsPrincipal.lean,Mathlib/RingTheory/Ideal/LocalRing.lean,Mathlib/RingTheory/Ideal/Norm.lean,Mathlib/RingTheory/Localization/Integral.lean,Mathlib/RingTheory/MvPolynomial/Symmetric.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean,Mathlib/RingTheory/UniqueFactorizationDomain.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/Tactic/Positivity/Core.lean | 104 | 84 | ['MichaelStollBayreuth', 'astrainfinita', 'github-actions', 'kim-em', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mattrobball'] | nobody | 6 months ago | unknown | unknown |
| 14583 | lecopivo | fix: make concrete cycle notation local | fix: make c[...] notation for concrete cycles local --- The notation for concrete cycles prevents you using `c[i]` notation for `c : Array _` This currently does not work ``` import Mathlib variable (c : Array Nat) (i : Fin c.size) #check c[i] -- breaks because of notation for concrete cycles ``` This PR just marks it as local to prevent this issue. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 1/1 | Mathlib/GroupTheory/Perm/Cycle/Concrete.lean | 1 | 3 | ['eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 5897 | eric-wieser | feat: add a `MonadError` instance for `ContT` | We already have a `MonadExcept` instance; this promotes it to `MonadError`. Note the issue with the existing `MonadExcept` instance still applies. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 16/0 | Mathlib/Control/Monad/Cont.lean | 1 | 25 | ['Vierkantor', 'YaelDillies', 'eric-wieser', 'github-actions', 'kmill'] | nobody | 6 months ago | unknown | unknown |
| 24793 | tristan-f-r | feat: trace of unitarily similar matrices | adds a theorem relating trace to unitarily similar matrices used in the easy direction of specht's theorem --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 7/0 | Mathlib/LinearAlgebra/UnitaryGroup.lean | 1 | 4 | ['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'tristan-f-r'] | nobody | 6 months ago | unknown | unknown |
| 19582 | yu-yama | feat(GroupExtension/Abelian): define `OfMulDistribMulAction.equivH2` | Mainly defines: - `structure GroupExtension.OfMulDistribMulAction N G [MulDistribMulAction G N]`: group extensions of `G` by `N` where the multiplicative action of `G` on `N` is the conjugation - `structure GroupExtension.OfMulDistribMulActionWithSection N G [MulDistribMulAction G N]`: group extensions with specific choices of sections - `def GroupExtension.OfMulDistribMulAction.equivH2`: a bijection between the equivalence classes of group extensions and $H^2 (G, N)$ --- - [x] depends on: #20802 (split PR: contains changes to the `Defs` file) - [x] depends on: #20998 (split PR: mainly adds the `Basic` file) - [ ] depends on: #26670 (split PR: adds the first part of the `Abelian` file) Here is a relevant TODO in Mathlib: https://github.com/leanprover-community/mathlib4/blob/4e9fa40d7c480937e09cd6e47a591bd6f3b8be42/Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean#L46-L48 I would appreciate your comments. [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR new-contributor | 750/14 | Mathlib.lean,Mathlib/GroupTheory/GroupExtension/Abelian.lean,Mathlib/GroupTheory/GroupExtension/Defs.lean,docs/references.bib | 4 | 5 | ['YaelDillies', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 7300 | ah1112 | feat: synthetic geometry | This is adding synthetic geometry using Avigad's axioms and formalizing Euclid Book I, through the Pythagorean theorem. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author help-wanted t-euclidean-geometry | 2661/0 | Mathlib.lean,Mathlib/Geometry/Synthetic/Avigad/Axioms.lean,Mathlib/Geometry/Synthetic/Avigad/EuclidBookI.lean,Mathlib/Geometry/Synthetic/Avigad/Tactics.lean | 4 | 74 | ['ah1112', 'alreadydone', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'plp127', 'tb65536', 'urkud'] | nobody | 6 months ago | unknown | unknown |
| 13795 | astrainfinita | perf(Algebra/{Group, GroupWithZero, Ring}/InjSurj): reduce everything | --- - [ ] depends on: #15192 - [ ] depends on: #15476 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 340/194 | Mathlib/Algebra/Equiv/TransferInstance.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Ring/InjSurj.lean,scripts/noshake.json | 9 | 37 | ['MichaelStollBayreuth', 'astrainfinita', 'eric-wieser', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mattrobball'] | nobody | 6 months ago | unknown | unknown |
| 25488 | VTrelat | feat(SetTheory/ZFC/Rationals): define rationals in ZFC | Extend the model of ZFC with rationals: we define a proper type `ZFRat` representing integers based on pairs of `ZFInt` (enforcing the res to be nonzero) and following the usual construction of rationals. --- [](https://gitpod.io/from-referrer/) - [ ] depends on: #25483 - [ ] depends on: #25485 - [ ] depends on: #25486 | merge-conflict t-set-theory blocked-by-other-PR new-contributor | 2070/0 | Mathlib/Data/Set/Prod.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Booleans.lean,Mathlib/SetTheory/ZFC/Integers.lean,Mathlib/SetTheory/ZFC/Rationals.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 6 months ago | unknown | unknown |
| 24719 | madvorak | feat(LinearAlgebra/Matrix/NonsingularInverse): inverting `Matrix` inverts its `LinearEquiv` | --- Discussion: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2324719.20cannot.20find.20home/with/517142655 | awaiting-author t-algebra | 10/0 | Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean | 1 | 16 | ['eric-wieser', 'github-actions', 'madvorak', 'ocfnash'] | nobody | 6 months ago | unknown | unknown |
| 25208 | erdOne | feat(LinearAlgebra): `tensor_induction` macro | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 87/116 | Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Central/TensorProduct.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/RingTheory/Flat/Equalizer.lean,Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/Finite.lean,Mathlib/RingTheory/Unramified/Finite.lean | 8 | 8 | ['chrisflav', 'eric-wieser', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 6 months ago | unknown | unknown |
| 13036 | joelriou | feat(CategoryTheory/Sites): under certain conditions, cover preserving functors preserve 1-hypercovers | Previously, in order to show that a functor between Grothendieck sites was continuous, it was necessary to show that it was "cover preserving" and "compatible preserving". There were two lemmas which could be used in order to show that a functor was "compatible preserving". Since #13012, the better condition of "1-hypercover preserving" functor was introduced and it implies that the functor is continuous. In this PR, under the same assumptions as in the two lemmas mentionned above, we show that cover preserving functors are 1-hypercover preserving functors. This gives slightly better criteria in order to show that a functor is continuous. --- - [x] depends on: #13004 - [x] depends on: #13011 - [x] depends on: #13012 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory | 94/7 | Mathlib/CategoryTheory/Sites/Continuous.lean,Mathlib/CategoryTheory/Sites/CoverPreserving.lean,Mathlib/CategoryTheory/Sites/Over.lean,Mathlib/CategoryTheory/Sites/Sieves.lean | 4 | 3 | ['github-actions', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 27335 | eric-wieser | chore(Data/List): use simp-normal-form for boolean equalities | This replaces `¬(p x = true)` with `p x = false`. It also makes explicit some adjacent `h : p x` spellings for symmetry, but the `= true`s were already implied by the coercion. Zulip: [#lean4 > `h : ¬(b = true)` vs `h : b = false` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.60h.20.3A.20.C2.AC.28b.20.3D.20true.29.60.20vs.20.60h.20.3A.20b.20.3D.20false.60/near/529976237) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-data | 38/32 | Mathlib/Data/List/DropRight.lean,Mathlib/Data/List/SplitOn.lean,Mathlib/Data/List/TakeWhile.lean | 3 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | 225 days ago | 4 hours |
| 22517 | j-loreaux | feat: `ℕ+` powers in semigroups | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP large-import | 275/28 | Mathlib.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/PNatPowAssoc.lean,Mathlib/Algebra/Group/PPow.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Ring/Ext.lean,Mathlib/Algebra/Ring/ULift.lean,Mathlib/Data/Num/Lemmas.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/ZMod/Defs.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/NumberTheory/Dioph.lean,Mathlib/Tactic/ToAdditive/Frontend.lean | 14 | 6 | ['eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-bot', 'mattrobball'] | nobody | 5 months ago | unknown | unknown |
| 29615 | eric-wieser | chore: add a computable shortcut for `AddCommMonoid ℂ` | --- [](https://gitpod.io/from-referrer/) | t-analysis easy bench-after-CI | 9/1 | Mathlib/Analysis/Complex/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 5 months ago | unknown | unknown |
| 25069 | erdOne | feat(EllipticCurve): rational points of singular nodal cubics | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebraic-geometry | 251/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Singular/Node.lean | 3 | 14 | ['Multramate', 'acmepjz', 'chrisflav', 'erdOne', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | chrisflav | 5 months ago | unknown | unknown |
| 25070 | erdOne | feat(EllipticCurve): rational points on singular cuspidal cubics | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebraic-geometry | 123/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Singular/Cusp.lean | 2 | 12 | ['Multramate', 'acmepjz', 'adamtopaz', 'erdOne', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot'] | adamtopaz | 5 months ago | unknown | unknown |
| 28580 | kmill | refactor: simplify implementation of `filter_upwards` | This PR makes a few changes to `filter_upwards`: - it uses `focus`, which prevents multiGoalLinter from ever blaming the tactics used inside its implementation - it constructs the whole proof syntax and elaborates it at once using `evalTactic` and `refine`, rather than using the lower-level TermElab API, which can lose track of goals - it's written in a way that doesn't require goals to be in some particular order This was motivated by some multiGoalLinter issues I ran into when working on https://github.com/leanprover/lean4/pull/9942 --- [](https://gitpod.io/from-referrer/) | merge-conflict t-order t-meta | 14/16 | Mathlib/Order/Filter/Defs.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 7125 | eric-wieser | feat: additive monoid structure via biproducts | I suspect I'm missing a trick with these transport lemmas. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory awaiting-CI | 237/0 | Mathlib/CategoryTheory/Limits/Skeleton.lean | 1 | 3 | ['alreadydone', 'eric-wieser', 'mathlib4-merge-conflict-bot'] | nobody | 5 months ago | unknown | unknown |
| 25480 | ocfnash | feat: define a concrete model of the `𝔤₂` root system | This is a bit of an experiment to test API but it should also make it easier to prove some properties of `𝔤₂`. --- - [x] depends on: #25477 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra large-import | 120/15 | Mathlib/LinearAlgebra/RootSystem/Defs.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean | 3 | 9 | ['eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] | nobody | 5 months ago | unknown | unknown |
| 21950 | erdOne | feat(NumberTheory/Padics): the completion of `ℚ` at a finite place is `ℚ_[p]` | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-number-theory | 253/1 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/NumberTheory/Padics/HeightOneSpectrum.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean,Mathlib/Topology/Algebra/WithZeroMulInt.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean | 7 | 33 | ['Ruben-VandeVelde', 'erdOne', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'pechersky', 'smmercuri', 'xroblot'] | nobody | 5 months ago | unknown | unknown |
| 23621 | astrainfinita | chore: deprecate `LinearOrderedComm{Monoid, Group}WithZero` | --- [](https://gitpod.io/from-referrer/) - [x] depends on: #20676 | merge-conflict t-algebra t-order | 261/205 | Archive/Imo/Imo1998Q2.lean,Counterexamples/LinearOrderWithPosMulPosEqZero.lean,Mathlib/Algebra/Order/Field/Canonical.lean,Mathlib/Algebra/Order/Field/Rat.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Nonneg/Field.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/NNRat/Lemmas.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/GroupTheory/ArchimedeanDensely.lean,Mathlib/NumberTheory/EllipticDivisibilitySequence.lean,Mathlib/NumberTheory/FunctionField.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/RingTheory/Valuation/Archimedean.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/ExtendToLocalization.lean,Mathlib/RingTheory/Valuation/Integers.lean,Mathlib/RingTheory/Valuation/Integral.lean,Mathlib/RingTheory/Valuation/Minpoly.lean,Mathlib/RingTheory/Valuation/Quotient.lean,Mathlib/RingTheory/Valuation/RankOne.lean,Mathlib/RingTheory/Valuation/ValExtension.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean,Mathlib/Topology/UnitInterval.lean,MathlibTest/instance_diamonds.lean,scripts/noshake.json | 44 | 24 | ['YaelDillies', 'astrainfinita', 'github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | kbuzzard | 4 months ago | unknown | unknown |
| 16773 | arulandu | feat(Probability/Distributions): formalize Beta distribution | Formalize Beta distribution, using Gamma distribution as a reference. Added real-valued beta wrapper, in the manner of gamma. Thanks to @EtienneC30 for help with casting real <-> complex. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-measure-probability | 286/1 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean,Mathlib/Probability/Distributions/Beta.lean | 3 | 50 | ['EtienneC30', 'arulandu', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | arulandu | 4 months ago | unknown | unknown |
| 21853 | smmercuri | feat: the adele ring of a number field is locally compact | --- - [ ] depends on: #21158 - [ ] depends on: #21847 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-number-theory large-import | 398/3 | Mathlib.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/NumberTheory/NumberField/AdeleRing.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean,Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean | 9 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 4 months ago | unknown | unknown |
| 29855 | eric-wieser | chore(Data/Finset/Sort): lemmas about `0 : Fin _` and `Fin.last _` | We already had these for `⟨0, ⋯⟩` and `⟨k - 1, ⋯⟩`. Moves: - `Finset.orderEmbOfFin_zero` -> `Finset.orderEmbOfFin_mk_zero` - `Finset.orderEmbOfFin_last` -> `Finset.orderEmbOfFin_mk_last` --- [](https://gitpod.io/from-referrer/) | t-data t-order delegated easy | 17/7 | Mathlib/Combinatorics/Enumerative/Composition.lean,Mathlib/Data/Finset/Sort.lean | 2 | 4 | ['eric-wieser', 'github-actions', 'mathlib-bors', 'ocfnash'] | nobody | 4 months ago | 159 days ago | 3 days |
| 19616 | adamtopaz | fix: fix the definition of the absolute Galois group of a field | Previously it was defined as the Galois group of the algebraic closure, as opposed to the separable closure. Also, this adds some missing instances for this group. Still missing is compactness, but that seems like a bigger project. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-number-theory | 23/8 | Mathlib/FieldTheory/AbsoluteGaloisGroup.lean,Mathlib/FieldTheory/KrullTopology.lean | 2 | 4 | ['acmepjz', 'alreadydone', 'github-actions'] | nobody | 4 months ago | unknown | unknown |
| 25225 | xcloudyunx | feat(Combinatorics/SimpleGraph): Eulerian walk in connected graph contains all vertices | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-combinatorics new-contributor | 16/0 | Mathlib/Combinatorics/SimpleGraph/Trails.lean | 1 | 6 | ['IvanRenison', 'github-actions', 'vlad902'] | kmill | 4 months ago | unknown | unknown |
| 24532 | robertmaxton42 | feat(LinearAlgebra/FreeProduct): fill out the `FreeProduct.asPowers` namespace | * Replicate the existing API for `LinearAlgebra.FreeProduct` under `FreeProduct.asPowers`, for convenience when working primarily with the power algebra representation * Adds convenience lemmas for using the corresponding quotient relation `rel'` (used in the above). --- - [x] depends on: #24531 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 122/5 | Mathlib/LinearAlgebra/FreeProduct/Basic.lean | 1 | 26 | ['YaelDillies', 'adomani', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robertmaxton42'] | nobody | 4 months ago | unknown | unknown |
| 25692 | Whysoserioushah | feat(RingTheory/MatrixAlgebra): add a more general version of `matrixEquivTensor` | This adds `tensorMatrixLinearEquiv : A ⊗[R] Matrix n n B ≃ₐ[S] Matrix n n (A ⊗[R] B)`
which is a more general version of `matrixEquivTensor : Matrix n n A ≃ₐ[R] (A ⊗[R] Matrix n n R)`.
The latter is then implemented as a trivial consequence of the former.
Many internal implementation details are deleted without deprecation, although strictly these were not private.
Co-authored-by: @erdOne |
merge-conflict awaiting-author t-ring-theory | 129/110 | Mathlib/RingTheory/MatrixAlgebra.lean | 1 | 28 | ['Whysoserioushah', 'chrisflav', 'eric-wieser', 'github-actions', 'jcommelin', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mattrobball'] | chrisflav | 4 months ago | 196 days ago | 47 days |
| 25012 | urkud | refactor(*): migrate from `Matrix.toLin'` to `Matrix.mulVecLin` | or `Matrix.mulVec` whenever we don't need the `LinearEquiv.symm` part. See [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Matrix.2EtoLin'.20vs.20Matrix.2EmulVecLin/with/515188548). It makes sense to have only one normal form, and `Matrix.toLin'` has an extra `DecidableEq` assumption. --- [](https://gitpod.io/from-referrer/) | merge-conflict | 165/126 | Mathlib/Algebra/Lie/Matrix.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/Matrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/LinearAlgebra/Determinant.lean,Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean,Mathlib/LinearAlgebra/Matrix/BilinearForm.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean,Mathlib/LinearAlgebra/Matrix/Diagonal.lean,Mathlib/LinearAlgebra/Matrix/Gershgorin.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Matrix/ToLin.lean,Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean,Mathlib/LinearAlgebra/UnitaryGroup.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean | 19 | 4 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 4 months ago | unknown | unknown |
| 14752 | AntoineChambert-Loir | fix(Topology/Algebra/Valued): repair definition of Valued | Following a [discussion on Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Question.20about.20.60Valued.2Eis_topological_valuation.60), we modify the definition of the field `is_topological_valuation` of `Valued` insisting that the element $\gamma$ showing up there is in the subgroup generated by the image of the valuation map. Co-authored-by: @faenuccio - [x] depends on: #25496 | merge-conflict WIP t-topology t-algebra | 1166/301 | Mathlib.lean,Mathlib/Algebra/GroupWithZero/Range.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/RingTheory/Valuation/RankOne.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean,Mathlib/Topology/UniformSpace/AbstractCompletion.lean,docs/references.bib | 12 | 28 | ['AntoineChambert-Loir', 'faenuccio', 'github-actions', 'jcommelin', 'kbuzzard', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'riccardobrasca'] | nobody | 3 months ago | unknown | unknown |
| 15651 | 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 --- [](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 | 3 months ago | unknown | unknown |
| 12032 | mcdoll | feat: delta distribution as a limit | --- - [ ] depends on: #11496 [](https://gitpod.io/from-referrer/) | WIP t-analysis | 58/0 | Mathlib/Analysis/Distribution/DiracDelta.lean | 1 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 9693 | madvorak | feat: Linear programming in the standard form | --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237386.20Linear.20Programming Four PRs incompatible with each other: https://github.com/leanprover-community/mathlib4/pull/7386 (list of constraints) https://github.com/leanprover-community/mathlib4/pull/9693 (matrix form) https://github.com/leanprover-community/mathlib4/pull/10026 (Antoine Chambert-Loir's def; semirings, linear) https://github.com/leanprover-community/mathlib4/pull/10159 (Antoine Chambert-Loir's def; rings, affine) - [x] depends on: #9652 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 86/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/LinearProgramming.lean | 2 | 15 | ['apurvanakade', 'github-actions', 'leanprover-community-mathlib4-bot', 'madvorak', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 15649 | 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] [](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 | 3 months ago | unknown | unknown |
| 5745 | alexjbest | feat: a tactic to consume type annotations, and make constructor nicer | During the copenhagen masterclass I found some situations where applying the constructor tactic left the goal in a difficult to read state when autoParams were present. We add a simple tactic to clean these up, and a macro for `constructor` to behave more like the constructor notation and do this automatically (constructor is in core) It seems that these things should be cleaned up by simp, but a simp lemma to remove these annotations is not accepted by lean as the types are too similar. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 41/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Consume.lean,test/consume.lean | 4 | 5 | ['alexjbest', 'digama0', 'kim-em', 'kmill', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 5863 | eric-wieser | feat: add elaborators for concrete matrices | --- - [x] depends on: #5866 - [ ] depends on: #5897 [](https://gitpod.io/from-referrer/) | merge-conflict help-wanted blocked-by-other-PR t-meta | 257/7 | Mathlib/Control/Monad/Cont.lean,Mathlib/Data/Matrix/Auto.lean,MathlibTest/matrix_auto.lean | 3 | 8 | ['eric-wieser', 'github-actions', 'kim-em', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 5919 | MithicSpirit | feat: implement orthogonality for AffineSubspace | Define `AffineSubspace.orthogonal` and `AffineSubspace.IsOrtho`, as well as develop an API emulating that of `Submodule.orthogonal` and `Submodule.IsOrtho`, respectively. Additionally, provide some relevant lemmas exclusive to affine subspaces, which are mostly to do with the relationship between orthogonality and `AffineSubspace.Parallel`. Closes #5539 --- Still WIP as I need to add more docstrings as well as notations for the new definitions. [](https://gitpod.io/from-referrer/) | WIP new-contributor merge-conflict help-wanted t-analysis | 287/0 | Mathlib.lean,Mathlib/Analysis/InnerProductSpace/AffineSubspace.lean | 2 | 7 | ['MithicSpirit', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | MithicSpirit | 3 months ago | unknown | unknown |
| 7386 | madvorak | feat: Define linear programs | Linear programs over a general `Module` with constraints given in the form "aᵀx - b ≥ 0" and the objective function as an `AffineMap` to be minimized. --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237386.20Linear.20Programming Four PRs incompatible with each other: https://github.com/leanprover-community/mathlib4/pull/7386 (list of constraints) https://github.com/leanprover-community/mathlib4/pull/9693 (matrix form) https://github.com/leanprover-community/mathlib4/pull/10026 (Antoine Chambert-Loir's def; semirings, linear) https://github.com/leanprover-community/mathlib4/pull/10159 (Antoine Chambert-Loir's def; rings, affine) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 87/0 | Mathlib.lean,Mathlib/LinearAlgebra/LinearProgramming.lean | 2 | 64 | ['Shreyas4991', 'YaelDillies', 'eric-wieser', 'github-actions', 'kim-em', 'madvorak', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 9352 | chenyili0818 | feat: arithmetic lemmas for `gradient` | This file is based on Mathlib.Analysis.Calculus.Gradient.Basic, and describes the calculation properties Co-authored-by: Ziyu Wang [tropicalfish910@gmail.com](mailto:tropicalfish910@gmail.com) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-analysis | 404/0 | Mathlib.lean,Mathlib/Analysis/Calculus/Gradient/Lemmas.lean | 2 | 31 | ['chenyili0818', 'github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot', 'sgouezel', 'winstonyin'] | nobody | 3 months ago | unknown | unknown |
| 9795 | sinhp | feat: the type `Fib` of fibre of a function at a point | This is the most basic file of the theory of fibred categories developed here: https://github.com/sinhp/LeanFibredCategories/tree/master --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 74/0 | Mathlib.lean,Mathlib/Data/Fiber.lean | 2 | 18 | ['adri326', 'joelriou', 'mathlib4-merge-conflict-bot', 'sinhp'] | nobody | 3 months ago | unknown | unknown |
| 10660 | eric-wieser | feat(LinearAlgebra/CliffordAlgebra): construction from a basis | This is adapted from https://github.com/eric-wieser/lftcm2023-clifford_algebra, which only worked for the special case of `Q = 0`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP awaiting-author t-algebra | 573/0 | Mathlib.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Basis.lean | 2 | 16 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 10977 | grunweg | feat: germs of smooth functions | Define the space of germs of smooth functions (between manifolds). Endow it with a ring structure if the target manifold is a smooth ring (e.g., a Lie group or a field). From the sphere eversion project, rewritten by me. Co-authored-by: Patrick Massot ------- Particular questions for review - is the authorship/copyright information appropriate? (`PatrickMassot` created the file `SmoothGerm` which I adapted; I didn't trace this far back through sphere-eversion.) - is providing all the intermediate algebraic structures (such as, an additive subgroup) on the space of smooth germs useful in practice? (The sphere eversion project only needs a ring structure.) - any further particular API lemmas (e.g., around coercions) which would be good to add? --- [](https://gitpod.io/from-referrer/) | t-differential-geometry merge-conflict awaiting-author t-topology t-analysis | 150/0 | Mathlib.lean,Mathlib/Geometry/Manifold/Algebra/SmoothGerm.lean | 2 | 34 | ['YaelDillies', 'github-actions', 'grunweg', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot', 'mcdoll'] | fpvandoorn | 3 months ago | unknown | unknown |
| 10998 | hmonroe | feat(Logic): Arithmetization of partial recursive functions (toward Gödel's first incompleteness theorem) | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 364/0 | Mathlib.lean,Mathlib/Logic/Godel/PartArith.lean | 2 | 4 | ['Ruben-VandeVelde', 'YaelDillies', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 11890 | adomani | feat: the terminal refine linter | A linter that warns on usages of `refine` and `refine'` as a finishing tactic. See this [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Usage.20of.20refine'). ### Conclusion of the experiment Systematic replacements of terminal `refine` with `exact` leads to an overall slow-down. --- - [ ] depends on: #15616 (disable the linter in downstream projects) [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 77/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/TerminalRefineLinter.lean | 3 | 15 | ['adomani', 'github-actions', 'grunweg', 'joneugster', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 3 months ago | unknown | unknown |
| 12006 | adomani | feat: the `suffa` tactic | The `suffa` tactic. `suffa tac` runs the tactic sequence `tac` and returns a `Try this:` suggestion of the form `suffices [target_after_tac] by tac; assumption`. For example ```lean example {m n : Nat} (h : m = n) : 0 + m = n := by suffa rewrite [Nat.zero_add] assumption ``` suggests the replacement ```lean example {m n : Nat} (h : m = n) : 0 + m = n := by suffices m = n by rewrite [Nat.zero_add] assumption assumption ``` See [this thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Try.20this.3A.20suffices.20simpa) as well as [this message](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2311822.20flexible.20tactics.20linter/near/431895664). --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 161/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Suffa.lean,test/Suffa.lean | 4 | 4 | ['MoritzBeroRoos', 'YaelDillies', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 13442 | dignissimus | feat: mabel tactic for multiplicative abelian groups | Mabel tactic for multiplicative abelian groups (#10361) --- [](https://gitpod.io/from-referrer/) | new-contributor merge-conflict modifies-tactic-syntax awaiting-author help-wanted t-meta | 439/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/MAbel.lean,MathlibTest/mabel.lean | 4 | 11 | ['BoltonBailey', 'dignissimus', 'github-actions', 'joneugster', 'kbuzzard', 'mathlib4-merge-conflict-bot'] | joneugster | 3 months ago | unknown | unknown |
| 14237 | js2357 | feat: Define the localization of a fractional ideal at a prime ideal | Define the localization of a fractional ideal at a prime ideal, and prove some basic properties. --- This PR is part 3 out of 4 of a proof of `isDedekindDomain_iff_isDedekindDomainDvr`. Part 4 is available here: #14242 - [x] depends on: #14099 Part 1 - [x] depends on: #14216 Part 2 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 230/0 | Mathlib.lean,Mathlib/RingTheory/FractionalIdeal/LocalizedAtPrime.lean,Mathlib/RingTheory/Localization/Basic.lean | 3 | 22 | ['Vierkantor', 'YaelDillies', 'github-actions', 'js2357', 'kbuzzard', 'leanprover-community-bot-assistant', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] | Vierkantor | 3 months ago | unknown | unknown |
| 14345 | digama0 | feat: the Dialectica category is monoidal closed | - [x] depends on: #14274 The monoidal closed structure of the Dialectica category. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 252/0 | Mathlib.lean,Mathlib/CategoryTheory/Dialectica/Closed.lean | 2 | 4 | ['github-actions', 'kim-em', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 14727 | jjaassoonn | feat(RingTheory/Flat/CategoryTheory): a flat module has vanishing higher Tor groups | [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 37/1 | Mathlib/RingTheory/Flat/CategoryTheory.lean | 1 | 4 | ['github-actions', 'kim-em', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 14733 | jjaassoonn | feat(RingTheory/Flat/CategoryTheory): a module is flat iff tensoring preserves finite limits | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-ring-theory | 99/1 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/RightExact.lean,Mathlib/RingTheory/Flat/CategoryTheory.lean | 4 | 3 | ['github-actions', 'kim-em', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 15055 | sinhp | feat: the category of pointed objects of a concrete category | This file defines the category of pointed objects of a concrete category. After this we will have the categories of pointed groups, pointed abelian groups, pointed groupoids, etc. To define `Pointed.functor`, we need to add the following "pullback" construction to the category of elements. ``` @[simps obj map] def pullback (F : D ⥤ Type w) (G : C ⥤ D) : (G ⋙ F).Elements ⥤ F.Elements where obj X := ⟨G.obj X.1, X.2⟩ map {X Y} f := ⟨G.map f.1, f.2⟩ ``` This is called pullback since the display map of `G ⋙ F` (i.e. `π (G ⋙ F)`) is a pullback of the display map of `F`. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 185/0 | Mathlib.lean,Mathlib/CategoryTheory/ConcreteCategory/Pointed.lean,Mathlib/CategoryTheory/Elements.lean | 3 | 14 | ['dagurtomas', 'github-actions', 'kim-em', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 15224 | AnthonyBordg | feat(CategoryTheory/Sites): covering families and their associated Grothendieck topology | Define covering families on a category and their associated Grothendieck topology by using the API for `Coverage`. Give an explicit characterization of the covering sieves of the said topology. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 112/0 | Mathlib.lean,Mathlib/CategoryTheory/Sites/CoveringFamilies.lean | 2 | 21 | ['AnthonyBordg', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 16303 | grunweg | feat(CI): check for badly formatted titles or missing/contradictory labels | --- The zulip workflow is entirely cargo-culted from #16296; please review carefully. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author CI | 325/0 | .github/build.in.yml,Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/ValidatePRTitle.lean,MathlibTest/ValidatePRTitle.lean,lakefile.lean,scripts/README.md,scripts/check-title-labels.lean | 8 | 45 | ['Command-Master', 'adomani', 'bryangingechen', 'edegeltje', 'github-actions', 'grunweg', 'joneugster', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | bryangingechen | 3 months ago | unknown | unknown |
| 18236 | joelriou | feat(Algebra/Category/ModuleCat/Presheaf): the endofunctor of presheaves of modules induced by an oplax natural transformation | An endomorphism of ` ModuleCat.restrictScalarsPseudofunctor`, i.e. a "compatible" family of functors `ModuleCat A ⥤ ModuleCat A` for all (commutative) rings `A` induces a functor `PresheafOfModules R ⥤ PresheafOfModules R` for any presheaf of (commutative) rings `R`. In #18262, this is applied to the construction of exterior powers of a presheaves of modules. --- - [x] depends on: #18197 [](https://gitpod.io/from-referrer/) | WIP t-algebra t-category-theory awaiting-CI merge-conflict awaiting-author | 180/0 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/FunctorOfNatTrans.lean | 2 | 6 | ['github-actions', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 18749 | GabinKolly | feat(ModelTheory): preparatory work for the existence of Fraïsse limits | Define the map of a PartialEquiv through an embedding, and related properties. Define embeddings and equivalences between equal structures or equal substructures, and related properties. Add miscellaneous lemmas which will be used to prove the existence of fraisse limits. --- This is preparation for #18876 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-logic | 308/5 | Mathlib/ModelTheory/Bundled.lean,Mathlib/ModelTheory/DirectLimit.lean,Mathlib/ModelTheory/FinitelyGenerated.lean,Mathlib/ModelTheory/PartialEquiv.lean,Mathlib/ModelTheory/Substructures.lean | 5 | 10 | ['GabinKolly', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] | nobody | 3 months ago | unknown | unknown |
| 18876 | GabinKolly | feat(ModelTheory/Fraisse): add proof that Fraïssé limits exist | Fraïssé limits exist. --- All the preparatory work done in other files is contained in the pull request #18749, this pull request adds the work done in ModelTheory/Fraisse, the definition of the sequence of structures whose limit will be the Fraïssé limit, lemmas about this sequence, and then the proof that the limit is indeed a Fraïssé limit. - [ ] depends on: #18749 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-logic | 666/5 | Mathlib/ModelTheory/Bundled.lean,Mathlib/ModelTheory/DirectLimit.lean,Mathlib/ModelTheory/FinitelyGenerated.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/PartialEquiv.lean,Mathlib/ModelTheory/Substructures.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 19323 | madvorak | feat: Function to Sum decomposition | --- Discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Function.20to.20Sum.20decomposition | merge-conflict WIP t-data | 50/0 | Mathlib.lean,Mathlib/Data/Sum/Decompose.lean | 2 | 3 | ['github-actions', 'madvorak', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 19378 | adamtopaz | feat: Explanation widgets | This adds some simple widgets, wrapped in a tactic, term and command elaborator, for displaying markdown explanations in the infoview. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 101/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Widget/Explain.lean | 3 | 9 | ['adamtopaz', 'eric-wieser', 'github-actions', 'joneugster', 'kmill', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 19456 | AntoineChambert-Loir | feat(Data/Finsupp/MonomialOrder/DegRevLex): homogeneous reverse lexicographic order | Definition of the homogeneous reverse lexicographic order --- - [x] depends on: #19453 - [x] depends on: #19455 [](https://gitpod.io/from-referrer/) | WIP t-order t-data merge-conflict t-algebraic-geometry | 362/0 | Mathlib.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/Finsupp/MonomialOrder/DegRevLex.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 20051 | Timeroot | feat: `Clone` and some instances | Defines clones (`Clone`). And there is a file, `Instances.lean`, that gives several most important examples of Clones. In particular, it has all of the clones (in an appropriately general form) that occur in [Post's Lattice](https://en.wikipedia.org/wiki/Post%27s_lattice), and [later proving](https://github.com/leanprover-community/mathlib4/pull/24744) the completeness of Post's Lattice is why I'm making this PR. (Edit: Used to also say "Defined operads (`Operad`), symmetric operads (`SymmOperad`), and clones ... There is a proof that all clones have a natural operad structure.". This has been scrapped.) --- - [x] depends on: #20133 [basics and notations] - [x] depends on: #20134 [permutations] - [x] depends on: #20138 [operad] - [x] depends on: #20141 [clone] - [x] depends on: #23459 [defs] - [ ] depends on: #23460 [basic] [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra blocked-by-other-PR | 623/0 | Mathlib.lean,Mathlib/Algebra/Clone/Basic.lean,Mathlib/Algebra/Clone/Defs.lean,Mathlib/Algebra/Clone/Instances.lean,Mathlib/Data/Fin/Basic.lean | 5 | 33 | ['Timeroot', 'YaelDillies', 'eric-wieser', 'github-actions', 'jcommelin', 'kbuzzard', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'wmacmil'] | nobody | 3 months ago | unknown | unknown |
| 20466 | MohanadAhmed | feat: Sherman Morrison formula for rank 1 update of the matrix inverse | Provides the Sherman Morrison rank 1 update of the matrix inverse https://en.wikipedia.org/wiki/Sherman%E2%80%93Morrison_formula. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 37/0 | Mathlib/Data/Matrix/Invertible.lean | 1 | 5 | ['eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 20648 | 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 [](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 | 3 months ago | unknown | unknown |
| 20649 | GabinKolly | feat(ModelTheory/Graph): prove characterization of the fraisse limit of finite simple graphs | Prove that a countable graph with the extension property must be the Fraisse limit of finite simple graphs. --- [](https://gitpod.io/from-referrer/) | WIP large-import merge-conflict t-combinatorics t-logic | 175/0 | Mathlib/ModelTheory/Graph.lean,Mathlib/ModelTheory/Substructures.lean | 2 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 20652 | jjaassoonn | feat: categorical description of center of a ring | We show the isomorphism between `Z(R)` and `End(1 Mod-R)` --- - [x] depends on:#20721 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra t-category-theory | 212/21 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/Ring/Center.lean,Mathlib/CategoryTheory/Conj.lean,Mathlib/CategoryTheory/Endomorphism.lean,Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean,Mathlib/CategoryTheory/Preadditive/Basic.lean | 7 | 42 | ['alreadydone', 'github-actions', 'jcommelin', 'jjaassoonn', 'kbuzzard', 'mathlib4-merge-conflict-bot', 'qawbecrdtey'] | nobody | 3 months ago | unknown | unknown |
| 20924 | tomaz1502 | feat(Computability/QueryComplexity): Oracle-based computation | This PR adds the types and lemmas for oracle-based computation. In this model, computations are run on a monad which also counts the number of oracle queries executed. With it, it becomes possible to reason about the upper bound of the query complexity of algorithms. In the future, we could extend this work to include the necessary bits from information theory and probability to also reason about lower bounds on query complexity, like the work in https://github.com/girving/debate.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2318629.20runtime.20complexity.20of.20sorting.20a.20list
Co-authored-by: Geoffrey Irving |
merge-conflict t-computability | 305/0 | Mathlib.lean,Mathlib/Computability/QueryComplexity/Basic.lean,Mathlib/Computability/QueryComplexity/Defs.lean | 3 | 60 | ['eric-wieser', 'girving', 'github-actions', 'mathlib4-merge-conflict-bot', 'quangvdao', 'tomaz1502'] | nobody | 3 months ago | unknown | unknown |
| 20956 | tomaz1502 | feat(Computability/QueryComplexity/Sort.lean): Formalization of upper bound of queries for merge sort | This PR builds on top of #20924 to prove that merge sort (as defined in Lean's library) never executes more than `3 * n * ceil_log2 n` comparisons, where `n` is the size of the input list and `ceil_log2` is the ceil of the logarithm in base 2, which is defined in this PR.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2318629.20runtime.20complexity.20of.20sorting.20a.20list
- [ ] depends on: #20924
Co-authored-by: Geoffrey Irving |
merge-conflict t-computability blocked-by-other-PR | 676/0 | Mathlib.lean,Mathlib/Computability/QueryComplexity/Basic.lean,Mathlib/Computability/QueryComplexity/Defs.lean,Mathlib/Computability/QueryComplexity/Sort.lean | 4 | 4 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 21270 | GabinKolly | feat(ModelTheory/Bundled): first-order embeddings and equivalences from equalities | Add first-order embeddings and equivalences from equalities between bundled structures. --- Add two definitions to get embeddings and equivalences from equalities between bundled structures, and simple properties. This is some preparatory work for #18876 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author large-import t-logic | 102/0 | Mathlib/ModelTheory/Bundled.lean | 1 | 27 | ['GabinKolly', 'Vierkantor', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 21277 | GabinKolly | feat(ModelTheory/PartialEquiv): Define the mapping of a self-partialEquiv through an embedding | Define the mapping of a self-partialEquiv through an embedding and the notion of fully extendable partialEquiv. --- This is some preparatory work for #18876 - [ ] depends on: #21276 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-logic | 215/5 | Mathlib/ModelTheory/PartialEquiv.lean,Mathlib/ModelTheory/Substructures.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 21616 | peabrainiac | feat(Topology): concatenating countably many paths | Adds `Path.countableConcat`, the concatenation of a sequence of paths leading up to some point `x`. --- - [x] depends on: #21591 - [x] depends on: #21607 This work is a prerequisite to #20248, where it is used to show that the topology of first-countable locally path-connected spaces is coinduced by all the paths in that space. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 229/0 | Mathlib.lean,Mathlib/Topology/Path/CountableConcat.lean | 2 | 31 | ['YaelDillies', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'peabrainiac'] | YaelDillies | 3 months ago | unknown | unknown |
| 21624 | sinhp | feat(CategoryTheory): The (closed) monoidal structure on the product category of families of (closed) monoidal categories | Given a family of closed monoidal categories, we show that the product of these categories is a closed monoidal category with the pointwise monoidal structure. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 144/0 | Mathlib.lean,Mathlib/CategoryTheory/Pi/Basic.lean,Mathlib/CategoryTheory/Pi/Monoidal.lean,Mathlib/CategoryTheory/Pi/MonoidalClosed.lean | 4 | 20 | ['TwoFX', 'YaelDillies', 'b-mehta', 'github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot', 'sinhp'] | nobody | 3 months ago | unknown | unknown |
| 21829 | Whysoserioushah | feat(LinearAlgebra/TensorProduct/HomTensor): Add TensorProduct of Hom-modules | Co-authored-by: Andrew Yang |
merge-conflict awaiting-author t-algebra | 174/0 | Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/HomTensor.lean | 2 | 27 | ['Whysoserioushah', 'YaelDillies', 'erdOne', 'github-actions', 'kbuzzard', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 21903 | yhtq | feat: add from/toList between `FreeSemigroup` and `List` with relative theorems | Add from/toList between `FreeSemigroup` and `List` with relative theorems, as well as an incidental definition of lexicographic order on `FreeSemigroup`. --- [](https://gitpod.io/from-referrer/) | t-algebra new-contributor awaiting-CI large-import merge-conflict | 169/0 | Mathlib/Algebra/Free.lean | 1 | 12 | ['YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22159 | shetzl | feat: add definition of pushdown automata | Add the definition of pushdown automata and their two acceptance conditions: acceptance based on empty stack and acceptance based on final state.
Co-authored-by: Tobias Leichtfried |
merge-conflict t-computability awaiting-author new-contributor | 70/0 | Mathlib.lean,Mathlib/Computability/PDA.lean | 2 | 35 | ['YaelDillies', 'github-actions', 'madvorak', 'mathlib4-merge-conflict-bot', 'shetzl'] | nobody | 3 months ago | unknown | unknown |
| 22231 | pechersky | feat(Algebra/Valued): `AdicExpansion` initial defns | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra awaiting-author t-topology | 299/0 | Mathlib.lean,Mathlib/Topology/Algebra/Valued/AdicExpansion.lean | 2 | 8 | ['Thmoas-Guan', 'github-actions', 'grunweg', 'jcommelin', 'mathlib4-merge-conflict-bot'] | jcommelin | 3 months ago | unknown | unknown |
| 22232 | pechersky | feat(Algebra/Valued): `AdicExpansion.apprUpto` | --- - [ ] depends on: #22231 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology blocked-by-other-PR | 399/0 | Mathlib.lean,Mathlib/Topology/Algebra/Valued/AdicExpansion.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22233 | pechersky | feat(Algebra/Valued): `AdicExpansion.evalAt` | --- - [ ] depends on: #22231 [](https://gitpod.io/from-referrer/) | merge-conflict t-topology blocked-by-other-PR | 488/0 | Mathlib.lean,Mathlib/Topology/Algebra/Valued/AdicExpansion.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22302 | 658060 | feat: add `CategoryTheory.Topos.Power` | This is a continuation of #21281 with the end goal of defining topoi in Mathlib. It introduces the notion of a power object in a category with a subobject classifier, which is a special case of an internal hom. The definition `HasPowerObjects C` contained in this PR is all that remains before `IsTopos C` can be defined. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 312/0 | Mathlib.lean,Mathlib/CategoryTheory/Topos/Power.lean | 2 | 3 | ['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot'] | b-mehta | 3 months ago | unknown | unknown |
| 22314 | shetzl | feat: add leftmost derivations for context-free grammars | Leftmost derivations are often easier to reason about than arbitrary derivations. This PR adds leftmost variants of Rewrites, Produces and Derives to the existing definition of context-free grammars and proves that a string of terminals can be derived iff it can be leftmost derived.
Co-authored-by: Tobias Leichtfried |
merge-conflict t-computability awaiting-author new-contributor | 383/0 | Mathlib.lean,Mathlib/Computability/LeftmostDerivation.lean | 2 | 55 | ['YaelDillies', 'github-actions', 'madvorak', 'mathlib4-merge-conflict-bot', 'shetzl'] | YaelDillies | 3 months ago | unknown | unknown |
| 22662 | plp127 | feat: Localization.Away.lift (computably) | This PR adds `Localization.Away.lift'` and `Localization.Away.lift`, computable alternatives to `Localization.awayLift`. --- - [x] depends on: #24791 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 74/0 | Mathlib/RingTheory/Localization/Away/Basic.lean | 1 | 18 | ['eric-wieser', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] | kim-em | 3 months ago | unknown | unknown |
| 22790 | mhk119 | feat: Extend `taylor_mean_remainder_lagrange` to `x < x_0` | The `taylor_mean_remainder_lagrange` theorem has the assumption that $x_0 < x$. In many applications, we need $x < x_0$ and one cannot use the current version to obtain this (see [zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Taylor's.20theorem)). This PR introduces a set of theorems that push negations through Taylor expansions so that one can extend `taylor_mean_remainder_lagrange` to the case when $x < x_0$. These theorems should also be useful elsewhere since they are quite general. | merge-conflict awaiting-author t-analysis new-contributor | 111/1 | Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/Calculus/Taylor.lean | 3 | 13 | ['Paul-Lez', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'mhk119'] | nobody | 3 months ago | unknown | unknown |
| 22861 | eric-wieser | feat: add the trace of a bilinear form | Following the steps at [#Is there code for X? > Laplacian @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Laplacian/near/450834505). --- [](https://gitpod.io/from-referrer/) Some questions: * Does this generalize to multilinear maps? * Is there an `RCLike` generalization? * Does this generalize to `BilinMap` instead of just `BilinForm`? Perhaps the approach in [#mathlib4 > Stating Schrodinger's equation @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Stating.20Schrodinger's.20equation/near/500409890) of using `ContinuousLinearMap.adjoint'` is better. | merge-conflict awaiting-author t-algebra | 100/0 | Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/Trace.lean | 2 | 4 | ['github-actions', 'jcommelin', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 22919 | plp127 | feat(Data/Fintype/Pi): Make `Fintype` instance for `RelHom`s computable | Makes the `Fintype` instance for rel homs computable. See this [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Classical.20vs.20constructive.20logic.20in.20computation/near/496220816) message. --- - [x] depends on: #24748 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data | 178/44 | Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Data/Fintype/CardEmbedding.lean,Mathlib/Data/Fintype/Pi.lean | 5 | 31 | ['IvanRenison', 'b-mehta', 'eric-wieser', 'fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] | b-mehta | 3 months ago | unknown | unknown |
| 22954 | eric-wieser | feat(RingTheory/Congruence/Hom): copy from GroupTheory | This was motivated in review of #22355, but I no longer recall why. It also helps with #29357. Either way, this captures a definition that was inlined in a later file. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 214/16 | Mathlib/Algebra/RingQuot.lean,Mathlib/GroupTheory/Congruence/Hom.lean,Mathlib/RingTheory/Congruence/Defs.lean,Mathlib/RingTheory/Congruence/Hom.lean,Mathlib/RingTheory/TwoSidedIdeal/Kernel.lean | 5 | 3 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 23285 | AntoineChambert-Loir | refactor: directed systems in terms of functors | This is a WIP aiming to refactor the work on directed systems using the category theory library. But there are universes nightmares. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra t-category-theory large-import merge-conflict | 111/45 | Mathlib/Order/DirectedInverseSystem.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 23460 | Timeroot | feat: Definition of `Clone` | Basics about Clones. Part of #20051 --- - [ ] depends on: #26329 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR | 326/0 | Mathlib.lean,Mathlib/Algebra/Clone/Basic.lean,Mathlib/Algebra/Clone/Defs.lean,Mathlib/Data/Fin/Basic.lean | 4 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 23503 | apnelson1 | feat(Topology/Instances/ENat): ENat and tsum | We give API for the interactions between `tsum` and `ENat`. The type is especially nice, because every function is summable, and there are simplifying lemmas like the statement that a sum is infinite iff either some term is infinite, or the support is infinite. This provides one of the missing pieces for working painlessly with discrete objects, 'propositional' finiteness and cardinality. For instance, one can sum a function `f : a -> ENat` over an arbitrary set with the term `∑' a : s, 1`, and it will be provable that `∑' a : s, 1 = s.encard` and `(support f).encard ≤ ∑' a, f a` without ever having to split into finite/infinite cases. As is pointed out in the module docstring for `Data.ENat`, there are strong analogies between `ENat` and `ENNReal`, and the API runs parallel to the API for `tsum`/`ENNReal`. One could call it 'duplication', but I have yet to find a common generalization of the two that saves work, or a third example of a natural type with these same properties. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-topology large-import | 205/2 | Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Set/Card.lean,Mathlib/Topology/Instances/ENat.lean | 3 | 3 | ['eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 23585 | plp127 | feat: `Filter.atMax` and `Filter.atMin` | Adds `atMax` and `atMin`, filters. Making an analogy, `atMax` : `atTop` :: `IsMax` : `IsTop`. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order | 148/0 | Mathlib.lean,Mathlib/Order/Filter/AtMaxMin.lean | 2 | 5 | ['github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'urkud'] | nobody | 3 months ago | unknown | unknown |
| 23758 | erdOne | feat(Topology/Algebra): linearly topologized iff non-archimedean | ...for topological modules over compact rings or `ℤ`-finite rings --- [](https://gitpod.io/from-referrer/) | t-algebra large-import merge-conflict awaiting-author t-topology | 138/3 | Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/Topology/Algebra/LinearTopology.lean | 2 | 22 | ['ADedecker', 'AntoineChambert-Loir', 'erdOne', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | ADedecker and AntoineChambert-Loir | 3 months ago | unknown | unknown |
| 23835 | chrisflav | feat(Topology): cardinality of connected components is bounded by cardinality of fiber | We show that if `f : X → Y` is an open and closed map to `Y` and `Y` is connected, the number of connected components of `X` is bounded by the cardinality of the fiber of any point. In particular, if `Y` has finitely many connected components and `f` finite fibers, also `X` as finitely many connected components. From Pi1. --- - [x] depends on: #23849 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 241/1 | Mathlib.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/Topology/Clopen.lean,Mathlib/Topology/Connected/CardComponents.lean,Mathlib/Topology/Connected/Clopen.lean | 6 | 11 | ['chrisflav', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | grunweg | 3 months ago | 132 days ago | 64 days |
| 24333 | xcloudyunx | feat(Combinatorics/SimpleGraph): cycle graph implementation for generic vertex types | The existing `cycleGraph` implementation under Combinatorics/SimpleGraph/Circulant.lean only operates over `Fin n`. This PR implements a cycle graph implementation over any generic vertex type. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-combinatorics new-contributor | 187/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cycle.lean | 2 | 42 | ['IvanRenison', 'github-actions', 'mathlib4-merge-conflict-bot', 'vlad902'] | kmill | 3 months ago | unknown | unknown |
| 24540 | robertmaxton42 | feat(Quiv): add the empty, vertex, point, interval, and walking quivers | Add: * The empty quiver * The vertex quiver (one vertex, and no edges) and the point quiver (one vertex, one self-edge) * The interval quiver (two vertices with an edge between them) * The walking quiver (vertices `0` and `1` with two edges both `0 -> 1`. Functors from the walking quiver to `Type` define quivers, by interpreting `F.obj 0` as the type of vertices, `F.obj 1` as the type of edges, using one of the two edges to label the source of every edge and using the other to label the target.) - [x] depends on: #24538 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory | 370/0 | Mathlib.lean,Mathlib/CategoryTheory/Category/Quiv/Shapes.lean,Mathlib/CategoryTheory/Category/Quiv/WalkingQuiver.lean,Mathlib/Logic/Small/Defs.lean | 4 | 14 | ['github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robertmaxton42', 'robin-carlier'] | nobody | 3 months ago | unknown | unknown |
| 24850 | pechersky | feat(Topology/UniformSpace/Ultra): uniform spaces induced by pseudometrics are ultra if system is ultra | Any uniform space has a natural system of pseudometrics definable on it, comprised of those pseudometrics constructed from a descending chain of equivalence relation entourages. In a nonarchimedean uniformity, this pseudometric system induces the uniformity. --- [](https://gitpod.io/from-referrer/) - [x] depends on: #23111 | merge-conflict t-topology | 509/1 | Mathlib.lean,Mathlib/Topology/MetricSpace/BundledFun.lean,Mathlib/Topology/UniformSpace/Ultra/Pseudometrizable.lean | 3 | 9 | ['ADedecker', 'fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | urkud | 3 months ago | 104 days ago | 162 days |
| 25324 | eric-wieser | feat: more functorial results about DFinsupp | We have these already for Finsupp. The `DFinsupp` statements need some extra casts in some places. --- - [ ] depends on: #27182 [](https://gitpod.io/from-referrer/) [#mathlib4 > Equiv.cast for structures @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Equiv.2Ecast.20for.20structures/near/521390935) | merge-conflict awaiting-author t-algebra t-data | 137/16 | Mathlib/Data/DFinsupp/Defs.lean,Mathlib/LinearAlgebra/DFinsupp.lean | 2 | 13 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | pechersky | 3 months ago | 155 days ago | 19 days |
| 25585 | Paul-Lez | feat(Tactic/Linters/DeprecatedSimpLemma): lint for deprecated simp lemmas | The deprecated simp lemma linter flags declarations that have both the `deprecated` and `simp` attributes. See Zulip discussion: [#mathlib4 > Help with Mathlib.Order.Interval.Finset.Defs @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Help.20with.20Mathlib.2EOrder.2EInterval.2EFinset.2EDefs/near/505994843) --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 105/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/DeprecatedSimpLemma.lean,MathlibTest/DeprecatedSimpLemmaTest.lean | 4 | 8 | ['adomani', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 26648 | eric-wieser | chore(TensorProduct): remove more `suppress_compilation`s | --- [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-core-PR t-algebra | 3/7 | Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean | 3 | 5 | ['eric-wieser', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 240 days ago | 3 days |
| 28316 | eric-wieser | feat(Tactic/NormNum): better trace nodes | Comparing the infoview on the first example in the test file
| Before | After |
|---|---|
| |
merge-conflict t-meta | 136/5 | Mathlib.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Util/Trace.lean,MathlibTest/norm_num_trace.lean | 4 | 20 | ['JovanGerb', 'eric-wieser', 'github-actions', 'kmill', 'leanprover-bot', 'mathlib-bors', 'mathlib4-merge-conflict-bot', 'plp127'] | JovanGerb | 3 months ago | 187 days ago | 15 days |
| 21915 | YaelDillies | feat: simproc for `Int.divisorsAntidiag` | Co-authored-by: Paul Lezeau --- - [x] depends on: #21912 - [x] depends on: #21991 [](https://gitpod.io/from-referrer/) | WIP t-meta | 75/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/DivisorsAntidiag.lean | 3 | 9 | ['YaelDillies', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 19475 | YaelDillies | feat: group markings | From LeanCamCombi --- - [ ] depends on: #21342 [](https://gitpod.io/from-referrer/) | WIP t-algebra blocked-by-other-PR | 194/3 | Mathlib.lean,Mathlib/Geometry/Group/Marking.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/Group/Quotient.lean | 4 | 15 | ['YaelDillies', 'b-mehta', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 15443 | YaelDillies | feat: Marcinkiewicz-Zygmund inequality | Prove the Marcinkiewicz-Zygmund inequality.
The Marcinkiewicz-Zygmund inequality states that, if `X₁, ..., Xₐ ∈ L^p` are independent random
variables of mean zero valued in some inner product space, then the `L^p`-norm of `X₁ + ... + Xₐ` is
at most `Cₚ` times the `L^(p/2)`-norm of `|X₁|² + ... + |Xₐ|²`, where `Cₚ` is a constant depending on
`p` alone.
From LeanAPAP
Co-authored-by: Bhavik Mehta |
WIP t-analysis | 189/0 | Mathlib.lean,Mathlib/Probability/MarcinkiewiczZygmund.lean | 2 | 40 | ['Parcly-Taxel', 'YaelDillies', 'b-mehta', 'github-actions', 'hrmacbeth', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] | nobody | 3 months ago | unknown | unknown |
| 31587 | JovanGerb | Lean pr testing 11156 | Testing the performance improvement given by not deleting cache so often when modifying the environment. cf. https://github.com/leanprover/lean4/pull/11156 --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 760/625 | Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1997Q3.lean,Archive/Imo/Imo2024Q5.lean,Archive/MiuLanguage/Basic.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Cache/Requests.lean,Counterexamples/PolynomialIsDomain.lean,Mathlib.lean,Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/Algebra/CharP/Subring.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Group/Int/Even.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/Subsemigroup/Operations.lean,Mathlib/Algebra/Homology/Augment.lean,Mathlib/Algebra/Homology/Embedding/Connect.lean,Mathlib/Algebra/Lie/LieTheorem.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Lie/Weights/Chain.lean,Mathlib/Algebra/Lie/Weights/RootSystem.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Order/Field/Power.lean,Mathlib/Algebra/Order/Group/Unbundled/Int.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Polynomial/CoeffList.lean,Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean,Mathlib/Algebra/Polynomial/Degree/IsMonicOfDegree.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/Factors.lean,Mathlib/Algebra/Polynomial/Homogenize.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean,Mathlib/Algebra/Ring/Action/Invariant.lean,Mathlib/Algebra/Ring/Ext.lean,Mathlib/Algebra/Ring/Periodic.lean,Mathlib/Algebra/Ring/Subsemiring/Defs.lean,Mathlib/Algebra/Star/Module.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/AlgebraicGeometry/SpreadingOut.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean,Mathlib/AlgebraicTopology/DoldKan/Faces.lean,Mathlib/AlgebraicTopology/Quasicategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean,Mathlib/Analysis/Asymptotics/Theta.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean,Mathlib/Analysis/Convex/StdSimplex.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean,Mathlib/Analysis/Matrix/Spectrum.lean,Mathlib/Analysis/Meromorphic/Basic.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Analysis/Normed/Field/UnitBall.lean,Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean,Mathlib/Analysis/Normed/Module/Ball/RadialEquiv.lean,Mathlib/Analysis/Normed/Ring/Ultra.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean,Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean,Mathlib/Combinatorics/Additive/AP/Three/Defs.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean,Mathlib/Combinatorics/Quiver/Arborescence.lean,Mathlib/Combinatorics/Schnirelmann.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/Computability/Primrec.lean,Mathlib/Control/Random.lean,Mathlib/Data/Char.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Inv.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/SuccPred.lean | 297 | 5 | ['JovanGerb', 'github-actions', 'leanprover-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | 110 days ago | 5 seconds |
| 6268 | eric-wieser | fix: fixups to #3838 | This is an attempt to make #3838 universe polymorphic --- [](https://gitpod.io/from-referrer/) * Depends on #6271 * Depends on #8876 | merge-conflict WIP | 186/107 | Mathlib/Control/Random.lean,Mathlib/Tactic/SlimCheck.lean,Mathlib/Testing/SlimCheck/Functions.lean,Mathlib/Testing/SlimCheck/Gen.lean,Mathlib/Testing/SlimCheck/Sampleable.lean,Mathlib/Testing/SlimCheck/Testable.lean,test/slim_check.lean | 7 | 10 | ['github-actions', 'kim-em'] | nobody | 3 months ago | unknown | unknown |
| 6859 | MohanadAhmed | feat: TryLean4Bundle: Windows Bundle Creator | # `TryLean4Bundle`: Windows Bundle Creator A Windows batch script and a CI yml file that create an self extracting archive. The user should 1. just download the archive, 2. double click the archive to expand 3. double click the `RunLean.bat` script in the expanded archive. The script currently downloads 7 dependencies into CI then unpacks them in the appropriate locations and finally packs them back. To try a bundle created using these scripts but from a different repo see (https://github.com/MohanadAhmed/TryLean4Bundle/releases) --- [](https://gitpod.io/from-referrer/) | WIP help-wanted CI | 114/0 | .github/workflows/mk_windows_bundle.yml,scripts/windowsBundle.bat | 2 | 0 | [] | nobody | 3 months ago | unknown | unknown |
| 6993 | jjaassoonn | feat: lemmas about `AddMonoidAlgebra.{divOf, modOf}` | --- - [x] depends on: #7582 - [x] depends on: #8975 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra | 147/3 | Mathlib/Algebra/MonoidAlgebra/Division.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/MvPolynomial/Basic.lean,Mathlib/Data/MvPolynomial/CommRing.lean,Mathlib/Data/MvPolynomial/Division.lean | 5 | 42 | ['YaelDillies', 'alreadydone', 'digama0', 'eric-wieser', 'github-actions', 'jjaassoonn', 'leanprover-community-mathlib4-bot'] | nobody | 3 months ago | unknown | unknown |
| 7427 | MohanadAhmed | feat: eigenvalues sorted in ascending/descending order | In the file `Analysis.InnerProductSpace.Spectrum` todo notes were left saying: > TODO Postcompose with a permutation so that these eigenvectors are listed in increasing order of eigenvalue. > TODO Postcompose with a permutation so that these eigenvalues are listed in increasing order. - This is a start in that direction --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 162/4 | Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/NormedSpace/PiLp.lean,Mathlib/LinearAlgebra/Matrix/Spectrum.lean | 3 | 0 | [] | nobody | 3 months ago | unknown | unknown |
| 9339 | FMLJohn | feat(RingTheory/GradedAlgebra/HomogeneousIdeal): given a finitely generated homogeneous ideal of a graded semiring, construct a finite spanning set for the ideal which only contains homogeneous elements | --- - [ ] depends on: #8187 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 402/4 | Mathlib.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/Module/GradeZeroModule.lean,Mathlib/RingTheory/Finiteness.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean,Mathlib/RingTheory/GradedAlgebra/Noetherian.lean | 8 | 11 | ['FMLJohn', 'github-actions', 'jjaassoonn', 'leanprover-community-mathlib4-bot'] | nobody | 3 months ago | unknown | unknown |
| 9564 | AntoineChambert-Loir | chore: weaken commutativity assumptions for AdjoinRoot.lift and AdjoinRoot.liftHom | I weaken a commutativity assumption for docs#AdjoinRoot.liftHom that the target algebra be commutative. It is only assumed to be a Semiring. For that, I need to generalize docs#AdjoinRoot.lift which takes `i : R ->+* S`, `a : S` with `f.eval₂ i a = 0` and defines `AdjoinRoot f ->+* S` that extends `i ` and sends `AdjoinRoot.root f` to `a`. --- The initial version of the PR was to define `AdjoinRoot.lift'` where `S` is only a Semiring, with the additional assumption `hcomm : ∀ r, Commute (i r) a` that the element `a` commutes with the image of `i`. @jcommelin suggested to provide this argument as an `autoParam`, filled in by an ad hoc `commutativity` tactic. However, such an argument cannot be made implicit and a first version required to have this argument given each time, most of the time by `_`, even for all subsequent lemmas, `AdjoinRoot.lift_mk`, etc. To avoid this, I tried to make this assumption a `⦃hcomm : ∀ r, Commute (i r) a⦄`. This appears to have some side effects that proofs using an `exact` tactic or in term mode do not work well, but one can resort on `by simp […]`. Maybe @eric-wieser or @Vierkantor will have opinions on that. In some cases one can still give the argument as `(hcomm := by commutativity)`. (There are 3 options : - separate lemmas for the fully commutative case and for the case where a proof is needed - using the `commutativity` tactic, but with an argument `_` sometimes - using the optional argument.) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 146/30 | Mathlib.lean,Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Commutativity.lean,Mathlib/Tactic/Commutativity/Init.lean | 8 | 14 | ['AntoineChambert-Loir', 'Vierkantor', 'eric-wieser', 'jcommelin'] | nobody | 3 months ago | unknown | unknown |
| 10026 | madvorak | feat: linear programming according to Antoine Chambert-Loir's book | --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237386.20Linear.20Programming Four PRs incompatible with each other: https://github.com/leanprover-community/mathlib4/pull/7386 (list of constraints) https://github.com/leanprover-community/mathlib4/pull/9693 (matrix form) https://github.com/leanprover-community/mathlib4/pull/10026 (Antoine Chambert-Loir's def; semirings, linear) https://github.com/leanprover-community/mathlib4/pull/10159 (Antoine Chambert-Loir's def; rings, affine) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 86/0 | Mathlib.lean,Mathlib/LinearAlgebra/LinearProgramming.lean | 2 | 10 | ['eric-wieser', 'madvorak', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] | nobody | 3 months ago | unknown | unknown |
| 10159 | madvorak | feat: linear programming according to Antoine Chambert-Loir's book — affine version | --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237386.20Linear.20Programming Four PRs incompatible with each other: https://github.com/leanprover-community/mathlib4/pull/7386 (list of constraints) https://github.com/leanprover-community/mathlib4/pull/9693 (matrix form) https://github.com/leanprover-community/mathlib4/pull/10026 (Antoine Chambert-Loir's def; semirings, linear) https://github.com/leanprover-community/mathlib4/pull/10159 (Antoine Chambert-Loir's def; rings, affine) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra RFC | 83/0 | Mathlib.lean,Mathlib/LinearAlgebra/LinearProgramming.lean | 2 | 8 | ['eric-wieser', 'madvorak', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] | nobody | 3 months ago | unknown | unknown |
| 10349 | Shamrock-Frost | refactor(CategoryTheory/MorphismProperty): some clean-ups | We make explicit some of the galois connections/closure operators in the existing MorphismProperty file, rewrite some proofs to take advantage of these structures, and change map/inverseImage by (1) swapping their argument order, for consistency with Set.range and Set.preimage and (2) making "map" perform the strict, evil map while "essMap" (previously called map) forms the closure of the image under isomorphisms. Finally we add `IsMultiplicative` instances for isos/epis/monos, with an eye towards constructing the wide subcategory on these classes of maps. --- - [x] depends on: #10347 - [x] depends on: #10348 [](https://gitpod.io/from-referrer/) | merge-conflict t-category-theory | 474/318 | Mathlib/CategoryTheory/Localization/Composition.lean,Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean,Mathlib/CategoryTheory/MorphismProperty.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/Order/Closure.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Hom/CompleteLattice.lean,Mathlib/Order/RelIso/Basic.lean | 8 | 1 | ['leanprover-community-mathlib4-bot'] | nobody | 3 months ago | unknown | unknown |
| 11021 | jstoobysmith | feat(AlgebraicTopology): add join of augmented SSets | This pull-request adds the definition of the join of augmented SSets defined as contravariant functors from `WithInitial SimplexCategory` to `Type u`. In addition it shows that the join of two standard augmented SSets is again an augmented SSets. From this the definition of the join of simplicial sets should follow easily. To aid the above theory, an api for `WithInitial SimplexCategory` has been created, with the notion of the `join` and `split` (forming a sort of inverse to join) of objects in this category are defined. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebraic-topology new-contributor | 2137/1 | .gitignore,Mathlib.lean,Mathlib/AlgebraicTopology/Join.lean,Mathlib/AlgebraicTopology/SimplexCategory.lean,Mathlib/AlgebraicTopology/SimplexCategoryWithInitial.lean,Mathlib/AlgebraicTopology/SimplicialSet.lean | 6 | 47 | ['github-actions', 'jcommelin'] | nobody | 3 months ago | unknown | unknown |
| 11800 | 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. --- [](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 | 3 months ago | unknown | unknown |
| 12087 | JADekker | feat: complete API for K-Lindelöf spaces | --- - [ ] depends on: #11800 (which is now awaiting a design decision) [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict t-topology blocked-by-other-PR | 789/17 | Mathlib.lean,Mathlib/Order/Filter/CardinalInter.lean,Mathlib/Topology/Compactness/KLindelof.lean,Mathlib/Topology/Compactness/Lindelof.lean | 4 | 2 | ['github-actions', 'leanprover-community-mathlib4-bot'] | nobody | 3 months ago | unknown | unknown |
| 12251 | ScottCarnahan | refactor(RingTheory/HahnSeries): several generalizations | This PR is a container for several smaller PRs that refactor and generalize the existing Hahn series theory. It is (I think) all we need from Hahn series to get a palatable theory of vertex algebras off the ground (other prerequisites from Lie algebras will eventually come in a different PR). Major changes include: - equivalence between iterated Hahn series and Hahn series on Lex products. - introduce `orderTop` and `leadingCoeff` functions. Here, `orderTop` is a `WithTop Γ`-valued version of `order` that does not need `[Zero Γ]` and `leadingCoeff` returns the coefficient of the minimal element of support (or zero if empty). - introduce ordered and cancellative vector addition classes together with some basic theory e.g., finiteness of antidiagonals for partially well-ordered sets. - `HahnSeries Γ R`-module structure on `HahnModule Γ' R V`, when `Γ` is an `OrderedCancelAddCommMonoid`, `Γ'` is a `PartialOrder` with `OrderedCancelVAdd Γ Γ'`, `R` is a semiring, and `V` is an `R`-module. - Move `AddVal` to a separate file - the underlying function is just `orderTop`, but the description of the valuation needs an additional import and an `IsDomain` hypothesis. Results that depended on `AddVal` are changed to use `orderTop` and generalized. --- - [x] depends on: #10781 [HahnSeries on Lex product] - [x] depends on: #10846 [HahnModule] - [x] depends on: #11965 [orderTop] - [x] depends on: #11979 [OrderedVAdd] - [x] depends on: #12996 [leadingTerm] - [x] depends on: #16649 - [x] depends on: #16701 - [x] depends on: #17004 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra t-order | 1059/97 | Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/HahnSeries/Basic.lean,Mathlib/RingTheory/HahnSeries/HEval.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Summable.lean | 6 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 12394 | JADekker | feat: define pre-tight and tight measures | Define tight measures (by first defining separable and pre-tight measures). Define some api for all three concepts Prove Ulam's tightness theorem and a strengthened version of this. --- [](https://gitpod.io/from-referrer/) | please-adopt merge-conflict awaiting-author t-measure-probability | 503/0 | Mathlib.lean,Mathlib/MeasureTheory/Measure/Tight.lean | 2 | 34 | ['EtienneC30', 'JADekker', 'github-actions', 'sgouezel'] | nobody | 3 months ago | unknown | unknown |
| 12452 | JADekker | feat(Cocardinal): add some more api | Just a small PR to add a bit more API for cocardinal filters. Not everything seems to generalise nicely from cofinite, so I didn't include such results. Currently the file has one `sorry`, I'm not sure how to complete this proof. --- [](https://gitpod.io/from-referrer/) | t-topology awaiting-CI | 75/0 | Mathlib/Order/Filter/Cocardinal.lean | 1 | 0 | [] | nobody | 3 months ago | unknown | unknown |
| 14426 | adomani | feat: `#min_imps` command (development branch) | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP | 142/0 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/MinImports.lean,test/MinImports.lean | 4 | 2 | ['adomani', 'github-actions'] | nobody | 3 months ago | unknown | unknown |
| 14686 | smorel394 | feat(AlgebraicGeometry/Grassmannian): define the Grassmannian scheme | # The Grassmannian scheme Define the Grassmannian scheme by gluing affine charts. We fix a commutative ring `K`, a free `K`-module of finite type `V` and two natural numbers `r` and `c`. The scheme we define should parametrize surjective `K`-linear maps `V →ₗ[K] (Fin r → K)`, assuming that `V` is of rank `r + c`. We actually define the scheme without assuming the condition on the rank of `V`, but it is empty unless the rank of `V` is `r + c`. Main definitions: * `Grassmannian.glueData K V r c`: the `AlgebraicGeometry.Scheme.GlueData` defining the Grassmannian scheme. * `Grassmannian K V r c`: the Grassmannian scheme, defined as `(Grassmannian.glueData K V r c).glued`. * `Grassmannian.structMorphism K V r c`: the structural morphism from `Grassmannian K V r c` to `Spec K`. # Implementation We use as index type for the charts the type `Basis (Fin (r + c)) K V` (so this is empty unless `V` is free of rank `r + c`). All the charts are the same and equal to the affine space with coordinates indexed by `Fin c × Fin r`, that is, to `Spec (MvPolynomial (Fin c × Fin r) K)`. The idea is that, for `i` in `Basis (Fin (r + c)) K V`, the corresponding chart will parametrize all surjective `K`-linear maps `φ : V →ₗ[K] (Fin r → K)` that become isomorphisms when restricted to the `K`-submodule generated by the first `r` vectors of the basis `i`. To get the point of the chart corresponding to `φ`, we take the matrix of `φ` in the basis `i` of `V` and the canonical basis of `Fin r → K`, we divide it on the right by its top `r × r` square submatrix (which is invertible by assumption), and we taken the botton `c × r` submatrix. This is almost the usual description of the Grassmannian by charts, with three differences: * We consider the Grassmannian parametrizing `r`-dimensional quotients of `V` instead of `r`-dimensional subspaces of `V`, because this is more natural when working over a general ring (or scheme). * In the usual description, we fix a basis of `V` and index the chart by its subsets `I` of cardinality `r`. Here, to avoid making a choice, we instead index charts by the set of bases of `V` and always choose the subset `I` to consist of the first `r` vectors. * Instead of working with `FiniteDimensional.finrank K V - r`, which would cause technical trouble because of the way subtraction works on `ℕ`, we introduce the codimension `c` as an auxiliary variable, and our constructions are only interesting when `r + c` is equal to `FiniteDimensional.finrank K V`. # Why is this a WIP * There a bunch of lemmas in the file `AlgebraicGeometry/Grassmannian/Lemmas.lean` that either should not be necessary or should be put in another PR for some other part of mathlib. * The proofs in `AlgebraicGeometry/Grassmannian/Basic.lean` are probably too complicated, and the names suck. # Notes. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. --- - [x] depends on: #14711 [](https://gitpod.io/from-referrer/) | please-adopt WIP workshop-AIM-AG-2024 merge-conflict t-algebraic-geometry | 1002/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/Grassmannian/Basic.lean,Mathlib/AlgebraicGeometry/Grassmannian/Lemmas.lean | 3 | 15 | ['erdOne', 'github-actions', 'joelriou', 'leanprover-community-mathlib4-bot', 'smorel394'] | nobody | 3 months ago | unknown | unknown |
| 17071 | ScottCarnahan | feat(LinearAlgebra/RootSystem): separation, base, cartanMatrix | This PR defines an abstract separation structure for roots, together with the associated base and Cartan Matrix. In general, the good properties will follow from additional order hypotheses on the base ring (implemented in a future PR). --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 111/0 | Mathlib.lean,Mathlib/LinearAlgebra/RootSystem/Separation.lean | 2 | 1 | ['github-actions'] | nobody | 3 months ago | unknown | unknown |
| 17471 | joelriou | feat(Algebra/ModuleCat/Differentials/Sheaf): the sheaf of relative differentials | --- - [ ] depends on: #17366 - [x] depends on: #17388 - [x] depends on: #16755 - [ ] depends on: #17469 [](https://gitpod.io/from-referrer/) | WIP blocked-by-other-PR t-category-theory large-import merge-conflict t-algebraic-geometry | 740/10 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean,Mathlib/Algebra/Category/ModuleCat/Differentials/Sheaf.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pullback.lean,Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/Algebra/Ring/Hom/Defs.lean,Mathlib/AlgebraicGeometry/Modules/Differentials.lean,Mathlib/Geometry/RingedSpace/SheafedSpace.lean | 9 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 18626 | hannahfechtner | feat: define Artin braid groups | Define the Artin braid group on infinitely many strands. Includes a toGroup function which defines a function out of the braid group to any other group (given a function which satisfies the braid relations) (more to come in this file; next up: Artin braid groups on finitely many strands) --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra new-contributor | 91/0 | Mathlib.lean,Mathlib/GroupTheory/SpecificGroups/BraidGroup/Basic.lean | 2 | 22 | ['github-actions', 'hannahfechtner', 'jcommelin', 'joelriou'] | nobody | 3 months ago | unknown | unknown |
| 18784 | erdOne | feat(AlgebraicGeometry): use `addMorphismPropertyInstances` | --- - [ ] depends on: #18785 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-geometry blocked-by-other-PR | 435/91 | Mathlib.lean,Mathlib/AlgebraicGeometry/Cover/Open.lean,Mathlib/AlgebraicGeometry/Morphisms/Affine.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean,Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean,Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Proper.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean,Mathlib/AlgebraicGeometry/Restrict.lean,Mathlib/CategoryTheory/MorphismProperty/Composition.lean,Mathlib/CategoryTheory/MorphismProperty/Limits.lean,Mathlib/CategoryTheory/MorphismProperty/Tactic.lean,MathlibTest/AddMorphismPropertyInstances.lean | 18 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 19062 | hannahfechtner | feat(Algebra/PresentedMonoid/Basic): facts about rel | Add in a number of useful theorems (reflexivity, closure under multiplication) and lemmas about when the PresentedMonoid.rel holds as an API for users --- [](https://gitpod.io/from-referrer/) | awaiting-author t-algebra | 38/0 | Mathlib/GroupTheory/Congruence/Defs.lean | 1 | 8 | ['github-actions', 'hannahfechtner', 'kbuzzard', 'riccardobrasca'] | nobody | 3 months ago | unknown | unknown |
| 19607 | madvorak | feat: block matrices are totally unimodular | --- Discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/TU.20block.20matrix.20.2319607 - [ ] depends on: #19323 - [ ] depends on: #20428 - [ ] depends on: #20433 [](https://gitpod.io/from-referrer/) | merge-conflict WIP blocked-by-other-PR | 156/0 | Mathlib.lean,Mathlib/Data/Sum/Decompose.lean,Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean | 3 | 11 | ['github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'madvorak', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 20029 | FrederickPu | feat(Tactic/simps): allow for Config attributes to be set directly | Allow for Config attributes to be set directly when using initialize_simp_projection as per issue #19895 Basically modified initialize_simp_projection so that the user has the option of specifying a tuple of config option values. Ex: ``` initialize_simp_projection MulEquiv (toFun → apply, invFun → symm_apply) (fullyApplied := false) ``` These config options are then converted into projections. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP new-contributor t-meta | 34/4 | Mathlib/Tactic/Simps/Basic.lean | 1 | 11 | ['FrederickPu', 'YaelDillies', 'fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant'] | nobody | 3 months ago | unknown | unknown |
| 21269 | 658060 | feat(CategoryTheory/Topos): basic definitions and results in topos theory | This code contains basic definitions and results in topos theory, including the definition of a subobject classifier, power objects, and topoi. It is proved that every topos has exponential objects, i.e. "internal homs". The mathematical content follows chapter IV sections 1-2 of Mac Lane and Moerdijk's text "Sheaves in Geometry and Logic". --- - [x] depends on: #21281 [](https://gitpod.io/from-referrer/) | WIP t-category-theory new-contributor merge-conflict awaiting-author | 1269/0 | Mathlib.lean,Mathlib/CategoryTheory/Topos/Basic.lean,Mathlib/CategoryTheory/Topos/Classifier.lean,Mathlib/CategoryTheory/Topos/Exponentials.lean,Mathlib/CategoryTheory/Topos/Power.lean | 5 | 10 | ['658060', 'gio256', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot'] | nobody | 3 months ago | unknown | unknown |
| 22805 | ScottCarnahan | feat(FieldTheory/Finite): fixed points of Frobenius automorphism | This PR identifies the prime field with the fixed points of frobenius. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra | 325/7 | Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Finite/GaloisField.lean | 4 | 1 | ['github-actions'] | nobody | 3 months ago | unknown | unknown |
| 23990 | robertmaxton42 | feat(Types.Colimits): Quot is functorial and colimitEquivQuot is natural | Add `Functor.quotFunctor` to parallel `Functor.sectionsFunctor`, witnessing that `Quot` is functorial; add `colimNatIsoQuotFunctor` to parallel `limNatIsoSectionsFunctor`, witnessing that `colimitEquivQuot` is natural in the diagram $F$. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-category-theory new-contributor | 33/0 | Mathlib/CategoryTheory/Limits/Types/Colimits.lean | 1 | 5 | ['github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'robertmaxton42'] | nobody | 3 months ago | unknown | unknown |
| 24533 | robertmaxton42 | feat(ULift): conjugation by ULift.up/down, misc cast/heq lemmas | * Adds the convenience def `ULift.conj x := `down (f (up x))`, and corresponding basic lemmas * Adds lemmas showing that `ULift.up` and `.down` commute with casts and preserve `HEq`. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data | 31/0 | Mathlib/Data/ULift.lean | 1 | 23 | ['eric-wieser', 'github-actions', 'grunweg', 'robertmaxton42'] | nobody | 3 months ago | unknown | unknown |
| 24690 | ScottCarnahan | feat(Data.Prod): reverse lexicographic order | This PR implements the type synonym RevLex as a one-field structure, defines an order on products, and proves an order isomorphism with the Lex product with factors switched. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order | 141/0 | Mathlib.lean,Mathlib/Data/Prod/RevLex.lean | 2 | 5 | ['ScottCarnahan', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] | YaelDillies | 3 months ago | unknown | unknown |
| 24692 | ScottCarnahan | feat(RingTheory/HahnSeries/Basic): isomorphism of Hahn series induced by order isomorphism | This PR introduces an isomorphism of Hahn series induced by an order isomorphism on the exponent posets. --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-order | 35/0 | Mathlib/RingTheory/HahnSeries/Basic.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 25034 | ScottCarnahan | feat(Algebra/Module/Equiv/Basic): Restriction of scalars from a semilinear equivalence to a linear equivalence | If `M` and `M₂` are both `R`-modules and modules for `S` and `S₂`, respectively, then for any ring isomorphism `e` between `S` and `S₂` and any `e`-semilinear equivalence between `M` and `M₂` that respects the `R`-action, we obtain an `R`-linear equivalence between `M` and `M₂`. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra | 28/0 | Mathlib/Algebra/Module/Equiv/Basic.lean | 1 | 1 | ['github-actions'] | nobody | 3 months ago | unknown | unknown |
| 24627 | pechersky | feat(Topology/Algebra/Valued): `IsLinearTopology 𝒪[K] K` and `𝒪[K] 𝒪[K]` | as well as `IsLinearTopology ℤ_[p] ℤ_[p]` --- [](https://gitpod.io/from-referrer/) - [x] depends on: #26829 | merge-conflict awaiting-author t-topology | 219/26 | Mathlib.lean,Mathlib/NumberTheory/Padics/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean | 5 | 55 | ['ADedecker', 'erdOne', 'faenuccio', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'loefflerd', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] | jcommelin | 3 months ago | 104 days ago | 16 days |
| 24016 | plp127 | feat: fine uniformity | Adds the fine uniformity, and proves some properties. --- - [ ] depends on: #24096 for showing the induced topology is equal on completely regular spaces [](https://gitpod.io/from-referrer/) | merge-conflict t-topology | 283/0 | Mathlib.lean,Mathlib/Topology/UniformSpace/FineUniformity.lean,Mathlib/Topology/UniformSpace/Uniformizable.lean | 3 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 3 months ago | unknown | unknown |
| 24514 | b-mehta | chore(Int/GCD): use fuel in xgcd | Modify the definition of xgcd to use fuel recursion, to allow it to be reduced in the kernel. As a consequence, this means the evaluation of field operations in ZMod p become provable by `rfl` and `decide`. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/opaque.20recursion.20definitions.20break.20mergeSort.20decidability --- [](https://gitpod.io/from-referrer/) | awaiting-author t-data merge-conflict | 44/22 | Mathlib/Data/Int/GCD.lean | 1 | 6 | ['astrainfinita', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'nomeata', 'urkud'] | nobody | 3 months ago | unknown | unknown |
| 24441 | MrSumato | feat(Data/List): add Lyndon-Schutzenberger theorem on list commutativity | Add Lyndon-Schutzenberger theorem on list commutativity. Included definition for List.repeatSelf that returns list repeated n times. --- This is my first mathlib PR, so any comments are highly appreciated. [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-data new-contributor | 129/1 | Mathlib.lean,Mathlib/Data/List/Commutativity.lean,Mathlib/Data/List/Defs.lean,Mathlib/Data/List/Lemmas.lean | 4 | 38 | ['MrSumato', 'github-actions', 'grunweg', 'madvorak', 'mathlib4-merge-conflict-bot', 'plp127'] | grunweg | 2 months ago | unknown | unknown |
| 32473 | mattrobball | chore(Kaehler.JacobiZariski): remove egregious local instance hack | This code looks terrible and is no longer strictly necessary. Local timings give `lake build Mathlib/RingTheory/Kaehler/JacobiZariski.lean 39.77s user 1.07s system 263% cpu 15.482 total` after removal and `lake build Mathlib/RingTheory/Kaehler/JacobiZariski.lean 36.93s user 1.01s system 251% cpu 15.113 total` before the removal. So the preformance impact of removal is small. One could argue that keeping is a remainder that everything here needs to be seriously changed but the miminmal performance difference suggests that these local instances would be a red herring in that regard. --- [](https://gitpod.io/from-referrer/) | t-ring-theory awaiting-author | 0/4 | Mathlib/RingTheory/Kaehler/JacobiZariski.lean | 1 | 13 | ['chrisflav', 'erdOne', 'github-actions', 'leanprover-radar', 'mattrobball'] | nobody | 2 months ago | 87 days ago | 23 hours |
| 18551 | joelriou | feat(AlgebraicGeometry): the algebraic De Rham complex | If `B` is an `A`-algebra, we construct the algebraic De Rham complex of `B` over `A`: it is a cochain complex of `A`-modules. --- - [ ] depends on: #18735 - [ ] depends on: #18662 - [ ] depends on: #26464 - [x] depends on: #18534 - [x] depends on: #18527 - [x] depends on: #18440 - [ ] depends on: #18432 - [x] depends on: #18408 - [x] depends on: #18389 - [x] depends on: #18374 - [x] depends on: #18359 - [x] depends on: #18332 [](https://gitpod.io/from-referrer/) | WIP t-algebra blocked-by-other-PR merge-conflict t-algebraic-geometry | 2836/156 | Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean,Mathlib/Algebra/Module/Presentation/Basic.lean,Mathlib/Algebra/Module/Presentation/Cokernel.lean,Mathlib/Algebra/Module/Presentation/Differentials.lean,Mathlib/Algebra/Module/Presentation/DirectSum.lean,Mathlib/Algebra/Module/Presentation/ExteriorPower.lean,Mathlib/Algebra/Module/Presentation/PiTensor.lean,Mathlib/Algebra/Module/Presentation/RestrictScalars.lean,Mathlib/Algebra/Module/Presentation/Tensor.lean,Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean,Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Sum/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Generators.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/Span.lean,Mathlib/LinearAlgebra/TensorPower.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/RingTheory/DeRham/Basic.lean,Mathlib/RingTheory/PiTensorProduct.lean | 26 | 2 | ['github-actions', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 23040 | grunweg | feat: define immersions and smooth embeddings in infinite dimensions | Sadly, we cannot prove most nice things about them yet, as we don't have the inverse function theorem yet. TODO: prove the few things we can already say --- - [ ] depends on: #28796 - [x] depends on: #28853 - [x] depends on: #23175 (preliminaries) - [x] depends on: #23186 - [ ] depends on: another PR, about `MSplitAt` (to be filed) - and perhaps some prerequisites about products of complemented modules etc. - [x] depends on: #23219 (preliminaries about local diffeomorphisms) - [x] depends on: #8738 - in fact, #9273 is not a strict pre-requisite for this. It suffices to know "extended charts have invertible differentials", which [isInvertible_mfderiv_extChartAt](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Geometry/Manifold/MFDeriv/Atlas.html#isInvertible_mfderiv_extChartAt) mostly proves. (There's nothing wrong with completing that PR, for all interior points.) [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry blocked-by-other-PR | 967/0 | Mathlib.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Splits.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/MSplits.lean | 5 | 4 | ['github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | nobody | 2 months ago | unknown | unknown |
| 6633 | adomani | feat(..Polynomial..): `MvPolynomial`s have no zero divisors | This PR continues #6627, placing the `NoZeroDivisors` instance on `MvPolynomial`s and removing auxiliary intermediate results that are no longer needed. Affected files: ``` Data/MvPolynomial/Basic.lean Data/Polynomial/RingDivision.lean RingTheory/Polynomial/Basic.lean ``` --- - [x] depends on: #6227 for the `NoZeroDivisors` instance on `AddMonoidAlgebra`s [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebra | 143/57 | Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean,Mathlib/Data/MvPolynomial/Basic.lean,Mathlib/Data/Polynomial/RingDivision.lean,Mathlib/RingTheory/Polynomial/Basic.lean | 4 | 6 | ['SnirBroshi', 'YaelDillies', 'adomani', 'eric-wieser', 'leanprover-community-mathlib4-bot'] | nobody | 2 months ago | unknown | unknown |
| 21447 | erdOne | feat(AlgebraicGeometry): the split algebraic torus | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-algebraic-geometry | 419/0 | Mathlib.lean,Mathlib/AlgebraicGeometry/Torus.lean | 2 | 6 | ['erdOne', 'github-actions', 'jcommelin', 'joelriou', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 21495 | alreadydone | experiment: reducible HasQuotient.quotient' | --- [](https://gitpod.io/from-referrer/) | WIP bench-after-CI merge-conflict | 2/0 | Mathlib/Algebra/Quotient.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 5934 | eric-wieser | feat: port Data.Rat.MetaDefs | --- [](https://gitpod.io/from-referrer/) This needs some eyes from people familiar with Qq | merge-conflict help-wanted mathlib-port t-meta | 183/0 | Mathlib.lean,Mathlib/Data/Rat/MetaDefs.lean,test/rat.lean | 3 | 5 | ['eric-wieser', 'gebner', 'vihdzp'] | nobody | 2 months ago | unknown | unknown |
| 4960 | eric-wieser | chore: use `open scoped` | Earlier versions of mathport did not know about this. This was done by searching for all `open` commands referencing: * `Classical` * `BigOperators` * `Topology` * `Pointwise` --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-CI | 1026/981 | Mathlib/Algebra/AddTorsor.lean,Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean,Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/BigOperators/Associated.lean,Mathlib/Algebra/BigOperators/Basic.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/BigOperators/Finsupp.lean,Mathlib/Algebra/BigOperators/Intervals.lean,Mathlib/Algebra/BigOperators/NatAntidiagonal.lean,Mathlib/Algebra/BigOperators/Option.lean,Mathlib/Algebra/BigOperators/Order.lean,Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Algebra/BigOperators/Ring.lean,Mathlib/Algebra/BigOperators/RingEquiv.lean,Mathlib/Algebra/Bounds.lean,Mathlib/Algebra/Category/GroupCat/Biproducts.lean,Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean,Mathlib/Algebra/Category/GroupCat/Injective.lean,Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean,Mathlib/Algebra/Category/ModuleCat/Biproducts.lean,Mathlib/Algebra/Category/Mon/FilteredColimits.lean,Mathlib/Algebra/Category/Ring/Adjunctions.lean,Mathlib/Algebra/Category/Ring/FilteredColimits.lean,Mathlib/Algebra/CharP/Basic.lean,Mathlib/Algebra/CharP/Two.lean,Mathlib/Algebra/DirectLimit.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/Field/Defs.lean,Mathlib/Algebra/GCDMonoid/Div.lean,Mathlib/Algebra/GeomSum.lean,Mathlib/Algebra/GroupWithZero/Basic.lean,Mathlib/Algebra/GroupWithZero/Commute.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Homology/Additive.lean,Mathlib/Algebra/Homology/ComplexShape.lean,Mathlib/Algebra/Homology/Homology.lean,Mathlib/Algebra/Homology/Homotopy.lean,Mathlib/Algebra/Homology/HomotopyCategory.lean,Mathlib/Algebra/Homology/ImageToKernel.lean,Mathlib/Algebra/IndicatorFunction.lean,Mathlib/Algebra/LinearRecurrence.lean,Mathlib/Algebra/Module/BigOperators.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Module/LinearMap.lean,Mathlib/Algebra/Module/PointwisePi.lean,Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/Module/Submodule/Bilinear.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/Chebyshev.lean,Mathlib/Algebra/Order/Module.lean,Mathlib/Algebra/Order/Pointwise.lean,Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Algebra/Order/SMul.lean,Mathlib/Algebra/Order/UpperLower.lean,Mathlib/Algebra/Periodic.lean,Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Algebra/Polynomial/GroupRingAction.lean,Mathlib/Algebra/Star/BigOperators.lean,Mathlib/Algebra/Star/Pointwise.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/Algebra/Support.lean,Mathlib/Algebra/TrivSqZeroExt.lean,Mathlib/Algebra/Tropical/BigOperators.lean,Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean,Mathlib/AlgebraicTopology/ExtraDegeneracy.lean,Mathlib/AlgebraicTopology/TopologicalSimplex.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean,Mathlib/Analysis/Asymptotics/Asymptotics.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean,Mathlib/Analysis/Asymptotics/Theta.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean,Mathlib/Analysis/BoxIntegral/Partition/Additive.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Filter.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean,Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean,Mathlib/Analysis/Calculus/ContDiffDef.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean | 788 | 1 | ['vihdzp'] | nobody | 2 months ago | unknown | unknown |
| 6042 | MohanadAhmed | feat(LinearAlgebra/Matrix/SVD): Singular Value Decomposition of R or C Matrices | This file provides proves the SVD theorem which decomposes a real/complex matrix into left eigenvectors, singular values block diagonal matrix and right eigenvectors.
Any matrix A (M × N) with rank r = A.rank and with elements in ℝ or ℂ fields can be decompsed into the product of three matrices:
$$A = USV$$
* The three matrices are defined as
- $U$: an M × M matrix containing the left eigenvectors of the matrix
- $S$: an M × N matrix with an r × r block in the upper left corner with nonzero singular values
- $V$: an N × N matrix containing the right eigenvectors of the matrix
Note that
* $S$ is a block matrix $S = [S₁₁, S₁₂; S₂₁, S₂₂]$ with
- $S₁₁$: a diagonal r × r matrix and
- $S₁₂$ : r × (N - r) zero matrix, S₂₁ : (M - r) × r zero matrix and
- $S₂₂$: (M - r) × (N - r) zero matrix
* $U$ is a block column matrix U = [U₁ U₂] with
- $U₁$ : a M × r containing left eigenvectors with nonzero singular values.
- $U₂$ : a M × (M - r) containing left eigenvectors with zero singular values.
* $V$ is a block column matrix V = [V₁ V₂] with
- $V₁$ : a N × r containing right eigenvectors with nonzero singular values.
- $V₂$ : a M × (M - r) containing right eigenvectors with zero singular values.
Since in mathlib the eigenvalues of hermitian matrices are defined in an "arbitrary" undetermined order, we begin by partition the singular values into zero and non-zero values. We partition the corresponding eigenvectors from AᴴA and AAᴴ using similar rearrangements. These are included in `SVD.svdReindex`. The basic API for Column and Row partitioned matrices is from `ColumnRowPartitioned`.
We then proceed to transfer some of the lemmas we need about eigenvector matrices (for example that they are unitary: i.e. inverse is conjugate transpose.). Note that since invertibility in mathlib is defined for square matrices while our matrices are partitioned i.e. N × (N₁ ⊕ N₂) and N ≃ (N ⊕ N₂), Lean cannot apply the Invertible definition. We workaround this were necessary.
Lemma `reduced_spectral_theorem` (`reduced_spectral_theorem'`) shows that AᴴA and AAᴴ, can be reduced to products containing only the non-zero singular eigenvectors. This is later used in proving the main SVD theroem. A few lemmas are provided about the invertibility of the non-zero singular values matrix: `svdσ_inv`, `σ_inv_μ_σ_inv_eq_one`, `IsUnit_det_svdσ`, `IsUnit_det_svdσ_mapK` and `svdσ_inv_mapK`.
To make relating left eigenvectors to right eigenvectors easier we define U₁ = AV₁σ⁻¹ while U₂ is obtained from the eigenvectors of (AAᴴ). This avoid a lengthy reindexing operation with many proofs. The vectors in U₂ have no such issue since they are multiplied by zero singular values anyway.
Co-authored-by: Mohanad Ahmed |
please-adopt WIP t-algebra merge-conflict | 588/0 | Mathlib.lean,Mathlib/LinearAlgebra/Matrix/SVD/Defs.lean,Mathlib/LinearAlgebra/Matrix/SVD/Reindex.lean | 3 | 116 | ['MohanadAhmed', 'Vierkantor', 'alexjbest', 'eric-wieser', 'j-loreaux', 'jcommelin', 'mathlib4-merge-conflict-bot', 'sgouezel', 'vihdzp'] | nobody | 2 months ago | unknown | unknown |
| 4127 | kmill | refactor: create HasAdj class, define Digraph, and generalize some SimpleGraph API | --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-combinatorics | 1403/551 | Mathlib.lean,Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/Graph/Classes.lean,Mathlib/Combinatorics/Graph/Dart.lean,Mathlib/Combinatorics/Graph/Hom.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Density.lean,Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean,Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean | 18 | 2 | ['SnirBroshi', 'vihdzp'] | nobody | 2 months ago | unknown | unknown |
| 25481 | kbuzzard | chore: refactor Algebra.TensorProduct.rightAlgebra | The declaration `Algebra.TensorProduct.rightAlgebra` makes `A ⊗[R] B` into a `B`-algebra (here `R` is a `CommSemiring`, `A` is a `Semiring` and an `R`-algebra, and `B` is a `CommSemiring` and an `R`-algebra). It is not an instance because if A = B it causes a diamond. However in the many cases where A isn't B, it can occasionally be useful. However one could imagine that in the many cases where an R-module `M` also isn't `B`, it might occasionally be useful to make `M ⊗[R] B` into a `B`-module (and indeed I am finding this in FLT). With the current definition of `Algebra.TensorProduct.rightAlgebra` this is difficult to do without causing diamonds in the case when `M` happens to be an `R`-algebra (by which I mean "I failed to do this in finite time"). One fix for this is just to redefine `Algebra.TensorProduct.rightAlgebra` so that the `smul` field is ``` smul b ab := TensorProduct.comm _ _ _ (b • (TensorProduct.comm _ _ _ ab)) ``` i.e. literally "swap the product around, use mathlib's instance making `B ⊗[R] A` into a `B`-algebra, and then swap back". Then the same definition can be used to make `M ⊗[R] B` into a `B`-module and on the odd occasion where this point of view is useful, there is no diamond. This is what we do in this PR. After adding one simp lemma there is no breakage at all in mathlib. Furthermore, for those who have observed that we want to build on this algebra instance sometimes and, for example, add instances of the form "if M is finite over R then M ⊗[R] B is finite over B" -- these instances are really easy to add now with this new definition, because you simply pull back the analogous finite left module instance along the isomorphism M ⊗[R] B = B ⊗[R] M. Examples (from FLT, where the right action is put in a scope): ``` scoped instance [Module.Finite R M] : Module.Finite A (M ⊗[R] A) := Module.Finite.equiv (Module.TensorProduct.comm R A M) scoped instance [Module.Free R M] : Module.Free A (M ⊗[R] A) := Module.Free.of_equiv (Module.TensorProduct.comm R A M) ``` --- [](https://gitpod.io/from-referrer/) | t-algebra | 29/6 | Mathlib/RingTheory/TensorProduct/Basic.lean | 1 | 8 | ['adomani', 'github-actions', 'kbuzzard', 'leanprover-bot', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | adomani | 2 months ago | unknown | unknown |
| 14444 | digama0 | fix(GeneralizeProofs): unreachable! bug | As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Unreachable.20code.20reached.20in.20Lean.204.2E8.2E0/near/449286780). --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-meta | 1/1 | Mathlib/Tactic/GeneralizeProofs.lean | 1 | 6 | ['github-actions', 'jcommelin', 'kmill', 'mathlib4-merge-conflict-bot', 'plby'] | nobody | 2 months ago | unknown | unknown |
| 25138 | chrisflav | chore(RingTheory/Ideal): make `RingHom.ker` take a `RingHom` instead of `RingHomClass` | --- [](https://gitpod.io/from-referrer/) | t-algebra awaiting-author merge-conflict | 317/309 | Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Hom/Rat.lean,Mathlib/Algebra/Algebra/Opposite.lean,Mathlib/Algebra/Algebra/Subalgebra/Operations.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Module/AEval.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean,Mathlib/AlgebraicGeometry/Pullbacks.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/FieldTheory/Minpoly/Field.lean,Mathlib/FieldTheory/PurelyInseparable/Tower.lean,Mathlib/LinearAlgebra/Semisimple.lean,Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/Adjoin/Tower.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/Congruence/Hom.lean,Mathlib/RingTheory/Etale/Kaehler.lean,Mathlib/RingTheory/Extension/Cotangent/Basis.lean,Mathlib/RingTheory/Extension/Cotangent/LocalizationAway.lean,Mathlib/RingTheory/Extension/Generators.lean,Mathlib/RingTheory/Extension/Presentation/Basic.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/RingTheory/FinitePresentation.lean,Mathlib/RingTheory/FiniteStability.lean,Mathlib/RingTheory/Finiteness/NilpotentKer.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/IsAdjoinRoot.lean,Mathlib/RingTheory/Jacobson/Ring.lean,Mathlib/RingTheory/Kaehler/Basic.lean,Mathlib/RingTheory/Kaehler/JacobiZariski.lean,Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean,Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean,Mathlib/RingTheory/Localization/Algebra.lean,Mathlib/RingTheory/MvPowerSeries/Evaluation.lean,Mathlib/RingTheory/Nilpotent/Lemmas.lean,Mathlib/RingTheory/NoetherNormalization.lean,Mathlib/RingTheory/Nullstellensatz.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/Polynomial/UniqueFactorization.lean,Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean,Mathlib/RingTheory/Smooth/AdicCompletion.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Smooth/Flat.lean,Mathlib/RingTheory/Smooth/Kaehler.lean,Mathlib/RingTheory/Smooth/NoetherianDescent.lean,Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean,Mathlib/RingTheory/Unramified/Finite.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/ContinuousMap/Ideals.lean,Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean | 68 | 8 | ['chrisflav', 'erdOne', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 24665 | Komyyy | feat(Mathlib/Topology/Metrizable/Uniformity): every uniform space is generated by a family of pseudometrics | --- [](https://gitpod.io/from-referrer/) | WIP t-topology merge-conflict | 54/0 | Mathlib/Topology/Metrizable/Uniformity.lean | 1 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 2 months ago | unknown | unknown |
| 33462 | eric-wieser | feat: teach `fun_prop` about `ContinousMultilinearMap.compContinuousLinearMap` | For now I've omitted the curried version --- [](https://gitpod.io/from-referrer/) | t-analysis | 46/0 | Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean | 1 | 3 | ['github-actions', 'sgouezel'] | nobody | 2 months ago | unknown | unknown |
| 25500 | eric-wieser | feat: delaborators for metadata | Being able to see these is very important when debugging tactic failures. Probably these could be upstreamed, but I don't think that's a reason not to merge them here first. --- [](https://gitpod.io/from-referrer/) | large-import merge-conflict awaiting-author delegated t-meta | 75/3 | Mathlib/Util/Delaborators.lean,Mathlib/Util/PPOptions.lean,MathlibTest/delaborators.lean | 3 | 19 | ['JovanGerb', 'Rob23oba', 'eric-wieser', 'github-actions', 'kmill', 'mathlib-bors', 'mathlib4-merge-conflict-bot', 'plp127'] | nobody | 2 months ago | 187 days ago | 42 days |
| 22657 | Xmask19 | feat: a graph is maximally acyclic iff it is a tree | --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics new-contributor | 86/0 | Mathlib/Combinatorics/SimpleGraph/Acyclic.lean | 1 | 8 | ['Rida-Hamadani', 'SnirBroshi', 'b-mehta', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] | b-mehta | 2 months ago | unknown | unknown |
| 21344 | kbuzzard | chore: attempt to avoid diamond in OreLocalization | --- [](https://gitpod.io/from-referrer/) | please-adopt t-algebra | 16/5 | Mathlib/RingTheory/OreLocalization/Basic.lean | 1 | 6 | ['erdOne', 'github-actions', 'kbuzzard'] | nobody | 1 month ago | unknown | unknown |
| 17176 | arulandu | feat: integrals and integrability with .re | Lemmas for swapping order of .re and integration/integrability. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author new-contributor t-measure-probability please-adopt | 49/0 | Mathlib/MeasureTheory/Function/L1Space.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral.lean,Mathlib/MeasureTheory/Integral/SetIntegral.lean | 4 | 32 | ['EtienneC30', 'arulandu', 'github-actions', 'loefflerd'] | nobody | 1 month ago | unknown | unknown |
| 13740 | YaelDillies | feat: more robust ae notation | Make sure that, when `μ : FiniteMeasure Ω`, `f =ᵐ[μ] g` elaborates to `f =ᵐ[↑μ] g` instead of complaining about `OuterMeasureClass (FiniteMeasure Ω) (Set Ω) ℝ≥0∞` not existing. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/ae.20of.20a.20finite.20measure) --- [](https://gitpod.io/from-referrer/) | t-meta t-measure-probability awaiting-author | 67/8 | Mathlib/MeasureTheory/Integral/Bochner/L1.lean,Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/OuterMeasure/AE.lean,Mathlib/MeasureTheory/OuterMeasure/BorelCantelli.lean,Mathlib/Probability/Notation.lean | 6 | 41 | ['YaelDillies', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'thorimur', 'urkud'] | RemyDegenne and thorimur | 1 month ago | unknown | unknown |
| 24010 | grunweg | feat(Counterexamples): a non-negative function, not a.e. zero, with vanishing lowe… | …r Lebesgue integral. Came up in #23707, let's document this while we're at it. --- - [ ] depends on: #20722 [](https://gitpod.io/from-referrer/) | merge-conflict please-adopt WIP blocked-by-other-PR t-measure-probability | 110/0 | Counterexamples.lean,Counterexamples/LIntegralZero.lean | 2 | 3 | ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 33669 | eric-wieser | chore(Data/Nat/Digits): refactor to use List.rightpad | --- [](https://gitpod.io/from-referrer/) | large-import merge-conflict | 32/12 | Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Data/List/Lemmas.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Nat/Digits/Lemmas.lean | 5 | 3 | ['github-actions', 'mathlib4-merge-conflict-bot', 'xroblot'] | nobody | 1 month ago | unknown | unknown |
| 13158 | erdOne | refactor(RingTheory/OreLocalization/Module): remove `LocalizedModule.mk`. | --- - [x] depends on: #13151 - [ ] depends on: #13156 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebra blocked-by-other-PR | 49/48 | Mathlib/RingTheory/OreLocalization/Basic.lean,Mathlib/RingTheory/OreLocalization/Module.lean | 2 | 2 | ['leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| 12934 | grunweg | chore: replace more uses of > or ≥ by < or ≤ | These were flagged by the linter in https://github.com/leanprover-community/mathlib4/pull/12879: it is easy to simple avoid > or ≥ in hypotheses or haves. --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author help-wanted | 41/42 | Archive/Imo/Imo1962Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2019Q4.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib/Tactic/Linarith/Datatypes.lean,test/cancel_denoms.lean,test/congr.lean,test/interval_cases.lean,test/observe.lean | 15 | 12 | ['YaelDillies', 'adomani', 'github-actions', 'grunweg', 'jcommelin', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| 20719 | gio256 | feat(AlgebraicTopology): delaborators for truncated simplicial notations | We add delaborators for the following notations, introduced in #20688: - `⦋m⦌ₙ`, which denotes the `m`-dimensional simplex in the `n`-truncated simplex category. - `X _⦋m⦌ₙ`, which denotes the `m`-th term of an `n`-truncated simplicial object `X`. - `X ^⦋m⦌ₙ`, which denotes the `m`-th term of an `n`-truncated cosimplicial object `X`. If `pp.proofs` is set to `true`, we also pretty-print the proof `p : m ≤ n` for all three notations as `⦋m, p⦌ₙ`, `X _⦋m, p⦌ₙ`, and `X ^⦋m, p⦌ₙ`, respectively. Credit to @kmill for one piece of code and much metaprogramming inspiration. --- - [x] depends on: #20688 - [x] depends on: #23018 [](https://gitpod.io/from-referrer/) | merge-conflict t-algebraic-topology infinity-cosmos t-meta | 525/33 | Mathlib.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SimplexCategory.lean,Mathlib/Util/Superscript.lean,MathlibTest/SimplexCategory.lean,MathlibTest/SimplicialObject.lean,MathlibTest/superscript.lean,scripts/noshake.json | 11 | 23 | ['eric-wieser', 'gio256', 'github-actions', 'joneugster', 'kim-em', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | joneugster | 1 month ago | unknown | unknown |
| 31348 | PatrickMassot | chore: fix a docstring typo | --- [](https://gitpod.io/from-referrer/) | documentation awaiting-author t-analysis | 1/1 | Mathlib/Analysis/Calculus/Darboux.lean | 1 | 3 | ['ADedecker', 'dopamine333', 'github-actions'] | nobody | 1 month ago | 116 days ago | 5 hours |
| 10991 | thorimur | feat: `tfae` block tactic | This PR introduces `tfae` block tactic syntax: ```lean tfae 1 → 2 := /- proof of `P₁ → P₂` -/ 2 → 3 := /- proof of `P₂ → P₃` -/ 3 → 1 := /- proof of `P₃ → P₁` -/ ``` Like the recent change to `tfae_have`, this syntax also supports all sorts of matching that `have` itself supports: ```lean tfae 2 → 3 | h₂ => /- proof of `P₃` -/ 3 → 1 -- given `P₁ := ∀(a : A), (b : B), (c : C), X`: | h₃, a, b, c => /- proof of `X` -/ ⟨h_mp, h_mpr⟩ : 1 ↔ 2 := /- proof of `P₁ ↔ P₂`; puts `h_mp : P₁ → P₂`, `h_mpr : P₂ → P₁` in the lctx -/ ``` This initial implementation is currently very simple, and relies on `tfae_have` and `tfae_finish`. Although we intend to migrate away from that syntax, this PR does not remove support for it or deprecate `tfae_have`/`tfae_finish` in any way; migration (but not deprecation) is done in #11003. --- - [x] depends on: #10653 - [x] depends on: #10994 [](https://gitpod.io/from-referrer/) | merge-conflict WIP modifies-tactic-syntax t-meta | 392/124 | Mathlib/Tactic/TFAE.lean,scripts/noshake.json,test/tfae.lean | 3 | 5 | ['github-actions', 'joneugster', 'mathlib4-dependent-issues-bot', 'thorimur'] | joneugster | 1 month ago | unknown | unknown |
| 34131 | Ruben-VandeVelde | fix: update create_deprecated_modules.lean | --- This is a wip; I'm hoping someone can pick it up and make sure CI builds it going forward. @adomani @kim-em any takers? [](https://gitpod.io/from-referrer/) | please-adopt WIP CI | 26/22 | scripts/create_deprecated_modules.lean | 1 | 2 | ['adomani', 'github-actions'] | nobody | 1 month ago | unknown | unknown |
| 34195 | eric-wieser | feat: continuous bundled actions | These are `Continuous` versions of existing definitions. --- [](https://gitpod.io/from-referrer/) | t-topology t-algebra large-import | 59/0 | Mathlib/Topology/Algebra/ContinuousMonoidHom.lean | 1 | 1 | ['github-actions'] | nobody | 1 month ago | unknown | unknown |
| 21476 | grunweg | feat(lint-style): enable running on downstream projects | Enable lint-style to run on downstream projects, by making the following modifications: - allow passing an explicit list of libraries to lint: if nothing is passed, it lints `Mathlib`, `Archive` and `Counterexamples` (as before); otherwise, it lints precisely the passed modules - only check init imports, undocumented scripts and the errors from `lint-style.py` when linting Mathlib - make the style exceptions file configurable and optional: using the `nolints-file` flag, the exceptions file can be configured. If the flag is omitted, we try to find a file at `scripts/nolints-style.txt` --- and otherwise proceed with no style exceptions. This means mathlib can continue unchanged, and downstream projects can either add an explicit exceptions file, or proceed without any exceptions. After this PR, one should be able to run lint-style on a downstream project by `lake exe lint-style ProjectName`. Prompted by [this zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/lint-style.20for.20downstream.20libraries). --- - [x] depends on: #24570 - [x] depends on: #24953 (I did not test the last part.) [](https://gitpod.io/from-referrer/) | merge-conflict t-linter awaiting-author | 58/19 | Mathlib/Tactic/Linter/TextBased.lean,scripts/lint-style.lean | 2 | 20 | ['Vierkantor', 'adomani', 'github-actions', 'grunweg', 'joneugster', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] | joneugster | 1 month ago | unknown | unknown |
| 12879 | grunweg | feat: port ge_or_gt linter from mathlib3 | Code works and is essentially green: next step is to split up into separate PRs. Feedback welcome on whether: - all the test changes are good, or I should simply allow it in more cases - if calc blocks need to be explicitly exempt --- - [ ] depends on: #12933 - [ ] depends on: #12934 - [ ] depends on: #12931 [](https://gitpod.io/from-referrer/) | merge-conflict t-linter tech debt blocked-by-other-PR | 736/319 | Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1962Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo2001Q2.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2011Q5.lean,Archive/Imo/Imo2019Q4.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Archive/Wiedijk100Theorems/BirthdayProblem.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Mathlib.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Star/CHSH.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finset/Fold.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Int/Lemmas.lean,Mathlib/Data/Nat/Dist.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Parity.lean,Mathlib/Data/Nat/Upto.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/UInt.lean,Mathlib/GroupTheory/Coxeter/Length.lean,Mathlib/MeasureTheory/Constructions/Polish.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Covering/Vitali.lean,Mathlib/MeasureTheory/Covering/VitaliFamily.lean,Mathlib/MeasureTheory/Integral/Layercake.lean,Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/NumberTheory/Padics/PadicNorm.lean,Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Rayleigh.lean,Mathlib/Order/Filter/AtTopBot.lean,Mathlib/Probability/Process/Stopping.lean,Mathlib/RingTheory/Adjoin/Basic.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CancelDenoms/Core.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/IntervalCases.lean,Mathlib/Tactic/Linarith/Datatypes.lean,Mathlib/Tactic/Linarith/Lemmas.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linter/GeOrGt.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/NormNum/GCD.lean,Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Topology/Category/Profinite/Nobeling.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean,Mathlib/Topology/MetricSpace/CauSeqFilter.lean,Mathlib/Topology/MetricSpace/Cauchy.lean,Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sequences.lean,scripts/lint-style.py,test/Explode.lean,test/GCongr/inequalities.lean,test/GeOrGt.lean,test/LibrarySearch/IsCompact.lean,test/LibrarySearch/basic.lean,test/Recall.lean,test/Rify.lean,test/Use.lean,test/cancel_denoms.lean,test/congr.lean,test/delabLinearIndependent.lean,test/delaborators.lean,test/interval_cases.lean,test/linarith.lean | 109 | 4 | ['github-actions', 'grunweg', 'leanprover-community-mathlib4-bot', 'urkud'] | nobody | 1 month ago | unknown | unknown |
| 8608 | eric-wieser | feat: multiplicativize `AddTorsor` | --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-algebra please-adopt | 268/199 | Mathlib/Algebra/AddTorsor.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Data/Set/Pointwise/SMul.lean,Mathlib/Tactic/ToAdditive.lean | 4 | 2 | ['alreadydone'] | nobody | 1 month ago | unknown | unknown |
| 34501 | eric-wieser | chore(Data/Fintype/Induction): add a workaround for a bug in `induction` | This works around leanprover/lean4#4246, as Zulip threads frequently run up against this. --- [](https://gitpod.io/from-referrer/) | awaiting-author t-meta | 15/1 | Mathlib/Data/Fintype/Option.lean | 1 | 2 | ['github-actions', 'joneugster'] | joneugster | 1 month ago | 32 days ago | 2 days |
| 16074 | Rida-Hamadani | feat: combinatorial maps and planar graphs | We define combinatorial maps, then we define planar graph using combinatorial maps. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-combinatorics | 243/0 | Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Planar.lean,Mathlib/Data/CombinatorialMap.lean | 3 | 29 | ['MrBrain295', 'Parcly-Taxel', 'Rida-Hamadani', 'github-actions', 'lambda-fairy', 'leanprover-community-bot-assistant'] | kmill | 1 month ago | unknown | unknown |
| 24100 | eric-wieser | feat: restore some explicit binders from Lean 3 | Part of #24099 --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author tech debt t-topology t-algebra | 39/42 | Mathlib/Data/FinEnum.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean,Mathlib/Topology/MetricSpace/IsometricSMul.lean,Mathlib/Topology/Metrizable/CompletelyMetrizable.lean,Mathlib/Topology/Metrizable/Uniformity.lean,Mathlib/Topology/Order.lean,Mathlib/Topology/Order/LowerUpperTopology.lean,Mathlib/Topology/UniformSpace/UniformEmbedding.lean | 10 | 3 | ['github-actions', 'grunweg', 'leanprover-community-bot-assistant'] | nobody | 1 month ago | unknown | unknown |
| 24000 | YaelDillies | feat: correspondence between affine group schemes and Hopf algebras | Construct `Spec` as a functor from `R`-Hopf algebras to group schemes over `Spec R`, show it is full and faithful and has affine group schemes as essential image.
From Toric, FLT
Co-authored-by: Andrew Yang |
t-algebraic-geometry toric FLT blocked-by-other-PR | 127/0 | Mathlib/AlgebraicGeometry/GroupScheme/HopfAffine.lean | 1 | 4 | ['YaelDillies', 'github-actions', 'kbuzzard', 'mathlib4-dependent-issues-bot'] | nobody | 1 month ago | unknown | unknown |
| 25474 | adomani | test for .lean/.md check | A test PR for #25473. --- [](https://gitpod.io/from-referrer/) | merge-conflict t-linter file-removed WIP | 10/1 | .github/workflows/lint_and_suggest_pr.yml,Mathlib.lean,Mathlib/NumberTheory/NumberField/CMField.Lean | 3 | 2 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 1 month ago | unknown | unknown |
| 33991 | grunweg | test: pretty-printing of class abbrev | Lake build fails with an error in batteries: what am I doing wrong? --- [](https://gitpod.io/from-referrer/) | merge-conflict file-removed large-import WIP | 118/303 | .github/workflows/daily.yml,Mathlib.lean,Mathlib/Algebra/Group/Action/TransferInstance.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Notation/Lemmas.lean,Mathlib/Algebra/Notation/Pi/Defs.lean,Mathlib/Algebra/Notation/Prod.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/Unbundled/Basic.lean,Mathlib/CategoryTheory/Limits/Yoneda.lean,Mathlib/Data/Finite/Defs.lean,Mathlib/Data/Int/Cast/Pi.lean,Mathlib/Data/Int/Init.lean,Mathlib/Data/List/Flatten.lean,Mathlib/Data/List/GetD.lean,Mathlib/Data/List/Indexes.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Init.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean,Mathlib/Lean/Meta/Simp.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/GaloisConnection/Defs.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean,Mathlib/SetTheory/Cardinal/Defs.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/FunProp/Decl.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Push/Attr.lean,Mathlib/Tactic/Widget/LibraryRewrite.lean,Mathlib/Topology/Defs/Basic.lean,Mathlib/Util/AssertExists.lean,MathlibTest/AssertExists.lean,MathlibTest/CalcQuestionMark.lean,MathlibTest/DeprecatedSyntaxLinter.lean,MathlibTest/DirectoryDependencyLinter/Test.lean,MathlibTest/EmptyLine.lean,MathlibTest/ExtractGoal.lean,MathlibTest/HaveLetLinter.lean,MathlibTest/LibrarySearch/IsCompact.lean,MathlibTest/LintStyle.lean,MathlibTest/TacticAnalysis.lean,MathlibTest/UnusedInstancesInType.lean,MathlibTest/Util/PrintSorries.lean,MathlibTest/WhitespaceLinter.lean,MathlibTest/aesop_cat.lean,MathlibTest/eqns.lean,MathlibTest/fast_instance.lean,MathlibTest/globalAttributeIn.lean,MathlibTest/hintAll.lean,MathlibTest/jacobiSym.lean,MathlibTest/slim_check.lean,MathlibTest/toAdditive.lean,lake-manifest.json,lakefile.lean,lean-toolchain | 61 | 2 | ['github-actions', 'mathlib4-merge-conflict-bot'] | nobody | 1 month ago | unknown | unknown |
| 31110 | bryangingechen | ci: don't delete merged branches | This will only affect PRs that are not from forks (e.g. this one). The motivation is that #30913 was closed automatically due to its target branch deleted after #30912 was merged. See also [#PR reviews > #30913 feat(Computability/Language):add subtraction notation @ 💬](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2330913.20feat.28Computability.2FLanguage.29.3Aadd.20subtraction.20notation/near/548052556). Looking at the history, it looks like this option hasn't been changed since we added bors to mathlib3: https://github.com/leanprover-community/mathlib3/pull/2322 --- [](https://gitpod.io/from-referrer/) | awaiting-author CI merge-conflict | 1/1 | bors.toml | 1 | 5 | ['bryangingechen', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'urkud'] | nobody | 1 month ago | 123 days ago | 17 hours |
| 19860 | YaelDillies | refactor: review the `simps` projections of `OneHom`, `MulHom`, `MonoidHom` | Make `simps` generate `coe_concreteHom` rather than`concreteHom_apply`. From FLT --- In fact, I would love to have both the `coe_` and `_apply` projections simultaneously and also to not have to specify ` simps (config := .asFn))` every single time we want to generate the `coe_` projection, but `simps ` seems to not be able to do that? cc @fpvandoorn I must say, after four years of working on mathlib, I still don't understand how one is supposed to use `simps`. [](https://gitpod.io/from-referrer/) | WIP t-algebra | 100/123 | Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/WithOne/Basic.lean,Mathlib/Algebra/GroupWithZero/WithZero.lean,Mathlib/Algebra/Module/End.lean,Mathlib/GroupTheory/NoncommCoprod.lean | 8 | 12 | ['fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] | nobody | 27 days ago | unknown | unknown |
| 21031 | YaelDillies | chore: get rid of generic hom coercions | --- [](https://gitpod.io/from-referrer/) | WIP | 166/161 | Mathlib/Algebra/Group/Equiv/Basic.lean,Mathlib/Algebra/Group/Equiv/Defs.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/Algebra/GroupWithZero/Hom.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Ring/Hom/Defs.lean,Mathlib/Logic/Equiv/Defs.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/RingTheory/Valuation/Basic.lean | 12 | 18 | ['Vierkantor', 'YaelDillies', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'urkud'] | Vierkantor | 27 days ago | unknown | unknown |
| 34895 | eric-wieser | chore: backquote tactic names in error messages | This matches the messages produced by `Lean.Meta.throwTacticEx`. --- [](https://gitpod.io/from-referrer/) | t-meta delegated | 15/15 | Mathlib/Tactic/Abel.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/Ring/RingNF.lean,Mathlib/Util/AtLocation.lean,MathlibTest/abel.lean | 6 | 2 | ['github-actions', 'grunweg', 'mathlib-bors'] | nobody | 25 days ago | unknown | unknown |
| 9820 | jjaassoonn | feat(RingTheory/GradedAlgebra/HomogeneousIdeal): generalize to homogeneous submodule | The definitions, constructions and theorems in `HomogeneousIdeal.lean` are generalized to a homogeneous submodules. So say $R$ is a ring and $M \cong \bigoplus_{i} M_i$ is an $R$-module. Then a homogeneous $R$-submodule of $M$ is an $R$-submodule $N$ such that for all $i$ and $n \in N$, $n_i \in N$. Note that this notion doesn't actually require $R$ to be graded and $M$ is a graded module. But for more interesting lemmas, we do need that $M$ is graded $R$-module. We bake the fact $R$ is graded into the definition of homogeneous submodule, otherwise, `CompleteLattice HomogeneousSubmodule` cannot find the order of synthesis (the proof depends on that $R$ is graded) All definitions/constructions/theorems have a copy for ideals as well, this is to make sure dot notation still works. The motivation of this generalization is graded quotient module --- - [x] depends on:#18728 [](https://gitpod.io/from-referrer/) | merge-conflict t-ring-theory | 516/185 | Mathlib/Algebra/Module/GradedModule.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,scripts/nolints_prime_decls.txt | 7 | 3 | ['github-actions', 'leanprover-community-bot-assistant'] | nobody | 22 days ago | unknown | unknown |
| 29030 | b-mehta | feat(Combinatorics): prove the Rado selection lemma | Prove the Rado selection lemma, a generic result useful to prove a variety of compactness results in combinatorics. This generalises Konig's infinity lemma, and the de Bruijn-Erdos theorem, and allows the former to be conveniently stated in the language of sets rather than categories. We leave these generalisations of results in mathlib to later PRs. --- [](https://gitpod.io/from-referrer/) | t-combinatorics | 132/0 | Mathlib.lean,Mathlib/Combinatorics/Compactness.lean | 2 | 1 | ['github-actions'] | nobody | 22 days ago | unknown | unknown |
| 14501 | jjaassoonn | feat: module structure of filtered colimit of abelian groups over filtered colimit of rings | This helps defining the module structure of stalks This contribution was inspired by the AIM workshop "Formalizing algebraic geometry" in June 2024. --- - [x] depends on: #15315 [I am going to move the result in the new file] [](https://gitpod.io/from-referrer/) | t-algebra workshop-AIM-AG-2024 t-category-theory merge-conflict awaiting-author | 439/2 | Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean,Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean | 2 | 49 | ['YaelDillies', 'adamtopaz', 'alreadydone', 'erdOne', 'github-actions', 'jjaassoonn', 'joelriou', 'kbuzzard'] | joelriou | 21 days ago | unknown | unknown |
| 25035 | ScottCarnahan | feat(Algebra/Module/Equiv/Defs): linear equivalence between linear hom and semilinear hom | Given a ring homomorphism `σ₂ : R →+* R₂`, an `R`-module `M`, and a module `M₂` for both `R` and `R₂` satisfying `SMulCommClass R R₂ M₂` and `(σ₂ r) • x = r • x`, we produce an `R₂`-linear equivalence between `M →ₗ[R] M₂` and `M →ₛₗ[σ₂] M₂`. --- [](https://gitpod.io/from-referrer/) | WIP t-algebra merge-conflict | 21/0 | Mathlib/Algebra/Module/Equiv/Defs.lean | 1 | 2 | ['github-actions', 'mathlib-merge-conflicts'] | nobody | 21 days ago | unknown | unknown |
| 34931 | eric-wieser | perf: make TensorProduct.lift irreducible with a unification hint | --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 6/2 | Mathlib/LinearAlgebra/TensorProduct/Basic.lean | 1 | 7 | ['eric-wieser', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] | erdOne | 19 days ago | 19 days ago | 5 days |
| 23042 | joneugster | feat(CategoryTheory/Enriched/Limits): add HasConicalLimitsOfSize.shrink | --- Note: I've marked this "WIP" because I'm not yet sure when this will be needed and I'd probably put the PR on the queue once I've created some follow-up needing it. [](https://gitpod.io/from-referrer/) | WIP t-category-theory infinity-cosmos please-adopt | 22/1 | Mathlib/CategoryTheory/Enriched/Limits/HasConicalLimits.lean | 1 | 1 | ['github-actions'] | nobody | 17 days ago | unknown | unknown |
| 23142 | joneugster | feat(CategoryTheory/Enriched/Limits): add API for HasConicalLimit | --- [](https://gitpod.io/from-referrer/) | awaiting-author t-category-theory infinity-cosmos please-adopt | 52/9 | Mathlib/CategoryTheory/Enriched/Limits/HasConicalLimits.lean | 1 | 2 | ['github-actions', 'joelriou'] | nobody | 17 days ago | unknown | unknown |
| 23145 | joneugster | feat(CategoryTheory/Enriched/Limits): add IsConicalLimits | --- - [ ] depends on: #23142 [](https://gitpod.io/from-referrer/) | merge-conflict blocked-by-other-PR t-category-theory infinity-cosmos please-adopt | 221/9 | Mathlib.lean,Mathlib/CategoryTheory/Enriched/Limits/HasConicalLimits.lean,Mathlib/CategoryTheory/Enriched/Limits/IsConicalLimit.lean | 3 | 3 | ['github-actions', 'joelriou', 'mathlib4-dependent-issues-bot'] | nobody | 17 days ago | unknown | unknown |
| 20401 | RemyDegenne | feat: add sigmaFinite_iUnion | ```lean lemma sigmaFinite_iUnion (μ : Measure α) {s : ℕ → Set α} (h_meas : MeasurableSet (⋃ n, s n)) [∀ n, SigmaFinite (μ.restrict (s n))] : SigmaFinite (μ.restrict (⋃ n, s n)) ``` --- [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-measure-probability | 37/28 | Mathlib/MeasureTheory/Decomposition/Exhaustion.lean,Mathlib/MeasureTheory/Measure/Typeclasses.lean | 2 | 6 | ['RemyDegenne', 'github-actions', 'sgouezel', 'urkud'] | nobody | 16 days ago | unknown | unknown |
| 11500 | mcdoll | refactor(Topology/Algebra/Module/WeakDual): Clean up | - Move `Dual` and `dualPairing` lower in the import-hierachy - deduplicate `dualPairing` - Bundle continuity statements to `CLM`s. - Make `WeakDual` and `WeakSpace` reducible - Remove `refine'` in favor of `refine` --- Cleaning up `Analysis/NormedSpace/WeakDual` will be done in a second PR [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author t-topology | 227/179 | Mathlib.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/Dual.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/NormedSpace/Dual.lean,Mathlib/Analysis/NormedSpace/WeakDual.lean,Mathlib/Analysis/VonNeumannAlgebra/Basic.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/Topology/Algebra/Module/CharacterSpace.lean,Mathlib/Topology/Algebra/Module/Dual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,docs/overview.yaml,docs/undergrad.yaml | 15 | 16 | ['ADedecker', 'grunweg', 'j-loreaux', 'kkytola', 'mathlib-bors', 'mcdoll', 'urkud'] | nobody | 16 days ago | unknown | unknown |
| 20428 | madvorak | feat(Data/Sign): lemmas about `∈ Set.range SignType.cast` | --- Perhaps `in_set_range_singType_cast_iff_abs` needs to be moved somewhere downstream. | merge-conflict WIP t-data | 40/0 | Mathlib/Data/Sign.lean | 1 | 13 | ['eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'madvorak', 'urkud'] | nobody | 16 days ago | unknown | unknown |
| 16215 | adomasbaliuka | feat(Tactic/Linter): lint unwanted unicode | Add a text-based style linter that checks all unicode characters. - Only allow whitelisted characters, with a suggestion to add the flagged character to the whitelist - Some characters are specified to use emoji-variant or text-variant. The linter ensures these variant-selectors only appear in the correct places and provides an auto-fix to clean them up. --- Discussed at [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Whitelist.20for.20Unicode.3F/near/448721083) The current proposal checks each character against a whitelist. There is also the question of what the whitelist should contain. A reasonable whitelist might be "all unicode currently in Mathlib" ∪ [Wikipedia/Mathematical_operators_and_symbols_in_Unicode](https://en.wikipedia.org/wiki/Mathematical_operators_and_symbols_in_Unicode) ∪ [EdAyers/mathlib3/docs/unicode.md](https://github.com/EdAyers/mathlib/blob/fb5c2ffe917049959597b0a93b872e91f4004922/docs/unicode.md). Currently implemented is a subset of this list closer to what's currently present in mathlib. - [x] depends on: #17068 - [x] depends on: #17116 - [x] depends on: #17129 (part 1 of this PR) - ~depends on #34719 (part 1 of this PR)~ - ~depends on: #17131 (part 2 of this PR)~ (obsolete) - [x] depends on: #34022 (part 2 of this PR) - Future note: @adomasbaliuka says: "we might add something to the Mathlib 4 docs about this as well?" [](https://gitpod.io/from-referrer/) | merge-conflict t-linter | 462/15 | Mathlib/GroupTheory/GroupExtension/Defs.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/UnicodeLinter.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Widget/Conv.lean,Mathlib/Tactic/Widget/GCongr.lean,Mathlib/Topology/ContinuousFunction/Weierstrass.lean,test/LintStyle.lean | 9 | 51 | ['adomasbaliuka', 'eric-wieser', 'github-actions', 'grunweg', 'joneugster', 'mathlib-dependent-issues'] | joneugster | 15 days ago | unknown | unknown |
| 16553 | grunweg | WIP: tinkering with orientable manifolds | - wait for #33307 to get merged - PR the "normed space" part separately - WIP: a linear isomorphism on a connected set is either orientation-preserving or orientation-preserving: some form of this was merged into mathlib recently; TODO update this PR accordingly! - [ ] depends on: #33307 - [x] depends on: #8738 --- [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-differential-geometry blocked-by-other-PR | 287/0 | Mathlib.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/Orientable.lean | 3 | 3 | ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] | nobody | 15 days ago | unknown | unknown |
| 35448 | mathlib-splicebot | chore(Mathlib/Tactic/Linter/GlobalSyntax.lean): automated extraction | This PR was automatically created from a review comment on PR #34019. | t-linter new-contributor | 138/0 | Mathlib/Tactic/Linter/GlobalSyntax.lean | 1 | 2 | ['github-actions'] | nobody | 14 days ago | unknown | unknown |
| 24965 | erdOne | refactor: Make `IsLocalHom` take unbundled map | Under the current definition, `IsLocalHom f` and `IsLocalHom f.toMonoidHom` are not defeq, which causes quite some annoyances. We also have a consensus to not use `*HomClass` in definitions. As a result, we change `IsLocalHom` to take an unbundled function instead of a funlike. --- [](https://gitpod.io/from-referrer/) | t-algebra delegated merge-conflict | 18/9 | Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean,Mathlib/Geometry/RingedSpace/OpenImmersion.lean,Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean | 5 | 15 | ['adomani', 'alreadydone', 'erdOne', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib-bors', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp'] | mattrobball | 14 days ago | 105 days ago | 14 days |
| 25622 | eric-wieser | refactor: overhaul instances on LocalizedModule | This: * Generalizes the `SMul`, `Module`, and `Algebra` instances via appropriate compatibility conditions * Generalizes the `Mul` instance to the non-unital setting * Fixes instances diamonds for the `Nat`- and `Int`-actions --- [](https://gitpod.io/from-referrer/) | t-algebra merge-conflict | 214/100 | Mathlib/Algebra/Module/LocalizedModule/Basic.lean | 1 | 6 | ['erdOne', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts'] | nobody | 14 days ago | unknown | unknown |
| 34075 | eric-wieser | feat: add a typeclass for the continuum hypothesis | This allows a proof from the Archive to be promoted to mathlib itself. The proof strategy of `iff_exists_sierpinski_pathological_pred` was written almost entirely with public Gemini 3 Thinking, and then manually corrected. --- [](https://gitpod.io/from-referrer/) | t-set-theory awaiting-author merge-conflict | 200/58 | Counterexamples/Phillips.lean,Mathlib.lean,Mathlib/SetTheory/Cardinal/ContinuumHypothesis.lean | 3 | 21 | ['b-mehta', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] | nobody | 13 days ago | unknown | unknown |
| 35547 | Ruben-VandeVelde | chore: tidy various files | --- As usual, `simp`s didn't seem slow. [](https://gitpod.io/from-referrer/) | awaiting-author | 83/117 | Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/LinearRecurrence.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/AlgebraicGeometry/AffineScheme.lean,Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean,Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/AlgebraicGeometry/ZariskisMainTheorem.lean,Mathlib/Analysis/Complex/CoveringMap.lean,Mathlib/Analysis/Complex/MeanValue.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Data/Set/Dissipate.lean,Mathlib/Data/Set/PowersetCard.lean,Mathlib/Geometry/Euclidean/Angle/Bisector.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/JordanChevalley.lean,Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/MeasureTheory/Measure/SubFinite.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/Order/ConditionallyCompletePartialOrder/Indexed.lean,Mathlib/Probability/Distributions/Cauchy.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Polynomial/Subring.lean,Mathlib/RingTheory/Smooth/IntegralClosure.lean,Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean,Mathlib/RingTheory/Unramified/LocalStructure.lean,Mathlib/RingTheory/ZariskisMainTheorem.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Majorized.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean,Mathlib/Topology/Algebra/MulAction.lean | 32 | 13 | ['github-actions', 'grunweg', 'vihdzp'] | nobody | 11 days ago | 11 days ago | 18 hours |
| 35588 | eric-wieser | chore(Util/Qq): remove `meta` | These are wrappers of existing functions which are also not marked meta. --- [](https://gitpod.io/from-referrer/) | t-meta awaiting-CI | 1/1 | Mathlib/Util/Qq.lean | 1 | 1 | ['github-actions'] | nobody | 10 days ago | unknown | unknown |
| 12933 | grunweg | chore: replace some use of > or ≥ by < or ≤ | These were flagged by the linter in #12879: it is easy to simple avoid > or ≥ in hypotheses or `have`s. --- - [x] depends on: #35346 [](https://gitpod.io/from-referrer/) | merge-conflict awaiting-author | 123/123 | Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1962Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2011Q5.lean,Archive/Imo/Imo2019Q4.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Definitions.lean,Mathlib/Algebra/Star/CHSH.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/FP/Basic.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Finsupp/Notation.lean,Mathlib/Data/Nat/Dist.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Parity.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/UInt.lean,Mathlib/GroupTheory/Coxeter/Length.lean,Mathlib/MeasureTheory/Constructions/Polish.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Covering/Vitali.lean,Mathlib/MeasureTheory/Covering/VitaliFamily.lean,Mathlib/MeasureTheory/Integral/Layercake.lean,Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/NumberTheory/Padics/PadicNorm.lean,Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Rayleigh.lean,Mathlib/Probability/Process/Stopping.lean,Mathlib/Tactic/CancelDenoms/Core.lean,Mathlib/Tactic/IntervalCases.lean,Mathlib/Tactic/Linarith/Lemmas.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/NormNum/GCD.lean,Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Topology/Category/Profinite/Nobeling.lean,Mathlib/Topology/ContinuousFunction/Bounded.lean,Mathlib/Topology/MetricSpace/CauSeqFilter.lean,Mathlib/Topology/Sequences.lean,test/LibrarySearch/basic.lean,test/Use.lean,test/cancel_denoms.lean,test/linarith.lean,test/norm_cast.lean | 64 | 7 | ['YaelDillies', 'github-actions', 'grunweg', 'mathlib-dependent-issues'] | nobody | 10 days ago | unknown | unknown |
| 22366 | kim-em | feat: `check_equalities` tactic for diagnosing defeq problems | The `check_equalities` tactic, which checks the typing of equalities in the goal, reporting discrepancies between the implicit type argument of the equality, and the inferred types of the left and right hand sides, at "instances and reducible" transparency. Reports from this tactic do not necessarily indicate a problem, although typically `simp` should reduce rather than increase the reported discrepancies. `check_equalities` may be useful in diagnosing uses of `erw`. | delegated t-meta | 123/4 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/CheckCompositions.lean,Mathlib/Tactic/CheckEqualities.lean,Mathlib/Tactic/Common.lean,MathlibTest/check_equalities.lean | 7 | 19 | ['adomani', 'b-mehta', 'eric-wieser', 'github-actions', 'grunweg', 'kim-em', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] | nobody | 9 days ago | unknown | unknown |
| 21342 | YaelDillies | refactor(Normed/Group/Quotient): generalise to non-abelian groups | The goal is to apply this to free groups, whose multiplication in either argument is an isometry, but isn't commutative. --- - [x] depends on: #21341 - [ ] depends on: #35037 [](https://gitpod.io/from-referrer/) | t-analysis | 99/69 | Mathlib/Analysis/Normed/Group/Quotient.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/Group/Quotient.lean,Mathlib/Topology/Bornology/BoundedOperation.lean | 6 | 11 | ['YaelDillies', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'sgouezel'] | sgouezel | 6 days ago | 7 days ago | 11 days |
| 20238 | 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. [](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'] | nobody | 5 days ago | unknown | unknown |
| 22361 | rudynicolop | feat(Computability/NFA): nfa closure properties | Add the closure properties union, intersection and reversal for NFA. --- [](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'] | nobody | 5 days ago | unknown | unknown |
| 23929 | meithecatte | feat(Computability/NFA): improve bound on pumping lemma | --- - [x] depends on: #25321 [](https://gitpod.io/from-referrer/) | t-computability awaiting-zulip new-contributor awaiting-author | 101/10 | Mathlib/Computability/EpsilonNFA.lean,Mathlib/Computability/NFA.lean | 2 | 42 | ['YaelDillies', 'dagurtomas', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'meithecatte'] | nobody | 5 days ago | 269 days ago | 10 hours |
| 8102 | miguelmarco | feat(Tactic): add `unify_denoms` and `collect_signs` tactics | This PR adds four new tactics: - `unify_denoms` tries to put expressions with several divisions in a form with only one division. In the case of fields, it works similarly to `field_simp`, but if the hypothesis about denominators being nonzero are not present, it assumes them, and leaves them as new goals to prove. In that sense, it is an "unsafe" tactic (but can be useful nevertheless, for example when you can't find which exact hypothesis is missing). It also works with expressions of naturals and Euclidean domains, assuming the corresponding hypothesis about the denominators dividing the numerators. - `unify_denoms!` extends `unify_denoms` to work with (in)equalities, assuming also that the denominators, once in normal form, are positive. - `collect_signs` works similarly with expressions using sums and substractions: it tries to put them in a form of one sum minus other sum. In the case of working with naturals, it assumes that we never substract a bigger number from a smaller one. Both are implemented essentially as a macro that combines several rewriting rules. Some new lemmas with the corresponding rules are added. --- | please-adopt new-contributor merge-conflict modifies-tactic-syntax good first issue t-meta | 407/0 | Mathlib.lean,Mathlib/Algebra/EuclideanDomain/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CollectSigns.lean,Mathlib/Tactic/UnifyDenoms.lean,MathlibTest/unify_denoms.lean,scripts/noshake.json | 7 | 55 | ['Paul-Lez', 'YaelDillies', 'github-actions', 'joneugster', 'kbuzzard', 'mathlib4-merge-conflict-bot', 'miguelmarco'] | nobody | 4 days ago | unknown | unknown |
| 24434 | joelriou | feat(CategoryTheory): effectiveness of descent | (This is very much a draft, it will be split in multiple PRs later.) Co-authored-by: Christian Merten [christian@merten.dev](mailto:christian@merten.dev) --- - [ ] depends on: #35452 - [ ] depends on: #35393 - [ ] depends on: #35396 - [ ] depends on: #35401 - [x] depends on: #24411 - [x] depends on: #24382 - [x] depends on: #25971 - [x] depends on: #13539 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-category-theory blocked-by-other-PR | 4052/66 | Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Adj.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/BaseChange.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean,Mathlib/CategoryTheory/Bicategory/Functor/Cat.lean,Mathlib/CategoryTheory/Bicategory/Functor/LocallyDiscrete.lean,Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean,Mathlib/CategoryTheory/Bicategory/Opposite.lean,Mathlib/CategoryTheory/CommSq.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean,Mathlib/CategoryTheory/Sites/Descent/DescentData.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataAsCoalgebra.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataDoublePrime.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataPrime.lean,Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean,Mathlib/CategoryTheory/Sites/Descent/IsStack.lean,Mathlib/CategoryTheory/Sites/Descent/ModuleCat.lean,Mathlib/CategoryTheory/Sites/Descent/PullbackStruct.lean | 19 | 23 | ['alreadydone', 'callesonne', 'chrisflav', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'yuma-mizuno'] | nobody | 4 days ago | unknown | unknown |
| 35535 | mariainesdff | feat(RingTheory/ClassGroup): prove mulEquiv | We prove that isomorphic rings have isomorphic class groups. Co-authored by: @xgenereux. --- [](https://gitpod.io/from-referrer/) | t-ring-theory awaiting-author | 257/8 | Mathlib/Algebra/Ring/CompTypeclasses.lean,Mathlib/RingTheory/ClassGroup.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean,Mathlib/RingTheory/LocalProperties/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean | 6 | 25 | ['erdOne', 'eric-wieser', 'github-actions', 'mariainesdff', 'mathlib-merge-conflicts', 'tb65536'] | nobody | 3 days ago | 3 days ago | 7 days |
| 35763 | kim-em | chore(scripts): make rm_set_option cache opt-in via --resume | This PR changes `scripts/rm_set_option.py` so the progress cache is only used when explicitly requested via `--resume`, rather than being on by default (with `--no-resume` to disable). The previous default was unsafe: the cache only checks that the target module's own SHA256 is unchanged, so edits to upstream modules between runs would be silently ignored, causing the script to skip modules that should be reprocessed. 🤖 Prepared with Claude Code | 4/4 | scripts/README.md,scripts/rm_set_option.py | 2 | 1 | ['github-actions'] | nobody | 3 days ago | 6 days ago | 6 days | |
| 35917 | dependabot | chore(deps): bump the actions-version-updates group across 1 directory with 7 updates | Bumps the actions-version-updates group with 7 updates in the /.github/workflows directory:
| Package | From | To |
| --- | --- | --- |
| [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) | `1.70.0` | `1.71.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `6.0.0` | `7.0.0` |
| [actions/download-artifact](https://github.com/actions/download-artifact) | `7.0.0` | `8.0.0` |
| [docker/build-push-action](https://github.com/docker/build-push-action) | `6.18.0` | `6.19.2` |
| [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) | `3.2.0` | `4.1.0` |
| [corentinmusard/otel-cicd-action](https://github.com/corentinmusard/otel-cicd-action) | `3.0.0` | `4.0.0` |
| [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) | `14` | `16` |
Updates `reviewdog/action-actionlint` from 1.70.0 to 1.71.0
Release notesSourced from reviewdog/action-actionlint's releases.
CommitsUpdates `actions/upload-artifact` from 6.0.0 to 7.0.0 Release notesSourced from actions/upload-artifact's releases.
CommitsUpdates `actions/download-artifact` from 7.0.0 to 8.0.0 Release notesSourced from actions/download-artifact's releases.
Commits
Updates `docker/build-push-action` from 6.18.0 to 6.19.2 Release notesSourced from docker/build-push-action's releases.
Commits
Updates `actions/attest-build-provenance` from 3.2.0 to 4.1.0 Release notesSourced from actions/attest-build-provenance's releases.
Commits
Updates `corentinmusard/otel-cicd-action` from 3.0.0 to 4.0.0 Release notesSourced from corentinmusard/otel-cicd-action's releases.
ChangelogSourced from corentinmusard/otel-cicd-action's changelog.
... (truncated) Commits
Updates `dawidd6/action-download-artifact` from 14 to 16 Release notesSourced from dawidd6/action-download-artifact's releases.
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and optionsYou can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show |
dependencies github_actions CI | 11/11 | .github/workflows/actionlint.yml,.github/workflows/build_template.yml,.github/workflows/docker_build.yml,.github/workflows/export_telemetry.yaml,.github/workflows/maintainer_bors.yml,.github/workflows/maintainer_bors_wf_run.yml,.github/workflows/maintainer_merge.yml,.github/workflows/maintainer_merge_wf_run.yml | 8 | 2 | ['bryangingechen', 'github-actions'] | nobody | 2 days ago | unknown | unknown |
| 35756 | mariainesdff | feat(Data/Nat/Choose/Multinomial): add lemmas | Co-authored-by: @AntoineChambert-Loir. --- [](https://gitpod.io/from-referrer/) | t-combinatorics t-data | 25/0 | Mathlib/Data/Nat/Choose/Multinomial.lean | 1 | 1 | ['github-actions'] | Vierkantor | 2 days ago | 6 days ago | 6 days |
| 35804 | mariainesdff | feat(RingTheory/DividedPowerAlgebra/Init): add universal divided power algebra | We define the universal divided power algebra of an `R`-module `M`. Co-authored by @AntoineChambert-Loir --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 281/0 | Mathlib.lean,Mathlib/RingTheory/DividedPowerAlgebra/Init.lean | 2 | 1 | ['github-actions'] | mattrobball | 2 days ago | 5 days ago | 5 days |
| 35958 | bryangingechen | ci: add conditionals on lean-pr-testing steps | These steps only need to run from mathlib4-nightly-testing and when the branch names fit the *-pr-testing pattern. There's no need to mint a token for other runs. Less importantly, this is also breaking CI on dependabot PRs cf. https://github.com/leanprover-community/mathlib4/pull/35917#issuecomment-3980111057 --- [](https://gitpod.io/from-referrer/) | CI | 2/2 | .github/workflows/build_template.yml | 1 | 1 | ['github-actions'] | nobody | 1 day ago | 1 day ago | 1 day |
| 15355 | adomani | feat: MiM PR report | --- [](https://gitpod.io/from-referrer/) | WIP merge-conflict | 193/0 | .github/workflows/monthly_pr_report.yaml,scripts/README.md,scripts/find_labels.sh | 3 | 18 | ['YaelDillies', 'adomani', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] | nobody | 1 day ago | unknown | unknown |
| 22464 | adomani | feat(CI): declarations diff in Lean | Rewrites the `declaration_diff` script in Lean. You can see the effect of the new script in the testing branch #22497. The new CI step runs in approximately 5mins, but is separate from the `build` step. --- [](https://gitpod.io/from-referrer/) | awaiting-author CI merge-conflict | 151/0 | .github/workflows/PR_summary_lean.yml,scripts/README.md,scripts/declarations_diff.lean,scripts/declarations_diff_lean_shell_glue.sh | 4 | 8 | ['bryangingechen', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown |
| 35791 | kim-em | chore: make mk_all always use module format | This PR makes `mk_all` always generate `module`/`public import` format for all libraries, not just `Mathlib`. Previously, `Archive.lean`, `Counterexamples.lean`, and `docs.lean` used plain `import` statements while `Mathlib.lean` used `module`/`public import`, which meant `lake exe mk_all` would always rewrite these three files and produce spurious diffs during development. The `--module` flag is removed since module format is now the only behavior. 🤖 Prepared with Claude Code | 124/122 | Archive.lean,Counterexamples.lean,docs.lean,scripts/mk_all.lean | 4 | 3 | ['chenson2018', 'github-actions', 'mathlib-merge-conflicts'] | nobody | 1 day ago | unknown | unknown | |
| 36048 | kim-em | feat(Tactic/DefEqAbuse): disambiguate identical-sides isDefEq failures | This PR adds automatic disambiguation for `#defeq_abuse` failures where both sides render identically at default pp settings (e.g. `⊤ =?= ⊤` or `Quiver C =?= Quiver C`). These arise from instance diamonds where the difference is only in hidden instance arguments or universe levels. When detected, the `MessageData` is re-rendered with escalated pp options (`pp.universes`, then `pp.explicit`) to reveal the hidden difference. For example, `⊤ =?= ⊤` becomes `@Top.top T inst₁ =?= @Top.top T inst₂`. 🤖 Prepared with Claude Code | t-meta | 106/2 | Mathlib/Tactic/DefEqAbuse.lean,MathlibTest/DefEqAbuse.lean | 2 | 1 | ['github-actions'] | nobody | 18 hours ago | unknown | unknown |
| 24383 | YaelDillies | feat: distributive Haar characters of `ℝ` and `ℂ` | Compute `distribHaarChar` in the case of the actions of `ℝˣ` on `ℝ` and of `ℂˣ` on `ℂ`. The file I'm moving was added two days ago and is not yet used in FLT. From FLT --- [](https://gitpod.io/from-referrer/) | WIP awaiting-CI t-measure-probability file-removed FLT | 211/80 | Mathlib.lean,Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean,Mathlib/Algebra/Group/Action/BigOperators.lean,Mathlib/MeasureTheory/Measure/Haar/DistribChar/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/DistribChar/Complex.lean,Mathlib/MeasureTheory/Measure/Haar/DistribChar/Real.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean | 8 | 26 | ['YaelDillies', 'github-actions', 'kbuzzard', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'sgouezel'] | nobody | 14 hours ago | unknown | unknown |
| 24373 | YaelDillies | refactor: golf `modularCharacter` | ... using the lessons learned from `distribHaarChar`. Unfortunately, the two setups can't quite be unified because we are lacking an additive version of `MulDistribMulAction`. --- [](https://gitpod.io/from-referrer/) | awaiting-CI t-measure-probability | 77/45 | Mathlib/MeasureTheory/Group/MeasurableEquiv.lean,Mathlib/MeasureTheory/Group/Measure.lean,Mathlib/MeasureTheory/Group/ModularCharacter.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/Unique.lean | 5 | 5 | ['github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] | nobody | 13 hours ago | unknown | unknown |
| 25273 | YaelDillies | refactor: make `MonoidAlgebra` into a one-field structure | --- - [x] depends on: #26732 - [x] depends on: #28407 - [x] depends on: #28460 - [x] depends on: #28511 - [x] depends on: #29207 - [x] depends on: #30877 - [x] depends on: #31143 - [x] depends on: #31144 - [x] depends on: #32253 - [x] depends on: #32254 - [x] depends on: #32398 - [x] depends on: #32501 - [x] depends on: #32508 - [x] depends on: #32562 - [x] depends on: #32588 - [x] depends on: #32591 - [x] depends on: #32592 - [x] depends on: #32604 - [x] depends on: #32965 - [x] depends on: #33093 - [x] depends on: #33094 - [x] depends on: #33099 - [x] depends on: #33137 - [x] depends on: #33139 - [x] depends on: #33141 - [x] depends on: #33452 - [x] depends on: #33453 - [x] depends on: #33482 - [x] depends on: #33492 [](https://gitpod.io/from-referrer/) | WIP t-algebra large-import | 1467/1389 | Mathlib/Algebra/FreeAlgebra/Cardinality.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Cardinal.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/MonoidAlgebra/Division.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/Algebra/MonoidAlgebra/Ideal.lean,Mathlib/Algebra/MonoidAlgebra/Lift.lean,Mathlib/Algebra/MonoidAlgebra/MapDomain.lean,Mathlib/Algebra/MonoidAlgebra/Module.lean,Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean,Mathlib/Algebra/MonoidAlgebra/Opposite.lean,Mathlib/Algebra/MonoidAlgebra/Support.lean,Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/MvPolynomial/Cardinal.lean,Mathlib/Algebra/MvPolynomial/CommRing.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/MvPolynomial/Derivation.lean,Mathlib/Algebra/MvPolynomial/Division.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/MvPolynomial/Rename.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Basis.lean,Mathlib/Algebra/Polynomial/Cardinal.lean,Mathlib/Algebra/Polynomial/Coeff.lean,Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Eval/Coeff.lean,Mathlib/Algebra/Polynomial/Homogenize.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Polynomial/OfFn.lean,Mathlib/Algebra/Polynomial/Reverse.lean,Mathlib/Algebra/Polynomial/UnitTrinomial.lean,Mathlib/Algebra/Ring/Subring/IntPolynomial.lean,Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean,Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean,Mathlib/LinearAlgebra/FreeAlgebra.lean,Mathlib/RepresentationTheory/Basic.lean,Mathlib/RepresentationTheory/Rep.lean,Mathlib/RingTheory/Coalgebra/MonoidAlgebra.lean,Mathlib/RingTheory/Extension/Generators.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Finsupp.lean,Mathlib/RingTheory/HopfAlgebra/MonoidAlgebra.lean,Mathlib/RingTheory/MvPolynomial/Basic.lean,Mathlib/RingTheory/MvPolynomial/EulerIdentity.lean,Mathlib/RingTheory/MvPolynomial/FreeCommRing.lean,Mathlib/RingTheory/MvPolynomial/Homogeneous.lean,Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/Polynomial/Opposites.lean,Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean | 58 | 86 | ['JovanGerb', 'YaelDillies', 'alreadydone', 'eric-wieser', 'fpvandoorn', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 13 hours ago | unknown | unknown |
| 36072 | erdOne | feat(AlgebraicGeometry): essential smallness of affine schemes locally of finite type over a base | Co-authored-by: Joël Riou --- [](https://gitpod.io/from-referrer/) | 151/2 | Mathlib.lean,Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean,Mathlib/Algebra/Category/Ring/Small.lean,Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean | 6 | 1 | ['github-actions'] | nobody | 11 hours ago | unknown | unknown | |
| 35532 | mariainesdff | feat(Ringtheory/DedekindDomain): add RingEquiv lemmas | Co-authored by: @xgenereux. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 57/11 | Mathlib/RingTheory/DedekindDomain/Basic.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Maps.lean | 3 | 4 | ['github-actions', 'mariainesdff', 'robin-carlier', 'tb65536'] | nobody | 11 hours ago | 4 days ago | 8 days |
| 35533 | mariainesdff | feat(RingTheory/DedekindDomain/Ideal/Lemmas): add nontrivial_heightOneSpectrum | Co-authored by: @xgenereux. --- [](https://gitpod.io/from-referrer/) | t-ring-theory | 12/0 | Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean | 1 | 4 | ['erdOne', 'github-actions', 'mariainesdff', 'tb65536'] | nobody | 11 hours ago | 3 days ago | 6 days |
| 32305 | faenuccio | feat: define Sobolev Spaces | Nothing to see yet. --- - [ ] depends on: #32250 - [ ] depends on: #31809 [](https://gitpod.io/from-referrer/) | merge-conflict WIP t-analysis large-import blocked-by-other-PR | 2325/53 | Mathlib.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/Distribution.lean,Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Analysis/Distribution/WeakDeriv.lean,Mathlib/Analysis/FunctionalSpaces/Sobolev/Basic.lean,Mathlib/MeasureTheory/Function/LocallyIntegrable.lean | 7 | 5 | ['ADedecker', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] | nobody | 8 hours ago | unknown | unknown |
| 35518 | kim-em | chore: forbid prime (') in filenames, rename LinearCombination' | This PR renames `Mathlib/Tactic/LinearCombination'.lean` to `LinearCombinationPrime.lean` (and the corresponding test file), and adds a lint check to `modulesOSForbidden` to prevent future files with prime/apostrophe characters in their names. The `'` character in filenames causes shell escaping issues in scripts (any `find ... -name '*.lean'` or similar pattern needs careful quoting to handle these files correctly). 🤖 Prepared with Claude Code | file-removed | 13/8 | Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LinearCombinationPrime.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,MathlibTest/linear_combination_prime.lean | 6 | 6 | ['eric-wieser', 'euprunin', 'github-actions', 'kim-em'] | MichaelStollBayreuth | 5 hours ago | 10 days ago | 10 days |
| 36095 | kim-em | chore: remove stray comment about backward.isDefEq.respectTransparency | This PR removes a stray comment in `lakefile.lean` that referred to the `backward.isDefEq.respectTransparency` option. The option itself was already removed, but the comment was left behind. See https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/backward.2EisDefEq.2ErespectTransparency/near/576953838 🤖 Prepared with Claude Code | 0/3 | lakefile.lean | 1 | 4 | ['Parcly-Taxel', 'github-actions', 'kim-em'] | nobody | 4 hours ago | unknown | unknown | |
| 35950 | kim-em | feat(Tactic): add inferInstanceAs% to fix type leakage | This PR adds `inferInstanceAs%`, a drop-in replacement for `inferInstanceAs` that prevents "type leakage" in synthesized instances. When `inferInstanceAs (SomeClass A)` is used to define `SomeClass B` (where `B` is a non-reducible alias for `A`), the synthesized instance may contain lambda binder domains (and other sub-expressions) referring to `A` or deeper unfoldings instead of `B`. This is invisible at `default` transparency but causes `isDefEq` failures at `reducibleAndInstances` transparency — which is the level used by `grind`'s `checkInst`. `inferInstanceAs%` fixes this by recursively normalizing the constructor tree: it WHNFs to expose the constructor, patches carrier type parameters via `isDefEq` matching against the unfolding chain, recursively processes instance-implicit fields, and replaces lambda binder domains in function fields. As a demonstration, this fixes the `grind` failure in `FiniteResidueField` that was worked around with `#adaptation_note` and a manual proof on `nightly-testing`. 🤖 Prepared with Claude Code | 428/12 | Mathlib.lean,Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Tactic.lean,Mathlib/Tactic/InferInstanceAsPercent.lean,MathlibTest/InferInstanceAsPercent.lean | 5 | 29 | ['JovanGerb', 'astrainfinita', 'github-actions', 'kim-em'] | nobody | 4 hours ago | 4 hours ago | 19 hours |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 35700 | inaciovasquez2020 | MeasureTheory: introduce supportDrift for probability measures | Minimal mathlib-facing definition of with lemma. Clean-clone reproducibility verified. | t-measure-probability new-contributor | 119/0 | Mathlib/MeasureTheory/SupportDrift.lean,Mathlib/Physics/OperatorAnchor/CoerciveGap.lean,Mathlib/Physics/OperatorAnchor/SpectralGap.lean | 3 | 2 | ['github-actions'] | nobody | 2 days ago | unknown | unknown |
| 35576 | Tehlikeli107 | ⚡ [performance] Pre-compile regexes in lake-build-wrapper.py | - Pre-compile `file_info_re` and `progress_re` in `BuildOutputProcessor.__init__` to avoid repeated compilation overhead. - Replace `re.sub(r'\.', '/', target)` with `target.replace('.', '/')` for better performance when converting module names to file paths. These changes result in a measured ~40% performance improvement in the core processing logic of the wrapper script. --- [](https://gitpod.io/from-referrer/) | file-removed awaiting-author CI new-contributor merge-conflict | 8/707 | scripts/bench/README.md,scripts/bench/build/README.md,scripts/bench/build/fake-root/bin/lean,scripts/bench/build/fake-root/bin/lean.py,scripts/bench/build/lakeprof_report_template.html,scripts/bench/build/lakeprof_report_upload.py,scripts/bench/build/run,scripts/bench/combine.py,scripts/bench/lint/README.md,scripts/bench/lint/run,scripts/bench/measure.py,scripts/bench/open-mathlib/README.md,scripts/bench/open-mathlib/run,scripts/bench/repeatedly.py,scripts/bench/run,scripts/bench/size/README.md,scripts/bench/size/run,scripts/bench/size/run.py,scripts/lake-build-wrapper.py | 19 | 7 | ['bryangingechen', 'felixpernegger', 'github-actions', 'grunweg', 'mathlib-merge-conflicts'] | nobody | 20 hours ago | 11 days ago | 2 hours |
| 36084 | emo916math | Eliminated a hypothesis on IsTheta.rpow | A strengthened version of `IsTheta.rpow`: if $f$ and $g$ are eventually nonnegative functions with $f = \Theta(g)$ and $r \in \mathbb{R}$, then $f^r = \Theta(g^r)$. The previous version had a hypothesis that $r \geq 0$. The present version proves by splitting into two cases; in the case $r < 0$, the lower and upper bounds must be used in reverse order. Since `IsTheta.rpow` is not used elsewhere in Mathlib, this should be an easy one to merge. (Claude AI was used to help in the golfing.) --- [](https://gitpod.io/from-referrer/) | t-analysis new-contributor | 10/3 | Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean | 1 | 2 | ['github-actions'] | nobody | 4 hours ago | 3 hours ago | 3 hours |
| Number | Author | Title | Description | Labels | +/- | Modified files (first 100) | 📝 | 💬 | All users who commented or reviewed | Assignee(s) | Updated | Last status change | total time in review |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 34773 | semaraugusto | feat(InformationTheory): add Shannon entropy for probability mass functions | Add Shannon entropy for probability mass functions This PR defines the Shannon entropy of a probability mass function as an ℝ-valued infinite sum using `Real.negMulLog`, and proves basic properties and standard computations. Main results include: * entropy is nonnegative; * entropy vanishes iff the PMF is deterministic (`PMF.pure`); * entropy is strictly positive for non-pure PMFs; * entropy of a Bernoulli PMF coincides with `Real.binEntropy`; * entropy of uniform distributions is `log` of the cardinality, both for `PMF.uniformOfFintype` and `PMF.uniformOfFinset`. Several small helper lemmas isolate technical arguments about supports, coercions from `ℝ≥0∞`, and bounds on infinite sums, in order to keep the main proofs readable. See the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/generic.20shannon.20entropy.20formalization.20mathlib4/with/570643335). --- I used ChatGPT for some proof structuring and refactoring suggestions, but all proofs were manually checked and adapted. I verified the arguments and adjusted naming and structure to follow mathlib conventions. The proof of shannonEntropy_eq_log_card_sub_toReal_klDiv_uniformOfFintype and some of its helper lemmas were initially generated using Codex. I manually reviewed the generated proof, checked each step, and refactored the code and naming to follow mathlib conventions. [](https://gitpod.io/from-referrer/) | new-contributor awaiting-author | 417/0 | Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean,Mathlib/InformationTheory/Entropy.lean | 3 | 13 | ['adomasbaliuka', 'dupuisf', 'github-actions', 'mathlib-merge-conflicts', 'mattrobball', 'semaraugusto', 'wwylele'] | dupuisf and sgouezel | 3 days ago | 19 days ago | 9 days |
| 35991 | xroblot | feat(RamificationInertia): various results about decomposition field and inertia field | --- - [ ] depends on: #35808 - [ ] depends on: #35493 [](https://gitpod.io/from-referrer/) | large-import blocked-by-other-PR | 746/36 | Mathlib.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/FieldTheory/IntermediateField/Algebraic.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean,Mathlib/RingTheory/Localization/AtPrime/Extension.lean | 14 | 2 | ['github-actions', 'mathlib-dependent-issues'] | nobody | 1 day ago | unknown | unknown |
| 35976 | Phelixh | feat: add add Liu's uncertainty theory foundations (core/distribution/process modules) | --- [](https://gitpod.io/from-referrer/) | new-contributor | 2320/0 | Mathlib/Uncertainty/base.lean,Mathlib/Uncertainty/base_core.lean,Mathlib/Uncertainty/base_distribution.lean,Mathlib/Uncertainty/base_process.lean,Mathlib/Uncertainty/uncertainty.lean | 5 | 22 | ['Phelixh', 'copilot-pull-request-reviewer', 'github-actions'] | nobody | 20 hours ago | unknown | unknown |
| 36013 | pfaffelh | feat(Topology/Compactness/CompactSystem): introduce compact Systems | A compact system is a set systems with the property that, whenever a countable intersections of sets in the set system is empty, there is a finite subset of sets with empty intersection. These are needed e.g. in measure theory if one wants to show sigma-additivity of a set function on a ring. Main result: The set of sets which are either compact and closed, or univ, is a compact system. Co-authored-by: Rémy Degenne [remydegenne@gmail.com](mailto:remydegenne@gmail.com) --- Continues work from #25899 [](https://gitpod.io/from-referrer/) | 238/0 | Mathlib.lean,Mathlib/Data/Set/Dissipate.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/Topology/Compactness/CompactSystem.lean | 4 | 1 | ['github-actions'] | nobody | 19 hours ago | 20 hours ago | 9 hours | |
| 36067 | smmercuri | feat(NumberTheory/NumberField/FinitePlaces): `Module.Finite (v.adicCompletion K) (w.adicCompletion L)` | Let `v : HeightOneSpectrum (𝓞 K)` and `w : HeightOneSpectrum (𝓞 L)` be such that we have `Algebra (v.adicCompletion K) (w.adicCompletion L)`. If this algebra gives continuous scalar multiplication and we have `IsScalarTower K (v.adicCompletion K) (w.adicCompletion L)`, then `w.adicCompletion L` is finite-dimensional over `v.adicCompletion K`. --- [](https://gitpod.io/from-referrer/) | 35/0 | Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean | 2 | 1 | ['github-actions'] | nobody | 13 hours ago | unknown | unknown | |
| 36072 | erdOne | feat(AlgebraicGeometry): essential smallness of affine schemes locally of finite type over a base | Co-authored-by: Joël Riou --- [](https://gitpod.io/from-referrer/) | 151/2 | Mathlib.lean,Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean,Mathlib/Algebra/Category/Ring/Small.lean,Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean | 6 | 1 | ['github-actions'] | nobody | 11 hours ago | unknown | unknown | |
| 36031 | sgouezel | feat: linter to make sure defs are `implicit_reducible` if they output classes | --- [](https://gitpod.io/from-referrer/) | 1086/81 | Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Algebra/BrauerGroup/Defs.lean,Mathlib/Algebra/Category/FGModuleCat/Colimits.lean,Mathlib/Algebra/Category/FGModuleCat/Limits.lean,Mathlib/Algebra/Category/Grp/Abelian.lean,Mathlib/Algebra/Category/ModuleCat/Abelian.lean,Mathlib/Algebra/Category/ModuleCat/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean,Mathlib/Algebra/CharP/Invertible.lean,Mathlib/Algebra/CharP/MixedCharZero.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/Field/IsField.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Homology/ComplexShapeSigns.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/Classical.lean,Mathlib/Algebra/Lie/Extension.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Module.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean,Mathlib/Algebra/Star/RingQuot.lean,Mathlib/AlgebraicGeometry/Cover/Directed.lean,Mathlib/AlgebraicTopology/ModelCategory/Basic.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Group/AddTorsor.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/CategoryTheory/Abelian/Basic.lean,Mathlib/CategoryTheory/Abelian/NonPreadditive.lean,Mathlib/CategoryTheory/Abelian/Transfer.lean,Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean,Mathlib/CategoryTheory/CatCommSq.lean,Mathlib/CategoryTheory/Center/Linear.lean,Mathlib/CategoryTheory/ConcreteCategory/Forget.lean,Mathlib/CategoryTheory/Enriched/Basic.lean,Mathlib/CategoryTheory/Enriched/FunctorCategory.lean,Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean,Mathlib/CategoryTheory/EpiMono.lean,Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean,Mathlib/CategoryTheory/Functor/Functorial.lean,Mathlib/CategoryTheory/Groupoid.lean,Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean,Mathlib/CategoryTheory/Limits/Creates.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/FullSubcategory.lean,Mathlib/CategoryTheory/Limits/MorphismProperty.lean,Mathlib/CategoryTheory/Limits/Preorder.lean,Mathlib/CategoryTheory/Limits/Preserves/Creates/Finite.lean,Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean,Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean,Mathlib/CategoryTheory/Localization/Bifunctor.lean,Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean,Mathlib/CategoryTheory/Localization/HasLocalization.lean,Mathlib/CategoryTheory/Localization/Linear.lean,Mathlib/CategoryTheory/Localization/LocallySmall.lean,Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean,Mathlib/CategoryTheory/Localization/Predicate.lean,Mathlib/CategoryTheory/Localization/Triangulated.lean,Mathlib/CategoryTheory/Localization/Trifunctor.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean,Mathlib/CategoryTheory/Monad/Comonadicity.lean,Mathlib/CategoryTheory/Monad/Limits.lean,Mathlib/CategoryTheory/Monad/Monadicity.lean,Mathlib/CategoryTheory/Monoidal/Action/End.lean,Mathlib/CategoryTheory/Monoidal/Action/Opposites.lean,Mathlib/CategoryTheory/Monoidal/Bimod.lean,Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/Braided/Multifunctor.lean,Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Complete.lean,Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean,Mathlib/CategoryTheory/Monoidal/Closed/Types.lean,Mathlib/CategoryTheory/Monoidal/Closed/Zero.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Mod_.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Multifunctor.lean,Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean,Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean,Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean,Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean | 300 | 1 | ['github-actions'] | nobody | 8 hours ago | unknown | unknown | |
| 36089 | pfaffelh | feat(Topology/Compactness/CompactSystem): set system of finite unions of sets in a compact system is again a compact system | feat (Topology/Compactness/CompactSystem): The set system of finite unions of sets in a compact system is a compact system A compact system is a set system with the following property: If all finite intersections of a sequence in the set system is non-empty, the countable intersection is not empty. Starting with a compact system, consider the finite unions of sets in the copact system. Such sets again form a compact system (`IsCompactSystem.union.isCompactSystem`). This was previously #25900. - depends on: #36013 --- [](https://gitpod.io/from-referrer/) | 533/0 | Mathlib.lean,Mathlib/Data/Set/Dissipate.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/Topology/Compactness/CompactSystem.lean | 4 | 1 | ['github-actions'] | nobody | 7 hours ago | unknown | unknown | |
| 36083 | gasparattila | feat: decomposition of `ContinuousAffineMap` as an `Equiv` | This PR defines an equivalence `(V →ᴬ[R] Q) ≃ Q × (V →L[R] W)`, plus `LinearEquiv` and `AffineEquiv` variants. To match the names of the new equivalences, `ContinuousAffineMap.toConstProdLinearMap` is also renamed. --- [](https://gitpod.io/from-referrer/) | 154/13 | Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean,Mathlib/Topology/Algebra/ContinuousAffineMap.lean | 2 | 1 | ['github-actions'] | nobody | 6 hours ago | 5 hours ago | 5 hours | |
| 35950 | kim-em | feat(Tactic): add inferInstanceAs% to fix type leakage | This PR adds `inferInstanceAs%`, a drop-in replacement for `inferInstanceAs` that prevents "type leakage" in synthesized instances. When `inferInstanceAs (SomeClass A)` is used to define `SomeClass B` (where `B` is a non-reducible alias for `A`), the synthesized instance may contain lambda binder domains (and other sub-expressions) referring to `A` or deeper unfoldings instead of `B`. This is invisible at `default` transparency but causes `isDefEq` failures at `reducibleAndInstances` transparency — which is the level used by `grind`'s `checkInst`. `inferInstanceAs%` fixes this by recursively normalizing the constructor tree: it WHNFs to expose the constructor, patches carrier type parameters via `isDefEq` matching against the unfolding chain, recursively processes instance-implicit fields, and replaces lambda binder domains in function fields. As a demonstration, this fixes the `grind` failure in `FiniteResidueField` that was worked around with `#adaptation_note` and a manual proof on `nightly-testing`. 🤖 Prepared with Claude Code | 428/12 | Mathlib.lean,Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Tactic.lean,Mathlib/Tactic/InferInstanceAsPercent.lean,MathlibTest/InferInstanceAsPercent.lean | 5 | 29 | ['JovanGerb', 'astrainfinita', 'github-actions', 'kim-em'] | nobody | 4 hours ago | 4 hours ago | 19 hours |