The mathlib review queue

Welcome to the mathlib review page. Everybody's help with reviewing is appreciated. Reviewing contributions is important, and everybody is welcome to review pull requests! If you're not sure how, the pull request review guide is there to help you.
This page is the main reviewer-facing queue: if a PR is ready for review, it belongs here. The triage page contains additional triage-oriented views, but it is not the primary review queue.
This page contains tables of

This dashboard was last updated on: March 30, 2026 at 23:39 UTC

Review queue

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
33864 Timeroot
author:Timeroot
feat(Computability/Primrec): Proving several Nat arithmetic functions are primrec Prove that gcd, lcm, coprimality, divisiblity, primality, factorial, descending factorial, powers, and various logarithms are all primitive recursive. Co-authored-by: Aristotle Harmonic <[aristotle-harmonic@harmonic.fun](mailto:aristotle-harmonic@harmonic.fun)> large-import t-computability 195/4 Mathlib.lean,Mathlib/Computability/Primrec.lean,Mathlib/Computability/Primrec/List.lean,Mathlib/Computability/Primrec/Nat.lean,Mathlib/Data/Nat/Log.lean 5 6 ['eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] JovanGerb
assignee:JovanGerb
21-28068
21 days ago
21-27831
21 days ago
46-57075
46 days
36220 harahu
author:harahu
doc(misc): update two theorem names - https://www.wikidata.org/wiki/Q1543149 carries the name "Sokhotski–Plemelj theorem" - While https://www.wikidata.org/wiki/Q2226807 does carry the name "Vantieghems theorem", I assume the s is assumed to be possessive, since the mathematician credited with the result is called Emmanuel Vantieghem. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) IMO 2/2 docs/1000.yaml 1 7 ['dwrensha', 'github-actions', 'harahu'] dwrensha
assignee:dwrensha
21-19956
21 days ago
25-10971
25 days ago
25-10737
25 days
25983 Multramate
author:Multramate
feat(AlgebraicGeometry/EllipticCurve/Scheme): define the affine scheme associated to an elliptic curve This contribution was created as part of the AIM workshop "Formalizing Algebraic Geometry" in June 2024. Co-authored-by: Michael Stoll [Michael.Stoll@uni-bayreuth.de](mailto:Michael.Stoll@uni-bayreuth.de) Co-authored-by: Junyan Xu [junyanxu.math@gmail.com](mailto:junyanxu.math@gmail.com) t-algebraic-geometry 165/13 Mathlib.lean,Mathlib/Algebra/Category/CommAlgCat/Basic.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Scheme.lean,Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/GroupTheory/GroupExtension/Basic.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean 15 4 ['MichaelStollBayreuth', 'Multramate', 'github-actions'] alexjbest
assignee:alexjbest
20-81602
20 days ago
24-32264
24 days ago
24-34294
24 days
35533 mariainesdff
author:mariainesdff
feat(RingTheory/DedekindDomain/Ideal/Lemmas): add nontrivial_heightOneSpectrum Co-authored by: @xgenereux. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 12/0 Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean 1 4 ['erdOne', 'github-actions', 'mariainesdff', 'tb65536'] mattrobball
assignee:mattrobball
20-81598
20 days ago
26-52784
26 days ago
32-79695
32 days
31135 kckennylau
author:kckennylau
feat(RingTheory): is localization iff is localization on saturation In this PR we show that `A` is a localization of `R` on the submonoid `S` iff it is so on the saturation of `S`. Crucially, the saturation of `S` is precisely the elements that become a unit in `A`. --- - [x] depends on: #31132 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 53/0 Mathlib.lean,Mathlib/RingTheory/Localization/Saturation.lean 2 11 ['alreadydone', 'chrisflav', 'github-actions', 'kckennylau', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] mattrobball
assignee:mattrobball
19-81595
19 days ago
25-28138
25 days ago
25-29790
25 days
34031 lua-vr
author:lua-vr
feat(Dynamics/BirkhoffSum): add the maximal ergodic theorem --- This file exports three constants: ```lean public def birkhoffAverageSupSet (f : α → α) (g : α → ℝ) (a : ℝ) : Set α := {x | ∃ n : ℕ, a < birkhoffAverage ℝ f g n x} public theorem meas_birkhoffAverageSupSet_smul_const_le_integral (a : ℝ) (ha : 0 < a) : μ.real (birkhoffAverageSupSet f g a) • a ≤ ∫ x in birkhoffAverageSupSet f g a, g x ∂μ public theorem meas_birkhoffAverageSupSet_smul_const_le_norm (a : ℝ) (ha : 0 < a) : μ.real (birkhoffAverageSupSet f (fun x ↦ ‖g x‖) a) • a ≤ ∫ x, ‖g x‖ ∂μ ``` In my interpretation, the other constants are auxiliary, so I did not make them public. If it's of independent interest, `birkhoffMax` could be exported or moved to a dedicated file, but I'm not sure of that at the moment. - [x] depends on: #34030 - [x] depends on: #34029 - [x] depends on: #34025 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-dynamics 291/0 Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Maximal.lean 2 4 ['github-actions', 'lua-vr', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] urkud
assignee:urkud
19-81593
19 days ago
25-36736
25 days ago
25-36872
25 days
35812 khwilson
author:khwilson
feat(MeasureTheory/Group/GeometryOfNumbers): successive minima and existence of a directional basis Define the successive minima of a discrete subgroup of a real vector space with respect to a convex set. These invariants show up throughout the geometry of numbers and are the focus of Minkowski's Second Theorem (whose statement is left here with a `proof_wanted`). Note: The key lemma is that the "gauge set" of the convex set is closed. I took the approach of showing that it is sequentially closed. There's an alternative approach via showing it's the union of a finite number of closed sets. I personally thought this approach was more intuitive, but the union approach may result in a slightly shorter proof. Co-authored-by: Yaël Dillies --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 392/33 Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Convex/Body.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean 6 3 ['github-actions', 'joneugster'] urkud
assignee:urkud
19-81589
19 days ago
31-70538
31 days ago
31-73270
31 days
36155 grunweg
author:grunweg
feat: custom elaborators for TangentSpace and tangentMap(Within) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 58/28 Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/Topology/FiberBundle/Constructions.lean 7 2 ['github-actions', 'mathlib-merge-conflicts'] sgouezel
assignee:sgouezel
19-81584
19 days ago
23-39190
23 days ago
24-48718
24 days
36328 Multramate
author:Multramate
feat(AlgebraicGeometry/EllipticCurve): improve API for maps and base changes Dot notation for concrete Weierstrass curves (`Affine`/`Jacobian`/`Projective`) does not quite work on `W : WeierstrassCurve F` even though they're all abbreviations of `WeierstrassCurve`, which is annoying for functions that return `WeierstrassCurve`s (currently just `map`, `baseChange`, and `variableChange`). For instance, for an `A : Affine F`, the expression `A.baseChange K` is a `WeierstrassCurve K` rather than an `Affine K`, so `(A.baseChange K).polynomial` will not work since `polynomial` is a function of `Affine K` rather than `WeierstrassCurve K`; instead we have to do `(A.baseChange K).toAffine.polynomial`, which is wordy. This PR introduces abbreviations `Affine/Jacobian/Projective.map/baseChange` to get around this, and introduces scoped notations `W/K`, where the slashes are given by `\textf`. The notation `W⟮K⟯` for `(W.baseChange K)Point` seems to be useless so far and can now be replaced by `(W/K).Point`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 284/288 Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean,Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean 13 1 ['github-actions'] alexjbest
assignee:alexjbest
19-81575
19 days ago
23-7668
23 days ago
23-8066
23 days
35535 mariainesdff
author:mariainesdff
feat(RingTheory/ClassGroup): prove mulEquiv We prove that isomorphic rings have isomorphic class groups. Co-authored by: @xgenereux. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 233/9 Mathlib/Algebra/Ring/CompTypeclasses.lean,Mathlib/RingTheory/ClassGroup.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean,Mathlib/RingTheory/LocalProperties/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean 6 29 ['erdOne', 'eric-wieser', 'github-actions', 'mariainesdff', 'mathlib-merge-conflicts', 'tb65536'] mattrobball
assignee:mattrobball
16-81586
16 days ago
24-30926
24 days ago
31-75187
31 days
36329 rwst
author:rwst
feat(PowerSeries): add barebones Log.lean --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 67/0 Mathlib.lean,Mathlib/RingTheory/PowerSeries/Log.lean 2 1 ['github-actions'] mariainesdff
assignee:mariainesdff
16-81575
16 days ago
23-17586
23 days ago
23-17352
23 days
36374 EtienneC30
author:EtienneC30
refactor: define the Poisson measure via a sum of Dirac masses Change the definition of `poissonMeasure r` to be `Measure.sum (fun n ↦ ENNReal.ofReal (exp (-r) * r ^ n / (n)!) • (.dirac n))` instead of using `PMF`. This allows to directly use API for measures instead of having to develop an API for `PMF`, which anyway is defined as a sum of Dirac masses. Also add some results about integrals against the poissonMeasure. --- - [x] depends on: #36355 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability large-import 105/30 Mathlib/MeasureTheory/Measure/Dirac.lean,Mathlib/Probability/Distributions/Poisson/Basic.lean,Mathlib/Probability/Distributions/Poisson/PoissonLimitThm.lean 3 11 ['DavidLedvinka', 'EtienneC30', 'b-mehta', 'github-actions', 'mathlib-dependent-issues'] kex-y
assignee:kex-y
16-81573
16 days ago
21-19791
21 days ago
21-33590
21 days
34728 j-loreaux
author:j-loreaux
feat: continuous linear equivalence between continuous `ℝ`- and `𝕜`-linear functionals (in either the strong or weak-⋆ topologies) This realizes the map `StrongDual.extendRCLikeₗ`, after pre- and post-composing so that it is an equivalence between the weak duals, as a *continuous* linear equivalence. In addition, when the space is a topological vector space, we realize `StrongDual.extendRCLikeₗ` as a *continuous* linear equivalence between the strong duals. --- - [x] depends on: #34543 The placement in `Analysis/Normed/Module/WeakDual` seems suboptimal because this has nothing to do with the norm. This is because `WeakDual.toStrongDual` is already in this file, which should probably be moved to `Topology/Algebra/Module/WeakDual`. However, even if that moves, the declarations added in this PR cannot easily go with it because they involve `RCLike`. Potentially, they could move to `Analysis/RCLike/Extend` if that file gained the `Topology/Algebra/Module/WeakDual` import. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 87/2 Mathlib/Analysis/Normed/Module/RCLike/Extend.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean 2 8 ['ADedecker', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] urkud
assignee:urkud
15-81410
15 days ago
21-18963
21 days ago
21-21145
21 days
35285 SnirBroshi
author:SnirBroshi
feat(Algebra/LinearRecurrence): define a standard basis for the solution space of a linear recurrence Also `mkSol` is injective. --- The hard work was already done by the existing equivalence `toInit`; this defines the basis that the equivalence provides and uses it to simplify a couple of proofs. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
24/12 Mathlib/Algebra/LinearRecurrence.lean 1 1 ['github-actions'] kim-em
assignee:kim-em
15-81407
15 days ago
44-69934
44 days ago
44-69700
44 days
36399 chrisflav
author:chrisflav
feat(RingTheory/Flat): finite flat algebra is trivial if rank is equal to `1` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 177/3 Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/Associator.lean,Mathlib/RingTheory/Flat/Rank.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean,Mathlib/RingTheory/TensorProduct/Maps.lean 6 1 ['github-actions'] alreadydone
assignee:alreadydone
15-81396
15 days ago
21-28382
21 days ago
21-28148
21 days
36442 SnirBroshi
author:SnirBroshi
feat(Data/Sym/Sym2/Card): cardinality theorems about `Sym2 α` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 95/0 Mathlib.lean,Mathlib/Data/Sym/Sym2/Card.lean 2 1 ['github-actions'] joneugster
assignee:joneugster
15-81393
15 days ago
20-30802
20 days ago
20-30568
20 days
36584 vihdzp
author:vihdzp
feat: lemmas on ordinal `Nat.cast` Downstreamed from the CGT repo. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 30/11 Mathlib/SetTheory/Cardinal/Ordinal.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean 3 5 ['SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] b-mehta
assignee:b-mehta
15-4851
15 days ago
15-4914
15 days ago
17-57802
17 days
36443 Fieldnote-Echo
author:Fieldnote-Echo
feat(Combinatorics/SimpleGraph): add SimpleGraph.ball (open metric ball) Add `SimpleGraph.ball`, the open ball in the graph extended metric. ## Design decisions - **Open ball** (strict `<`, not `≤`): `ball c ⊤` coincides with the connected component of `c`, whereas a closed ball would give `closedBall c ⊤ = univ`. - **Named `SimpleGraph.ball`** (not `eball`): since `dist`-valued balls are less natural for disconnected graphs, the `e` prefix is unnecessary. - **Graph-specific** (not via `PseudoEMetricSpace`): avoids importing `ℝ`. AI assistance: Claude (Opus 4.6) helped draft and iterate on the implementation. I reviewed the code line by line and vouch for the final contents. Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor LLM-generated 59/3 Mathlib/Combinatorics/SimpleGraph/Metric.lean 1 36 ['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk', 'vlad902'] nobody
14-30698
14 days ago
20-29210
20 days ago
20-28976
20 days
35826 quangvdao
author:quangvdao
feat(Probability/ProbabilityMassFunction): total variation distance and MetricSpace instance Define total variation distance on probability mass functions, provide a `MetricSpace` instance, and prove the data processing inequality. The extended TV distance `PMF.etvDist` is defined in `ℝ≥0∞` as `(1/2) ∑ x, absDiff (p x) (q x)`, using a new symmetric absolute difference `ENNReal.absDiff`. The real-valued `PMF.tvDist` is its `toReal`. New definitions: - `ENNReal.absDiff`: symmetric absolute difference `(a - b) + (b - a)` - `PMF.etvDist`: extended total variation distance - `PMF.tvDist`: real-valued total variation distance - `PMF.instMetricSpace`: `MetricSpace` instance on `PMF α` Main results: - `ENNReal.absDiff_triangle`: triangle inequality for `absDiff` - `ENNReal.absDiff_tsum_le`: subadditivity over infinite sums - `PMF.etvDist_le_one`: TV distance is at most 1 - `PMF.etvDist_map_le`: data processing inequality (deterministic maps) - `PMF.etvDist_bind_right_le`: data processing inequality (Markov kernels) - `PMF.etvDist_option_punit`: closed form for binary distributions Supersedes #33680 with a complete, sorry-free implementation. See Zulip discussion: This PR was authored with the support of Claude (Cursor IDE). --- This PR provides a complete formalization of total variation distance for PMFs, including: 1. **`ENNReal.absDiff`** (`Mathlib/Data/ENNReal/AbsDiff.lean`): A symmetric absolute difference for `ℝ≥0∞` with triangle inequality, connection to real absolute value, and algebraic properties. The tsum-related lemmas (`absDiff_tsum_le`, `tsum_fiber`) are placed in the TV distance file to avoid pulling topology imports into `Data.ENNReal`. 2. **`PMF.etvDist` / `PMF.tvDist`** (`Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean`): Total variation distance with a `MetricSpace` instance, data processing inequality for both deterministic maps and Markov kernels, and a closed form for binary distributions. Compared to #33680, this PR: - Has no `sorry`s - Defines the distance in `ℝ≥0∞` first (following Mathlib convention for `edist`/`dist`) - Includes the data processing inequality - Has full documentation and passes all Mathlib linters Made with [Cursor](https://cursor.com) t-measure-probability LLM-generated 459/0 Mathlib.lean,Mathlib/Data/ENNReal/AbsDiff.lean,Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean 3 6 ['BoltonBailey', 'EtienneC30', 'github-actions', 'joneugster', 'quangvdao'] RemyDegenne
assignee:RemyDegenne
14-30472
14 days ago
24-8396
24 days ago
24-8943
24 days
36314 JovanGerb
author:JovanGerb
feat(gcongr): support `rintro` patterns This PR adds support for `rintro` patterns in the `with` clause of `gcongr`. This makes it consistent with `congr!`. I've only found one case in mathlib where this could actually be used to shorten a proof. I split the gcongr `elab` into a separate `syntax` and `elab_rules`, which makes it easier to deal with the syntax. I noticed that the implementation of `congr!` was unnecessarily converting back and forth between `rintroPat` and `rcasesPat`, so I changed it to simply only use `rintroPat`, and then did the same in `gcongr`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 41/28 Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Tactic/CongrExclamation.lean,Mathlib/Tactic/Convert.lean,Mathlib/Tactic/Core.lean,Mathlib/Tactic/GCongr/Core.lean 5 2 ['dupuisf', 'github-actions'] dwrensha
assignee:dwrensha
13-81548
13 days ago
23-44595
23 days ago
23-44489
23 days
35415 joneugster
author:joneugster
feat(Cache): enable partial cache in downstream projects Migrated to fork from: #21238. Add features to `cache` and cleanup code: * enable partial cache retrieval in downstream projects: `lake exe cache get MyProject.Basic` downloads only the relevant cache to build `MyProject/Basic.lean` --- ### Notes: - replaces: #21195 - should address: #8767 - should address: #20568 ### Completed: - [x] depends on: #21632 - [x] ~~depends on: #21663~~ - [x] depends on: #21666 - [x] depends on: #21701 - [x] depends on: #21703 - [x] depends on: #21704 - [x] depends on: #21705 - [x] depends on: #21707 - [x] depends on: #21711 - [x] depends on: #21750 - [x] depends on: #21815 - [x] depends on: #21816 - [x] depends on: #21817 - [x] depends on: #21818 - [x] depends on: #21822 - [x] depends on: #21830 - [x] depends on: #21848 - [x] depends on: #21834 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
13-54408
13 days ago
31-32333
31 days ago
33-70594
33 days
34854 GrigorenkoPV
author:GrigorenkoPV
chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` --- Split off from #34853 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 227/194 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
assignee:thorimur
13-28267
13 days ago
13-28293
13 days ago
33-17958
33 days
36606 harahu
author:harahu
chore(AlgebraicGeometry): fix markdown list indentation We replace lazy continuation lines in lists with either: - indented lines, to signify that the line is indeed a continuation line; or - a newline, where the continuation line(s) were in fact intended to be disconnected from the list. We do this because lazy continuation is a markdown footgun that one does well to avoid. We also standardize indentation such that continuation lines now line up with the first line of the item they're continuing. This seems to be the solution enforced by markdown formatters, e.g. `mdformat`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 19/17 Mathlib/AlgebraicGeometry/Gluing.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/Flat.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/Properties.lean 5 3 ['chrisflav', 'github-actions', 'harahu'] alexjbest
assignee:alexjbest
13-20614
13 days ago
13-20614
13 days ago
17-16917
17 days
35593 chrisflav
author:chrisflav
feat(RingTheory/Extension): naive cotangent complex commutes with flat base change From Pi1. --- - [x] depends on: #35544 - [x] depends on: #35557 - [x] depends on: #35594 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 210/11 Mathlib/RingTheory/Extension/Basic.lean,Mathlib/RingTheory/Extension/Cotangent/BaseChange.lean,Mathlib/RingTheory/Extension/Generators.lean,Mathlib/RingTheory/Ideal/Cotangent.lean 4 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] mariainesdff
assignee:mariainesdff
12-81568
12 days ago
13-10968
13 days ago
13-13061
13 days
36545 yuanyi-350
author:yuanyi-350
feat(ProbabilityTheory): Add Kolmogorov's inequality ref: https://en.wikipedia.org/wiki/Kolmogorov%27s_inequality --- - [x] depends on: #36542 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability large-import 147/0 Mathlib.lean,Mathlib/Probability/CondVar.lean,Mathlib/Probability/Martingale/Kolmogorov.lean,Mathlib/Probability/Martingale/OptionalStopping.lean 4 3 ['CoolRmal', 'github-actions', 'mathlib-dependent-issues'] RemyDegenne
assignee:RemyDegenne
12-81558
12 days ago
17-46530
17 days ago
17-48085
17 days
36786 SproutSeeds
author:SproutSeeds
feat(DoubleCounting): parity of odd-degree vertices in bipartite incidence Adds `odd_card_filter_odd_bipartiteAbove_iff_odd_card_filter_odd_bipartiteBelow` to `Mathlib.Combinatorics.Enumerative.DoubleCounting`. This is the small parity-helper first step for #25231. Validation: - `lake build Mathlib.Combinatorics.Enumerative.DoubleCounting` Supersedes closed #36077 after replaying the helper cleanly on current `master`. AI usage: used Codex for branch recovery, replay onto current `master`, and draft wording; final code choices and verification by me. new-contributor t-combinatorics large-import 17/0 Mathlib/Combinatorics/Enumerative/DoubleCounting.lean 1 2 ['github-actions'] nobody
12-76057
12 days ago
12-76140
12 days ago
12-75906
12 days
36806 grunweg
author:grunweg
fix(Tactic/Continuity): mark Continuous.comp' as unsafe This issue was pre-existing: `Continuous.comp'` was never full safe, as a constant function could be written as the composition of any function and a constant function (and then applying the lemma could lead to something unprovable). The change in #31607 triggered such a case: make is an unsafe rule with very high probability instead. This change broke three proofs: one was easy to switch to fun_prop; the others seemed to depend on this being a safe rule. I have added a workaround for now. There was another test failure, exposing a pre-existing internal bug in aesop. With smaller imports, continuity succeeds [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/aesop.20error.20during.20proof.20reconstruction.2C.20goal.20not.20normalised/with/580202602), so I have accepted this result as fine. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 54/2 Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Condensed/TopCatAdjunction.lean,Mathlib/Topology/Continuous.lean,MathlibTest/Continuity.lean 5 1 ['github-actions'] nobody
12-32925
12 days ago
12-32926
12 days ago
12-32700
12 days
33944 artie2000
author:artie2000
feat(Algebra/Ring): formally real rings * Define formally real rings * Prove basic inductive facts about them Co-authored-by: Violeta Hernández Palacios --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
155/0 Mathlib.lean,Mathlib/Algebra/Ring/IsFormallyReal.lean 2 31 ['artie2000', 'github-actions', 'mariainesdff', 'vihdzp'] mariainesdff
assignee:mariainesdff
12-25895
12 days ago
12-26267
12 days ago
49-71577
49 days
28685 mitchell-horner
author:mitchell-horner
feat(Combinatorics/SimpleGraph): prove the minimal-degree version of the Erdős-Stone theorem Proves the minimal degree-version of the Erdős-Stone theorem: If `G` has a minimal degree of at least `(1 - 1 / r + o(1)) * card V`, then `G` contains a copy of a `completeEquipartiteGraph` in `r + 1` parts each of size `t`. The double-counting construction from the proof is available in `namespace ErdosStone`. --- - [x] depends on: #25843 - [x] depends on: #27597 - [x] depends on: #27599 - [x] depends on: #28443 - [x] depends on: #28445 - [x] depends on: #28446 - [x] depends on: #28447 This is the first of several pull requests towards the full Erdős-Stone(-Simonovits) theorem, hence the name of the file. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] YaelDillies
assignee:YaelDillies
11-81576
11 days ago
28-61069
28 days ago
28-60881
28 days
35295 Rida-Hamadani
author:Rida-Hamadani
feat(SimpleGraph): `dropLast` of a cycle is a path --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 14/0 Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean 2 7 ['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vlad902'] YaelDillies
assignee:YaelDillies
11-81573
11 days ago
12-74711
12 days ago
32-55607
32 days
35963 Parcly-Taxel
author:Parcly-Taxel
refactor: review Kleene algebra axioms Derive ```lean one_add_mul_kstar (a : α) : 1 + a * a∗ = a∗ one_add_kstar_mul (a : α) : 1 + a∗ * a = a∗ ``` which is Proposition 2 in Kozen's 1994 paper. We also remove the `bot` and `bot_le` fields in `IdemSemiring`, since the remaining axioms already show `0 ≤ a` for all `a`. t-algebra
label:t-algebra$
82/81 Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean 3 13 ['Parcly-Taxel', 'dagurtomas', 'github-actions', 'plp127', 'vihdzp'] mattrobball
assignee:mattrobball
11-81568
11 days ago
17-65953
17 days ago
28-3191
28 days
36832 KryptosAI
author:KryptosAI
chore(Data/Finset/Card): rename `pred_card_le_card_erase` to `sub_one_card_le_card_erase` ## Summary The name `pred_card_le_card_erase` suggests `Nat.pred` but the statement uses `- 1` (i.e., `Nat.sub 1`). Rename to `sub_one_card_le_card_erase` to match the actual statement. A deprecated alias is added for backwards compatibility. ### Files changed - `Mathlib/Data/Finset/Card.lean` — definition renamed + deprecated alias - `Mathlib/Data/Finset/Powerset.lean` — reference updated - `Mathlib/Combinatorics/Additive/SubsetSum.lean` — reference updated - `Mathlib/Algebra/Polynomial/EraseLead.lean` — reference updated Addresses the `Finset.pred_card_le_card_erase` item in #21584. ## AI disclosure I used Claude Code to explore the codebase (finding all references to rename) and to draft the PR description. I reviewed and understand all changes — these are straightforward renames with a deprecated alias. new-contributor 7/4 Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Powerset.lean 4 2 ['github-actions'] nobody
11-73864
11 days ago
12-36
11 days ago
12-2700
12 days
36705 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Walks/Operations): permutations of support and cleaning up append/concat --- The cleaning-up follows the feedback from https://github.com/leanprover-community/mathlib4/pull/35630#issuecomment-4035207900 and https://github.com/leanprover-community/mathlib4/pull/35631#discussion_r2936736735 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 38/21 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean 7 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
11-59819
11 days ago
11-59850
11 days ago
14-76185
14 days
36472 EtienneC30
author:EtienneC30
feat: finite dimensional distribution of Brownian motion Define `gaussianProjectiveFamily : (I : Finset ℝ≥0) → Measure (I → ℝ)`. Each `gaussianProjectiveFamily I` is the centered Gaussian measure over `I → ℝ` with covariance matrix given by `brownianCovMatrix I s t := min s t`. Prove that these measures satisfy `IsProjectiveMeasureFamily`, which means that they can be extended into a measure over `ℝ≥0 → ℝ` thanks to the Kolmogorov's extension theorem (not in Mathlib yet). The obtained measure is a measure over the set of real processes indexed by `ℝ≥0` and is the law of the Brownian motion. --- - [x] depends on: #36143 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) brownian t-measure-probability 226/1 Mathlib.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/Probability/BrownianMotion/GaussianProjectiveFamily.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/Probability/Moments/Basic.lean 5 2 ['github-actions', 'mathlib-dependent-issues'] kex-y
assignee:kex-y
11-57805
11 days ago
14-45988
14 days ago
14-45755
14 days
36802 YaelDillies
author:YaelDillies
feat(Combinatorics/SimpleGraph): hamiltonians graphs don't contain bridges Replace the longer proof which further assumed that the vertex set has at least three elements. --- - [x] depends on: #36800 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics large-import 88/79 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Decomp.lean 5 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
11-47015
11 days ago
11-47037
11 days ago
12-21590
12 days
36814 YaelDillies
author:YaelDillies
refactor(Combinatorics/SimpleGraph): no proof obligation in `rotate` If the walk doesn't go through the new vertex, return `nil` instead. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 51/37 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean 7 5 ['SnirBroshi', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] nobody
11-46722
11 days ago
11-46751
11 days ago
12-14234
12 days
36736 loefflerd
author:loefflerd
feat(NumberTheory/Modular): strengthen 2nd Fundamental-Domain Lemma Strengthen the results on the fundamental domain for the modular group, by proving that the interior of the fundamental domain is disjoint from any translate of the fundamental domain. Proof closely follows Serre _A Course in Arithmetic_ (although Serre also proves that S, T generate the modular group at the same time, which we do not do, since this is proved by a different method in `FixedDetMatrices`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 385/56 Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,Mathlib/NumberTheory/Modular.lean,docs/references.bib 5 14 ['CBirkbeck', 'github-actions', 'loefflerd', 'tb65536'] tb65536
assignee:tb65536
11-30488
11 days ago
14-11937
14 days ago
14-29453
14 days
36856 harahu
author:harahu
doc(Geometry): tidy bibliography entry Use canonical author names and rename the bib key to match the corrected ASCII transcription of Domínguez. Sources: https://fama.iff.csic.es/personas/margalef/margalef.html ; https://produccioncientifica.ucm.es/investigadores/166066/tesis Normalize the title and move the translation information into a note phrased as 'Translated from the Spanish original'. Sources: https://books.google.com/books/about/Differential_Topology.html?id=gexAr04vRT4C ; https://books.google.com/books/about/Topolog%C3%ADa_diferencial.html?id=0PRMy3ffm4QC Use the conventional publisher form 'North-Holland Publishing Co., Amsterdam' instead of the imported catalog-style field. Sources: https://search.worldcat.org/title/Differential-topology/oclc/25713102 ; https://www.ams.org/tran/2010-362-08/S0002-9947-10-05073-7/ Prepared with assistance from Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry LLM-generated 8/7 Mathlib/Geometry/Manifold/Immersion.lean,docs/references.bib 2 4 ['github-actions', 'grunweg', 'harahu'] PatrickMassot
assignee:PatrickMassot
10-81563
10 days ago
11-11144
11 days ago
11-22131
11 days
36833 harahu
author:harahu
doc: demote repeated H1 headers Having more than one H1 header per file confuses search engines and thus makes documentation more difficult to find. Hence, we make sure that lean files only have a single H1 header in them. In the case of `Mathlib/Tactic/Common.lean`, we achieve this by adding a new module header. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 12/10 Archive/Imo/Imo2002Q3.lean,Archive/Imo/Imo2010Q5.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/RingTheory/LocalProperties/Injective.lean,Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean,Mathlib/RingTheory/QuasiFinite/Weakly.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/Linter/EmptyLine.lean 9 2 ['github-actions', 'harahu', 'vihdzp'] nobody
10-52743
10 days ago
12-6840
12 days ago
12-7010
12 days
36886 Deep0Thinking
author:Deep0Thinking
feat(Combinatorics/Enumerative/Bonferroni): add Bonferroni inequalities This PR adds Bonferroni inequalities. Main theorems: - `Finset.indicator_biUnion_le_bonferroniIndicator_of_odd` - `Finset.bonferroniIndicator_le_indicator_biUnion_of_even` - `Finset.card_biUnion_le_bonferroniCard_of_odd` - `Finset.bonferroniCard_le_card_biUnion_of_even` Co-authored-by: Claude (Opus 4.6) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 334/4 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Bonferroni.lean,Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean 3 2 ['github-actions'] nobody
10-30593
10 days ago
10-30680
10 days ago
10-31275
10 days
34227 stepan2698-cpu
author:stepan2698-cpu
feat: If sum of densities is at least one, the sumset covers the naturals Proves an outstanding TODO item from Mathlib.Combinatorics.Schnirelmann : shows that if the sum of two densities is at least one, the sumset covers the positive naturals. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 51/1 Mathlib/Combinatorics/Schnirelmann.lean 1 3 ['github-actions', 'grunweg', 'kbuzzard'] b-mehta
assignee:b-mehta
10-27757
10 days ago
68-1455
68 days ago
68-15324
68 days
36210 vbeffara
author:vbeffara
feat(Combinatorics/SimpleGraph): definitions of graph contraction and graph minor A contraction is the image of a graph through a surjective function with connected fibers, and a minor is a contraction of a subgraph. This PR shows that being a contraction is transitive, but does not show the same for minors because the proof is more involved, it will be in a subsequent PR. The definitions are in `Prop` and do not contain data, but I'm not sure if that was the right choice. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 151/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Contraction.lean,Mathlib/Combinatorics/SimpleGraph/Minor.lean 3 7 ['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vbeffara'] YaelDillies
assignee:YaelDillies
10-26793
10 days ago
11-34720
11 days ago
24-61076
24 days
35622 SnirBroshi
author:SnirBroshi
feat(Logic/Function/Basic): `onFun` and `swap` preserve relation properties --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 141/19 Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Function/Defs.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/WellFounded.lean,Mathlib/Order/WithBot.lean 8 7 ['SnirBroshi', 'github-actions', 'leanprover-radar', 'vihdzp'] awainverse
assignee:awainverse
9-81601
9 days ago
24-72018
24 days ago
36-55635
36 days
36334 Multramate
author:Multramate
feat(AlgebraicGeometry/EllipticCurve): add notation and pretty printer for points Co-authored-by: Kenny Lau --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry t-meta 41/0 Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean 3 11 ['CBirkbeck', 'Multramate', 'erdOne', 'github-actions', 'riccardobrasca'] kim-em
assignee:kim-em
9-81596
9 days ago
23-11746
23 days ago
23-11512
23 days
36677 AlexeyMilovanov
author:AlexeyMilovanov
feat(Computability.Partrec): add computability of Nat.find This PR bridges `Partrec.rfind` with total unbounded search (`Nat.find`). It adds: * `Computable.find`: Proves that `x ↦ Nat.find (h_ex x)` is computable for a computable decidable predicate `P`. * `Computable.rightInverse_of_surjective`: Proves that the right inverse of a computable surjective function is computable. t-computability new-contributor 31/0 Mathlib/Computability/Partrec.lean 1 5 ['AlexeyMilovanov', 'github-actions', 'vlad902'] Komyyy
assignee:Komyyy
9-81590
9 days ago
15-43365
15 days ago
15-43131
15 days
36815 EtienneC30
author:EtienneC30
feat: a measurable space structure on the type of continuous maps Endow the type `C(X, Y)` of continuous maps from `X` to `Y` with the Borel sigma-algebra coming from the compact-open topology and show that, under some assumptions on `X` and `Y`, this is equal to the restriction of the product sigma-algebra over `X → Y`. Provide a measurable equivalence between `{f : X → Y // Continuous f}` and `C(X, Y)`. Co-authored-by: @RemyDegenne --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology brownian t-measure-probability 254/0 Mathlib.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousMap.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Basic.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Separation/Regular.lean 6 7 ['ADedecker', 'EtienneC30', 'github-actions'] urkud
assignee:urkud
9-81584
9 days ago
10-55231
10 days ago
11-26294
11 days
36839 wwylele
author:wwylele
feat(Analysis/Normed): linear independence of PiLp.single This is just transferring the corresponding lemma from `Pi.single`, so one doesn't need to unfold `PiLp.single` to apply them. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 31/0 Mathlib/Analysis/Normed/Lp/PiLp.lean 1 4 ['github-actions', 'themathqueen', 'wwylele'] sgouezel
assignee:sgouezel
9-81584
9 days ago
11-80465
11 days ago
11-80231
11 days
36060 edegeltje
author:edegeltje
chore(CategoryTheory/Classifier): namespace Classifier, rename HasClassifier, move file The declaration `CategoryTheory.Classifier` (and various lemmas about it) is/are moved to the `Subobject` namespace. The declaration `CategoryTheory.HasClassifier` is renamed `CategoryTheory.HasSubobjectClassifier`. The file `CategoryTheory/Topos/Classifier.lean` is moved to `CategoryTheory/Subobject/Classifier/Defs.lean`. Moves: - Classifier.SubobjectRepresentableBy.* -> SubobjectRepresentableBy.* - Classifier.* -> Subobject.Classifier.* - HasClassifier.* -> HasSubobjectClassifier.* [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Subobject.20Classifier.20organizing/with/576778481) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-category-theory 196/46 Mathlib.lean,Mathlib/CategoryTheory/Subobject/Classifier/Defs.lean,Mathlib/CategoryTheory/Topos/Sheaf.lean 3 5 ['dagurtomas', 'edegeltje', 'github-actions', 'mathlib-merge-conflicts'] joelriou
assignee:joelriou
9-39390
9 days ago
9-39459
9 days ago
26-24929
26 days
34797 vlad902
author:vlad902
feat(SimpleGraph): `cycleGraph.cycle` is a cycle (A follow-up PR will show that `cycleGraph.cycle` is also hamiltonian.) --- - [x] depends on: #35360 - [x] depends on: #34766 - [x] depends on: #34796 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 32/1 Mathlib/Combinatorics/SimpleGraph/Circulant.lean 1 7 ['Ruben-VandeVelde', 'github-actions', 'mathlib-dependent-issues', 'vlad902'] nobody
9-24644
9 days ago
11-21047
11 days ago
12-49732
12 days
31560 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Topology/Sion): the minimax theorem of von Neumann - Sion Prove `Sion.exists_isSaddlePointOn` : Let X and Y be convex subsets of topological vector spaces E and F, X being moreover compact, and let f : X × Y → ℝ be a function such that - for all x, f(x, ⬝) is upper semicontinuous and quasiconcave - for all y, f(⬝, y) is lower semicontinuous and quasiconvex Then inf_x sup_y f(x,y) = sup_y inf_x f(x,y). The classical case of the theorem assumes that f is continuous, f(x, ⬝) is concave, f(⬝, y) is convex. As a particular case, one get the von Neumann theorem where f is bilinear and E, F are finite dimensional. We follow the proof of Komiya (1988). ## Remark on implementation * The essential part of the proof holds for a function `f : X → Y → β`, where `β` is a complete dense linear order. * We have written part of it for just a dense linear order, * On the other hand, if the theorem holds for such `β`, it must hold for any linear order, for the reason that any linear order embeds into a complete dense linear order. However, this result does not seem to be known to Mathlib. * When `β` is `ℝ`, one can use `Real.toEReal` and one gets a proof for `ℝ`. ## TODO Give particular important cases (eg, bilinear maps in finite dimension). Co-authored with @ADedecker --- - [x] depends on: #31548 - [x] depends on: #31547 - [x] depends on: #31558 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 756/0 Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Topology/NhdsWithin.lean,Mathlib/Topology/Semicontinuity/Basic.lean,Mathlib/Topology/Sion.lean,docs/references.bib 6 21 ['AntoineChambert-Loir', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'thorimur'] dwrensha, j-loreaux, kmill
assignee:kmill assignee:dwrensha assignee:j-loreaux
9-21297
9 days ago
11-45947
11 days ago
105-3424
105 days
36421 ROTARTSI82
author:ROTARTSI82
feat(RingTheory/IsAdjoinRoot): add mkOfAdjoinEqTop' Alternative hypothesis to existing theorem: prove the result from a `Module.Free `hypothesis instead of `IsIntegrallyClosed`. If `α` generates `S` as an algebra, then `S` is given by adjoining a root of `minpoly R α`. --- Hello, we are the Algebraic Geometry group from the UW Math AI lab, and this is our first PR! This definition of `mkOfAdjoinEqTop'` generalizes the existing `mkOfAdjoinEqTop` and shows the result from `Module.Free` instead of `IsIntegrallyClosed`. It is used in future results that we would like to upstream at https://github.com/uw-math-ai/monogenic-extensions, which is a project to formalize lemmas 3.1 and 3.2 from https://arxiv.org/abs/2503.07846. Co-authored-by: George Peykanu Co-authored-by: Bryan Boehnke Co-authored-by: Bianca Viray <67076332+b-viray@users.noreply.github.com> --> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor large-import t-ring-theory 47/0 Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/RingTheory/IsAdjoinRoot.lean 2 4 ['ROTARTSI82', 'b-viray', 'github-actions'] dupuisf
assignee:dupuisf
9-18325
9 days ago
20-82898
20 days ago
20-82664
20 days
34742 Brian-Nugent
author:Brian-Nugent
feat(SheafCohomology): add API for Sheaf Cohomology Defines the long exact sequence on cohomology associated to a short exact sequence of sheaves `H.longSequence`. Also defines `H.equiv₀`, the additive equivalence between `H F 0` and `((sheafSections J AddCommGrpCat).obj (op T)).obj F` when the category has a terminal object `T`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor large-import t-category-theory 87/3 Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean 3 33 ['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-merge-conflicts'] adamtopaz
assignee:adamtopaz
9-18147
9 days ago
9-18147
9 days ago
47-65368
47 days
34805 DavidLedvinka
author:DavidLedvinka
feat(Tactic): generalize ofScientific NormNum extension to `DivisionSemiring` Co-authored-by: @hrmacbeth t-meta 68/20 Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/OfScientific.lean,MathlibTest/norm_num.lean 3 26 ['DavidLedvinka', 'JovanGerb', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'thorimur'] JovanGerb
assignee:JovanGerb
9-12140
9 days ago
9-12141
9 days ago
29-53319
29 days
34315 LessnessRandomness
author:LessnessRandomness
feat(Combinatorics/SimpleGraph/Bipartite): Prove upper bound of edge set cardinality of bipartite graph Two ways to express upper bound of the edge set of bipartite graph: 1) If the cardinalities of both parts/sets, that make bipartite graph, are known, then the upper bound is equal to product of the cardinalities of both parts; 2) Four times of the cardinality of the edge set is less or equal to squared cardinality of vertex set. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 54/0 Mathlib/Combinatorics/SimpleGraph/Bipartite.lean 1 56 ['LessnessRandomness', 'SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts', 'vlad902'] awainverse
assignee:awainverse
9-11177
9 days ago
9-11247
9 days ago
61-2963
61 days
35879 Jun2M
author: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) --- - [x] depends on: #26770 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 208/0 Mathlib.lean,Mathlib/Combinatorics/Graph/Delete.lean 2 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
9-3398
9 days ago
9-3967
9 days ago
9-9918
9 days
35413 joneugster
author:joneugster
fix(Util/CountHeartbeats): move elaboration in #count_heartbeats inside a namespace This PR continues the work from #21182. Original PR: https://github.com/leanprover-community/mathlib4/pull/21182 t-meta 73/6 Mathlib/Util/CountHeartbeats.lean,MathlibTest/CountHeartbeats.lean 2 3 ['github-actions', 'joneugster', 'mathlib-bors'] alexjbest and dwrensha
assignee:dwrensha assignee:alexjbest
8-81592
8 days ago
42-24827
42 days ago
42-24593
42 days
33714 idontgetoutmuch
author:idontgetoutmuch
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II Supersedes https://github.com/leanprover-community/mathlib4/pull/33519 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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, ocfnash, sgouezel
assignee:ocfnash assignee:grunweg assignee:sgouezel
8-81581
8 days ago
29-27655
29 days ago
43-57596
43 days
35653 pepamontero
author:pepamontero
feat: add ChartedSpace structure on orbit space feat: add ChartedSpace structure on orbit space Add topological preliminaries for properly discontinuous group actions, and use them to equip the orbit space `orbitRel.Quotient G M` with a `ChartedSpace` structure. In particular: - Show that the quotient map `Quotient.mk _ : M → orbitRel.Quotient G M` is a covering map and hence a local homeomorphism. - Construct chosen local inverses of the quotient map and establish properties over them. - Define a `ChartedSpace` instance on the quotient by composing these local inverses with charts of M. This started as an ItaLean2025 project; here is the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Quotient.20Manifolds/with/575121158) dedicated to it. --- new-contributor t-differential-geometry 186/0 Mathlib.lean,Mathlib/Geometry/Manifold/Instances/OrbitSpace.lean,Mathlib/Topology/Algebra/OrbitSpace.lean 3 2 ['github-actions'] PatrickMassot, ocfnash, sgouezel
assignee:ocfnash assignee:sgouezel assignee:PatrickMassot
8-81580
8 days ago
36-14223
36 days ago
36-14664
36 days
35414 joneugster
author:joneugster
feat(Cache): Allow arguments of the form `Mathlib.Data.+` which correspond to a folder but not a file This PR continues the work from #21838. Original PR: https://github.com/leanprover-community/mathlib4/pull/21838 CI t-meta 74/31 Cache/IO.lean,Cache/Main.lean 2 2 ['github-actions', 'joneugster'] nobody
8-81578
8 days ago
42-24755
42 days ago
42-24521
42 days
36682 harahu
author:harahu
chore(Data): avoid lazy continuation in md lists We replace lazy continuation lines in lists with either: - indented lines, to signify that the line is indeed a continuation line; or - a newline, where the continuation line(s) were in fact intended to be disconnected from the list. We do this because lazy continuation is a markdown footgun that one does well to avoid. We also standardize indentation such that continuation lines now line up with the first line of the item they're continuing. This seems to be the solution enforced by markdown formatters, e.g. `mdformat`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 24/14 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 11 1 ['github-actions'] joneugster
assignee:joneugster
8-81573
8 days ago
15-32634
15 days ago
15-32400
15 days
36783 wwylele
author:wwylele
feat(RingTheory/Localization): R ⧸ pⁿ ≃+* Rₚ ⧸ (maximalIdeal Rₚ)ⁿ This extends the existing `def equivQuotMaximalIdeal : R ⧸ p ≃+* Rₚ ⧸ maximalIdeal Rₚ` to powers of maximal ideals. --- Disclosure of AI usage: I chat with AI for a sketch of the proof. The code is entirely written by me. I didn't state the simp lemma for the symm direction because I am not sure how to state it. Following the analog of equivQuotMaximalIdeal_symm_apply_mk, this should be ``` theorem equivQuotMaximalIdealPow_symm_apply_mk (x : R) (s : p.primeCompl) : (equivQuotMaximalIdealPow p Rₚ n).symm (Ideal.Quotient.mk _ (IsLocalization.mk' Rₚ x s)) = (Ideal.Quotient.mk (p ^ n) x) * (Ideal.Quotient.mk (p ^ n) s)⁻¹ := by ``` But `(Ideal.Quotient.mk (p ^ n) s)⁻¹` is taking inverse in a non-field ring. Here the inverse always exists because s is not in p. What is the mathlib way to say this? [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 53/0 Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean 3 1 ['github-actions'] chrisflav
assignee:chrisflav
8-81570
8 days ago
12-81535
12 days ago
12-81301
12 days
36910 Brian-Nugent
author:Brian-Nugent
feat(CategoryTheory): 4 and 5 lemmas for ComposableArrows 5 Adds versions of the 4 and 5 lemmas for morphisms in `ComposableArrows 5`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory new-contributor 71/2 Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean 1 2 ['github-actions'] adamtopaz
assignee:adamtopaz
8-81565
8 days ago
10-20211
10 days ago
10-19977
10 days
36626 SnirBroshi
author:SnirBroshi
feat(Order/UpperLower/Basic): an injective function constrained by the identity function using a well-order is the identity --- (yes I know `IsLowerSet` is bundled but I need the theorems for unbundled relations 🙈) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 30/0 Mathlib/Order/UpperLower/Basic.lean 1 6 ['SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp'] YaelDillies
assignee:YaelDillies
8-54567
8 days ago
16-81564
16 days ago
16-81330
16 days
36954 FMLJohn
author:FMLJohn
feat(Topology/ClosedBases): `TopologicalSpace.IsClosedBasis` and `TopologicalSpace.IsClosedSubbasis s` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) In this pull request, I have defined closed bases and closed subbases of topologies, and proved some basic properties of them. ## Main definitions * `TopologicalSpace.IsClosedBasis s`: A closed basis of a topological space `α` is a collection of closed sets `s : Set (Set α)` such that every closed subset of `α` can be written as an intersection of elements of `s`. * `TopologicalSpace.IsClosedSubbasis s`: Given a topological space `α`, `s : Set (Set α)` is a closed subbasis if the topology on `α` equals `generateFrom { uᶜ | u ∈ s }`. t-topology 122/0 Mathlib.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/ClosedBases.lean 3 1 ['github-actions'] PatrickMassot
assignee:PatrickMassot
8-17231
8 days ago
9-25290
9 days ago
9-27122
9 days
36462 wwylele
author:wwylele
feat(Geometry/Euclidean): integration formula for μHE A step towards #34826. --- The location of `MeasureTheory.volume_eq_of_finrank_eq_one` feels a bit random. I'd like to put it in some early files, but it uses measure preserving of isometry in Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean, which is why it ended up there [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability t-euclidean-geometry 138/5 Mathlib/Geometry/Euclidean/Volume/Measure.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean,Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean 3 15 ['copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] RemyDegenne
assignee:RemyDegenne
8-14947
8 days ago
20-443
20 days ago
20-209
20 days
36781 hommmmm
author:hommmmm
feat(RingTheory/UniqueFactorizationDomain): UFD iff height one primes are principal We prove that a Noetherian integral domain is a UFD if and only if every prime ideal of height one is principal (`UniqueFactorizationMonoid.iff_height_one_prime_principal`). ## New declarations * `UniqueFactorizationMonoid.exists_height_one_le_of_finite_height`: given a prime of finite height ≥ 1, there exists a height one prime contained in it. * `UniqueFactorizationMonoid.ne_bot_of_height_one`: an ideal of height one is nonzero. * `UniqueFactorizationMonoid.height_ge_one_of_prime_ne_bot`: the height of a nonzero prime ideal in a domain is at least one. * `UniqueFactorizationMonoid.height_one_prime_principal`: in a UFD, every height one prime is principal. * `UniqueFactorizationMonoid.of_height_one_prime_principal`: every height one prime being principal implies UFD (Noetherian case). * `UniqueFactorizationMonoid.iff_height_one_prime_principal`: the full iff statement. ## References See https://stacks.math.columbia.edu/tag/0AFT ## AI Disclosure This code is written without AI, then uses Claude Code with cameronfreer's [Lean4-skills](https://github.com/cameronfreer/lean4-skills) (specifically, the `review`, `refactor`, and `golf` workflow) for style changes, refactoring and golfing. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor large-import 102/1 Mathlib/RingTheory/UniqueFactorizationDomain/Kaplansky.lean 1 8 ['Thmoas-Guan', 'chrisflav', 'github-actions', 'hommmmm', 'tb65536'] mariainesdff
assignee:mariainesdff
8-12960
8 days ago
8-12961
8 days ago
12-48334
12 days
36785 hommmmm
author:hommmmm
feat(RingTheory/Localization): Nagata's criterion for primality in localization away ## Summary - Add `dvd_of_mem_span_singleton_localization`: if `p` is prime and `p ∤ x`, then membership in the span of the image of `x` in `R[1/p]` implies divisibility by `x`. - Add `prime_of_prime_in_localization` (Nagata's criterion): if `p` is prime, `x` is irreducible, and the image of `x` in `R[1/p]` is prime, then `x` is prime. ## References - [Stacks Project, Tag 0AFU](https://stacks.math.columbia.edu/tag/0afu) ## AI Disclosure This code is written without AI, then uses Claude Code with cameronfreer's [Lean4-skills](https://github.com/cameronfreer/lean4-skills) (specifically, the `review`, `refactor`, and `golf` workflow) for style changes, refactoring and golfing. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 72/0 Mathlib.lean,Mathlib/RingTheory/Localization/Away/Prime.lean 2 4 ['chrisflav', 'github-actions', 'hommmmm'] chrisflav
assignee:chrisflav
8-12960
8 days ago
8-12960
8 days ago
12-39347
12 days
33662 Pjotr5
author:Pjotr5
feat(Algebra/Order/BigOperators/Expect): add lemmas and strict variants ### Summary - Combine `le_expect_nonempty_of_subadditive` and `le_expect_of_subadditive` into a single lemma `le_expect_of_subadditive`. The extra assumptions `(hs : s.Nonempty)` and `(h_zero : m 0 = 0)` are unnecessary (since `m 0 = 0` follows from `h_div`). This requires a small downstream update to `Mathlib/Analysis/RCLike/Basic.lean` (`norm_expect_le`). - Add strict-inequality variants: `expect_lt_expect`, `expect_lt`, `lt_expect`. - Add existence lemmas: `exists_le_of_expect_le_expect`, `exists_le_of_le_expect`, `exists_le_of_expect_le`, and `exists_lt_of_expect_lt_expect`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
46/16 Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Analysis/RCLike/Basic.lean 2 6 ['Pjotr5', 'b-mehta', 'github-actions'] b-mehta
assignee:b-mehta
8-10062
8 days ago
8-10235
8 days ago
83-51541
83 days
35655 Rida-Hamadani
author: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. --- - [x] 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 18/0 Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean 1 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
8-10018
8 days ago
8-11617
8 days ago
8-26901
8 days
36657 BryceT233
author:BryceT233
feat(RingTheory): adds two lemmas on `Module.length` This PR adds two lemmas regarding the length of modules: * `Submodule.length_le_restrictScalar` shows that the length of an $R$-submodule is less than or equal to its length as an $A$-submodule under scalar restriction. * `Submodule.length_quotient_lt` shows that for a module of finite length, the length of a quotient module $M \big/ p$ is strictly less than the length of $M$ when the submodule $p$ is non-trivial. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 23/0 Mathlib/RingTheory/Length.lean 1 1 ['github-actions'] chrisflav
assignee:chrisflav
7-83757
7 days ago
15-79622
15 days ago
15-82238
15 days
33143 wwylele
author:wwylele
feat(PowerSeries): pentagonal number theorem The proof is split in two files: `Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean` for the algebraic part, and `Mathlib/RingTheory/PowerSeries/Pentagonal.lean` for the summability part. In the near future, I also plan to prove the real/complex version that branches off from the algebraic part. --- - [ ] depends on: #30436 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
427/1 Mathlib.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml 4 43 ['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib4-dependent-issues-bot', 'tb65536', 'urkud', 'vihdzp', 'wwylele'] eric-wieser
assignee:eric-wieser
7-81542
7 days ago
35-52372
35 days ago
93-52528
93 days
34092 staroperator
author:staroperator
feat(SetTheory/ZFC): properties of `ZFSet.omega` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] b-mehta
assignee:b-mehta
7-81536
7 days ago
60-17103
60 days ago
71-62284
71 days
34093 YellPika
author:YellPika
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas --- - [x] depends on: #33941 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] Komyyy
assignee:Komyyy
7-81535
7 days ago
54-63896
54 days ago
54-66626
54 days
34182 IlPreteRosso
author:IlPreteRosso
feat(Data/Finsupp/Single, Data/Finsupp/Indicator): Add set_indicator_singleton, indicator_singleton; golfed single_eq_set_indicator, single_eq_indicator [Mathlib.Data.Finsupp.Single](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Single.html#Finsupp.single) - Add `set_indicator_singleton`, golfed `single_eq_set_indicator` [Mathlib.Data.Finsupp.Indicator](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Indicator.html#Finsupp.indicator_apply) - Add `indicator_singleton`, golfed `single_eq_indicator` Continues the work from #34095 large-import t-data new-contributor 17/17 Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean 2 29 ['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] TwoFX
assignee:TwoFX
7-81533
7 days ago
68-69884
68 days ago
68-77643
68 days
34756 Hagb
author:Hagb
feat(Algebra/Order/Monoid/Unbundled/WithTop): `AddEquiv` between `WithBot` It is like `Equiv.withBotCongr` but preserving also addition (`AddEquiv`), for a variant of degree of `MvPolynomial` that maps `0` to `⊥` submitted in #34759. --- 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)). [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
39/0 Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean 1 3 ['Hagb', 'github-actions', 'plp127'] eric-wieser
assignee:eric-wieser
7-81528
7 days ago
52-81683
52 days ago
55-33499
55 days
34809 YaelDillies
author:YaelDillies
feat: induced subgraphs of complete multipartite graphs are complete multipartite From ProofBench --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 4/2 Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean 1 1 ['github-actions'] kmill
assignee:kmill
7-81528
7 days ago
55-9811
55 days ago
55-9577
55 days
34820 staroperator
author:staroperator
feat(Order/Ideal): more results on order ideals Some iffs, closure of finite supremum, and that every proper ideal is contained in a maximal ideal. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order large-import 79/5 Mathlib/Order/Ideal.lean 1 5 ['bryangingechen', 'github-actions', 'leanprover-radar', 'staroperator'] Komyyy
assignee:Komyyy
7-81527
7 days ago
47-86156
47 days ago
54-45452
54 days
34851 dennj
author:dennj
feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization: - `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i` - `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x` - `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i` These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). t-data new-contributor 22/0 Mathlib/Data/Matrix/Mul.lean 1 5 ['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] TwoFX
assignee:TwoFX
7-81526
7 days ago
54-10660
54 days ago
54-10426
54 days
34875 banrovegrie
author:banrovegrie
feat(LinearAlgebra/Matrix): add Sherman-Morrison formula Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap. - Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}` - Add `Matrix.inv_sub_vecMulVec`: subtraction variant - Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses ## Test plan - [x] `lake build` passes - [x] Lines within 100 char limit - [x] All declarations have docstrings t-algebra new-contributor
label:t-algebra$
135/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean 2 11 ['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] eric-wieser
assignee:eric-wieser
7-81525
7 days ago
53-29892
53 days ago
53-29658
53 days
34963 Parcly-Taxel
author:Parcly-Taxel
feat(Archive): proof of the Robbins conjecture Cf. [#mathlib4 > Alternative axiomatization of boolean algebras @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Alternative.20axiomatization.20of.20boolean.20algebras/near/558900960) and #31924. t-algebra
label:t-algebra$
610/0 Archive.lean,Archive/Robbins.lean 2 1 ['github-actions'] kim-em
assignee:kim-em
7-81524
7 days ago
50-74150
50 days ago
50-75568
50 days
34994 bwangpj
author:bwangpj
feat: Countable.of_module_finite --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import FLT
label:t-algebra$
7/0 Mathlib/LinearAlgebra/Countable.lean 1 3 ['bwangpj', 'eric-wieser', 'github-actions'] kim-em
assignee:kim-em
7-81523
7 days ago
50-13264
50 days ago
50-13030
50 days
35365 wwylele
author:wwylele
feat(LinearAlgebra/Simplex): closedInterior = interior + face.closedInterior Intermediate lemma towards #34826. This will be used to show the measure on `interior` and `closedInterior` are equal, as the difference is a zero-measure set. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
53/0 Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean 1 4 ['copilot-pull-request-reviewer', 'github-actions'] eric-wieser
assignee:eric-wieser
7-81521
7 days ago
32-31150
32 days ago
43-26061
43 days
35597 BryceT233
author:BryceT233
feat(AdicTopology): add lemmas about adic topology This PR adds APIs to transport topological and uniform properties of adic topologies across ring equivalences, By upgrading an ideal-preserving ring equivalence to a `UniformEquiv`, we provide natural congruence lemmas for adic completeness, precompleteness, and Hausdorffness, which serve as necessary topological preliminaries for the ongoing formalization of the Cohen Structure Theorem. Co-authored-by: @Thmoas-Guan --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] PatrickMassot
assignee:PatrickMassot
7-81519
7 days ago
34-72943
34 days ago
37-60069
37 days
36308 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Subgraph): a couple of `subgraphOfAdj` lemmas --- Also golfed a lemma (it's one line longer but it looks simpler to me). [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 14/5 Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 1 1 ['github-actions'] kmill
assignee:kmill
7-81515
7 days ago
23-60792
23 days ago
23-60558
23 days
36787 hommmmm
author:hommmmm
feat(RingTheory/LocalRing): Krull dimension results for maximal ideal of local ring ## Summary This PR adds two results connecting the Krull dimension of a local ring to its maximal ideal: * `IsLocalRing.ringKrullDim_eq_zero_of_maximalIdeal_eq_bot`: A local ring whose maximal ideal is `⊥` has Krull dimension zero. * `IsLocalRing.exists_mem_maximalIdeal_not_mem_sq`: In a Noetherian local ring of positive Krull dimension, there exists an element in the maximal ideal that is not in its square. The second result follows from Nakayama's lemma: if every element of the maximal ideal `𝔪` were in `𝔪²`, then `𝔪 = 𝔪²`, and Nakayama gives `𝔪 = ⊥`, contradicting positive dimension. ## New file * `Mathlib/RingTheory/LocalRing/MaximalIdeal/KrullDimension.lean` ## Acknowledgements Thanks to Dora Kassabova and Leopold Mayer for edit suggestions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-ring-theory 57/0 Mathlib.lean,Mathlib/RingTheory/LocalRing/MaximalIdeal/KrullDimension.lean 2 10 ['NoahW314', 'github-actions', 'hommmmm', 'tb65536', 'wwylele'] chrisflav
assignee:chrisflav
7-81509
7 days ago
12-12433
12 days ago
12-74374
12 days
36788 hommmmm
author:hommmmm
feat(RingTheory): height of span of a prime element is one ## Summary - Add `Ideal.height_span_singleton_eq_one_of_prime`: in a Noetherian integral domain, the ideal generated by a prime element has height one. ## Notes The new theorem follows directly from `height_le_one_of_isPrincipal_of_mem_minimalPrimes` (upper bound) and the fact that `span {p} ≠ ⊥` for `p` prime (lower bound). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 12/1 Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean 1 2 ['github-actions'] mattrobball
assignee:mattrobball
7-81508
7 days ago
12-73837
12 days ago
12-73603
12 days
36789 hommmmm
author:hommmmm
feat(RingTheory/Ideal/Height): prime ideal determined by height among overideals ## Summary - Add `Ideal.eq_of_le_of_height_eq`: a prime ideal of finite height is equal to any ideal of the same height that contains it. ## Notes This is a direct consequence of `Ideal.height_strict_mono_of_is_prime`: if `I` were strictly contained in `J`, their heights would differ. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 10/0 Mathlib/RingTheory/Ideal/Height.lean 1 7 ['github-actions', 'hommmmm', 'tb65536'] erdOne
assignee:erdOne
7-81508
7 days ago
12-73545
12 days ago
12-73311
12 days
36813 AlexeyMilovanov
author:AlexeyMilovanov
feat(Computability.Encoding): add self-delimiting unary and pair encodings Adds `unaryPrefix` (a self-delimiting $1^n 0$ code) and `prefixPair` to `Mathlib.Computability.Encoding`. **Key changes:** * **`unaryPrefix`**: A prefix-free unary encoding for $\mathbb{N}$, distinct from the existing `unaryEncodeNat`. * **`unaryPrefix_append_inj`**: A basic cancellation lemma that allows unique extraction of a unary prefix from a concatenated list. * **`prefixPair`**: A self-delimiting pairing function for boolean lists, defined as $\text{unaryPrefix } |x| \frown x \frown y$. * **`prefixPair_inj`**: A concise proof of pair injectivity leveraging the new prefix lemmas. t-computability new-contributor 56/1 Mathlib/Computability/Encoding.lean 1 2 ['github-actions'] Komyyy
assignee:Komyyy
7-81507
7 days ago
12-28242
12 days ago
12-28008
12 days
36896 PieterCuijpers
author:PieterCuijpers
feat (Algebra/Order/Quantale): isMulIdempotent, isMulLeftsided, isMulRightsided, isMulTwosided and strict versions * Adding definitions of quantale elements being idempotent, leftsided, rightsided, and twosided, and strict versions I'd value some discussion on whether especially the definition of isMulIdempotent would belong here, since it applies to semigroups in general. I only see definitions of IdempotentOp in the library so far, focussing on operators that are fully idempotent, while in the study of Quantales it seems that subquantales of elements that are idempotent in the original are also interesting. This argues the need for having definitions on separate elements. Also, should we include these definitions in the main Algebra/Order/Quantale.lean file, or start a separate file for them? And I have a few basic theorems I would like to include, but invite suggestions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
105/1 Mathlib/Algebra/Order/Quantale.lean 1 4 ['NoahW314', 'github-actions'] kim-em
assignee:kim-em
7-81506
7 days ago
10-47261
10 days ago
10-47027
10 days
36968 NoahW314
author:NoahW314
feat: add missing IndiscreteTopology instances Add several instances for the IndiscreteTopology. These instances are chosen as they have short proofs and imply many of the more common instances like `NormalSpace` and `LocPathConnectedSpace`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-topology 21/0 Mathlib/Topology/AlexandrovDiscrete.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Irreducible.lean,Mathlib/Topology/Metrizable/Basic.lean 4 2 ['github-actions'] PatrickMassot
assignee:PatrickMassot
7-81502
7 days ago
8-79898
8 days ago
8-79664
8 days
36970 astrainfinita
author:astrainfinita
chore: redefine `Nat.div2` `Nat.bodd` --- This PR continues the work from #13649. Original PR: https://github.com/leanprover-community/mathlib4/pull/13649 t-data 54/72 Mathlib/Computability/Primrec/Basic.lean,Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Logic/Denumerable.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Equiv/Nat.lean 7 2 ['astrainfinita', 'github-actions'] TwoFX
assignee:TwoFX
7-81501
7 days ago
8-70635
8 days ago
8-75790
8 days
33313 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Coloring/Edges): create a basic edge-coloring API --- About the filepath: This creates a `Coloring` folder, but I'm not sure whether the file should be named `Edges` or `Edge` or `EdgeColoring`. 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)` - `[Infinite α] → chromaticIndex ⊤ = ⊤` - [x] depends on: #33292 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 275/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Edges.lean 2 2 ['github-actions', 'mathlib-dependent-issues'] nobody
7-69188
7 days ago
8-31450
8 days ago
8-32217
8 days
37017 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Maps): every homomorphism `f : H →g G` factors through `id : H →g G.comap f` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 19/0 Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean 2 1 ['github-actions'] nobody
7-63635
7 days ago
7-63376
7 days ago
7-63671
7 days
35627 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Finite): min/max degrees of top/bot And a couple of lemmas about `IsRegularOfDegree`, e.g. the empty graph is regular of any degree. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 30/1 Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean 2 15 ['SnirBroshi', 'YaelDillies', 'github-actions', 'vlad902'] kmill
assignee:kmill
7-57345
7 days ago
8-77767
8 days ago
34-25836
34 days
34633 mitchell-horner
author:mitchell-horner
feat(Combinatorics/SimpleGraph): define the Zarankiewicz function Defines the Zarankiewicz function $z(m, n; s, t)$ in terms of bipartite graphs. --- - [x] depends on: #34632 This comes from splitting up #25841 into smaller PRs. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 156/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Zarankiewicz.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean 3 5 ['b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mitchell-horner'] nobody
7-51441
7 days ago
7-51506
7 days ago
7-56853
7 days
35880 astrainfinita
author:astrainfinita
feat(Order/Defs/LinearOrder): `min_ind` It will be used to simplify the proofs of other lemmas in a subsequent PR. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 11/0 Mathlib/Order/Defs/LinearOrder.lean 1 3 ['astrainfinita', 'bryangingechen', 'github-actions'] bryangingechen
assignee:bryangingechen
7-40894
7 days ago
7-40894
7 days ago
30-26024
30 days
37040 artie2000
author:artie2000
chore(Algebra/Order): generalise ordered algebra lemmas * Generalise lemmas from ordered algebras to ordered modules + mixins --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
39/25 Mathlib/Algebra/Order/Algebra.lean,Mathlib/Algebra/Order/Module/Defs.lean 2 1 ['github-actions'] pechersky
assignee:pechersky
7-30245
7 days ago
7-30310
7 days ago
7-32136
7 days
36642 tb65536
author:tb65536
feat(NumberTheory/ArithmeticFunction/LFunction): arithmetic functions from power series This PR constructs arithmetic functions from power series. See #36189 for how this will ultimately be used to construct L-functions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory t-algebra
label:t-algebra$
139/0 Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/NumberTheory/ArithmeticFunction/LFunction.lean,Mathlib/NumberTheory/Divisors.lean 3 8 ['github-actions', 'riccardobrasca', 'tb65536'] riccardobrasca
assignee:riccardobrasca
7-26176
7 days ago
7-26176
7 days ago
16-32997
16 days
37055 euprunin
author:euprunin
chore: golf using `grind` The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `OreLocalization.smul'_char`: unchanged 🎉 * `Equiv.Perm.cycleOf_mem_cycleFactorsFinset_iff`: unchanged 🎉 * `StrictMono.ite'`: unchanged 🎉 * `Mathlib.Meta.NormNum.isInt_ediv`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 4/21 Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Tactic/NormNum/DivMod.lean 4 1 ['github-actions'] nobody
7-16121
7 days ago
7-16191
7 days ago
7-15957
7 days
36709 kim-em
author:kim-em
feat(DefEqAbuse): suggest minimal @[implicit_reducible] workaround This PR extends `#defeq_abuse` to suggest a minimal set of `@[implicit_reducible]` annotations that would make the failing tactic or command succeed with `backward.isDefEq.respectTransparency true`. When `#defeq_abuse` detects a failure, it now runs a greedy minimisation over semireducible definitions reachable from the goal/command, finding a (possibly non-unique) minimal subset that, when temporarily marked `@[implicit_reducible]`, fixes the issue. The result is reported as an `info` message: ``` info: Workaround: the following @[implicit_reducible] annotations (a possibly non-unique minimal set) would paper over this problem, but the real issue is likely a leaky instance somewhere. set_option allowUnsafeReducibility true attribute [implicit_reducible] MyPred ``` This is a workaround, not a fix — the real cause is usually a leaky instance (which `#check_instance` from https://github.com/leanprover-community/mathlib4/pull/36706 can diagnose). But it can be useful for quick debugging. New helpers: `collectCandidates`, `markImplicitReducible`, `withTempImplicitReducible`, `withTempImplicitReducibleCmd`, `suggestAnnotationsTac`, `suggestAnnotationsCmd`, `formatAnnotations`, `logAnnotationSuggestions`. 🤖 Prepared with Claude Code t-meta LLM-generated 163/0 Mathlib/Tactic/DefEqAbuse.lean,MathlibTest/DefEqAbuse.lean 2 3 ['github-actions', 'mathlib-merge-conflicts', 'thorimur'] dwrensha
assignee:dwrensha
7-9492
7 days ago
12-75683
12 days ago
13-78403
13 days
35656 euprunin
author:euprunin
chore(ModelTheory): golf proofs This PR removes unused `have`/`haveI`/`let`/`letI` calls. The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `FirstOrder.Field.realize_genericMonicPolyHasRoot`: unchanged 🎉 * `FirstOrder.Language.exists_cg_is_age_of`: unchanged 🎉 * `FirstOrder.Language.Theory.models_formula_iff_onTheory_models_equivSentence`: unchanged 🎉 * `FirstOrder.Language.Sentence.realize_cardGe`: unchanged 🎉 * `FirstOrder.Language.Ultraproduct.boundedFormula_realize_cast`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 ['artie2000', 'euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] awainverse
assignee:awainverse
7-6607
7 days ago
36-7359
36 days ago
36-7125
36 days
34702 pfaffelh
author:pfaffelh
feat(Data/FinsetPowerset): The set `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k` Show that `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k`. The proof builds on `powersetCard k s` (the subsets of `s : Finset _` with cardinality `k`), and an equivalence to the above set. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] TwoFX
assignee:TwoFX
7-4968
7 days ago
52-85100
52 days ago
56-11892
56 days
36585 vihdzp
author:vihdzp
feat: order type of `Iio o` is `lift o` Downstreamed from the CGT repo. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 19/17 Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Family.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/VonNeumann.lean 5 5 ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] alreadydone
assignee:alreadydone
7-4708
7 days ago
7-4768
7 days ago
16-36640
16 days
34423 euprunin
author:euprunin
chore: golf using `grind` The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `LucasLehmer.norm_num_ext.sModNat_eq_sMod`: 950 ms before, 758 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 1/18 Mathlib/NumberTheory/LucasLehmer.lean 1 14 ['artie2000', 'eric-wieser', 'euprunin', 'github-actions', 'leanprover-radar', 'robin-carlier'] nobody
6-84807
6 days ago
30-49488
30 days ago
63-29550
63 days
36693 euprunin
author:euprunin
chore: golf using `grind` The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Equiv.Perm.ofSubtype_swap_eq`: unchanged 🎉 * `Filter.hasBasis_biInf_of_directed'`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 2/15 Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Order/Filter/Bases/Basic.lean 2 1 ['artie2000', 'github-actions'] nobody
6-84758
6 days ago
15-12473
15 days ago
15-12239
15 days
36686 euprunin
author:euprunin
chore: golf using `grind` The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `List.prod_map_ite`: unchanged 🎉 * `Path.Homotopy.trans_assoc_reparam`: 2938 ms before, 717 ms after 🎉 * `SimplexCategory.δ_comp_δ`: 522 ms before, 316 ms after 🎉 * `Finsupp.ext_iff'`: unchanged 🎉 * `Computation.bind_assoc`: unchanged 🎉 * `Set.piecewise_insert`: unchanged 🎉 * `ZMod.valMinAbs_mem_Ioc`: unchanged 🎉 * `Matrix.det_eq_of_forall_row_eq_smul_add_pred_aux`: 2141 ms before, 2004 ms after 🎉 Profiled using `set_option trace.profiler true in`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 10/51 Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Set/Piecewise.lean,Mathlib/Data/ZMod/ValMinAbs.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean 8 1 ['artie2000', 'github-actions'] nobody
6-84646
6 days ago
15-29397
15 days ago
15-29163
15 days
36740 euprunin
author:euprunin
chore: golf using `grind` The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `AlgebraicGeometry.Scheme.isBasis_affineOpens`: unchanged 🎉 * `SimpleGraph.Walk.takeUntil_eq_take`: 263 ms before, 180 ms after 🎉 * `SimpleGraph.Walk.dropUntil_eq_drop`: 382 ms before, 261 ms after 🎉 * `Int.image_Ico_emod`: unchanged 🎉 * `Equiv.Perm.ofSubtype_swap_eq`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 7/33 Mathlib/AlgebraicGeometry/AffineScheme.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Decomp.lean,Mathlib/Data/Int/Interval.lean,Mathlib/GroupTheory/Perm/Support.lean 4 2 ['artie2000', 'github-actions', 'mathlib-merge-conflicts'] nobody
6-84261
6 days ago
11-31262
11 days ago
13-79897
13 days
36774 euprunin
author:euprunin
chore: replace long terminal `rw […]`:s (≥4 lemmas) with bare `simp`:s The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Finset.lcm_union`: unchanged 🎉 * `Finset.gcd_union`: unchanged 🎉 * `Polynomial.derivative_eval₂_C`: unchanged 🎉 * `Polynomial.expand_pow`: unchanged 🎉 * `Cardinal.mk_real`: unchanged 🎉 * `Real.log_zpow`: unchanged 🎉 * `Matroid.eRank_le_encard_add_eRk_compl`: unchanged 🎉 * `DFinsupp.single_tsub`: unchanged 🎉 * `EReal.inv_neg`: unchanged 🎉 * `Finsupp.toMultiset_map`: unchanged 🎉 * `Finsupp.single_tsub`: unchanged 🎉 * `Multiset.countP_map`: unchanged 🎉 * `Nat.ascFactorial_eq_factorial_mul_choose'`: unchanged 🎉 * `Real.sign_intCast`: unchanged 🎉 * `Real.volume_eball`: unchanged 🎉 * `Real.volume_closedEBall`: unchanged 🎉 * `LFunction_ne_zero_of_not_quadratic_or_ne_one`: 295 ms before, 152 ms after 🎉 * `hasSum_one_div_nat_pow_mul_cos`: unchanged 🎉 * `inv_eq_of_aeval_divX_ne_zero`: unchanged 🎉 * `AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin`: unchanged 🎉 * `Ordinal.deriv_mul_eq_opow_omega0_mul`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 22/24 Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Expand.lean,Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/Real/Sign.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/NumberTheory/LSeries/Nonvanishing.lean,Mathlib/NumberTheory/ZetaValues.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/AlgebraicIndependent/Basic.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean 19 1 ['artie2000', 'github-actions'] nobody
6-84026
6 days ago
13-23436
13 days ago
13-23202
13 days
34154 euprunin
author:euprunin
chore: golf using `grind` (and add four supporting `grind` annotations) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `Orientation.nonneg_inner_and_areaForm_eq_zero_iff_sameRay`: 311 ms before, 284 ms after 🎉 * `UV.compression_self`: 29 ms before, 19 ms after 🎉 * `IsSepClosed.exists_root_C_mul_X_pow_add_C_mul_X_add_C`: 405 ms before, 291 ms after 🎉 * `InnerProductGeometry.norm_add_eq_add_norm_iff_angle_eq_zero`: 425 ms before, 309 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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', 'artie2000', 'euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'tb65536'] nobody
6-82437
6 days ago
33-42308
33 days ago
61-54831
61 days
36346 kckennylau
author:kckennylau
chore: add simp lemma to unfold Algebra.algHom ```lean @[simp] lemma Algebra.coe_algHom : ⇑(Algebra.algHom R A B) = algebraMap A B := rfl ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 6/2 Mathlib/Algebra/Algebra/Hom.lean,Mathlib/RingTheory/Etale/StandardEtale.lean 2 3 ['acmepjz', 'artie2000', 'github-actions'] dupuisf
assignee:dupuisf
6-81936
6 days ago
22-72064
22 days ago
22-71830
22 days
29982 hrmacbeth
author:hrmacbeth
feat: new `isolate` tactic This PR adds a new tactic, `isolate`, which "solves for x" in an equation or relation. For example: ```lean example (a b : ℝ) (f : ℝ → ℝ) : 5 * f a - 3 < b := by isolate f a -- new goal: `⊢ f a < (b + 3) / 5` ``` The `isolate` tactic may generate side goals, if these are necessary to justify the transformation. The tactic will attempt to justify such side goals using `positivity` (as in the above example), unification, or type class inference, but if unsuccessful will present them to the user. For example: ```lean example (a b c : ℝ) (f : ℝ → ℝ) : c * f a - 3 < b := by isolate f a -- new goal: `⊢ f a < (b + 3) / c` -- second (side) new goal: `⊢ 0 < c` ``` The `isolate` tactic is extensible. Coverage may be extended to new relations and new operations-to-be-undone by tagging appropriate lemmas with the new `@[isolate]` attribute. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 81 ['JovanGerb', 'PatrickMassot', 'Vierkantor', 'github-actions', 'hrmacbeth', 'kim-em', 'mathlib4-merge-conflict-bot'] adamtopaz
assignee:adamtopaz
6-81600
6 days ago
29-15353
29 days ago
78-9823
78 days
34191 IlPreteRosso
author:IlPreteRosso
feat(Topology/Algebra/InfiniteSum): Discrete Convolution API 1st PR Defines the very basics of the discrete convolution API. In analogy with [MeasureTheory.Convolution](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Convolution.html#MeasureTheory.convolution). Main definitions include - `mulFiber`, `convolution`, `ConvolutionExists`, `ConvolutionExists.add_distrib`, `ConvolutionExistsAt.smul_convolution`, `mulFiber_swapEquiv`, `convolution_comm` RM: - The main docstring is *as is* - Next step is triple sum intrastrcutre + `assoc` theorems for convolution (long) Continues the work from #33411 and #33410 (splitting into shorter PRs, carries over the modifications from previous reviews) t-topology new-contributor 277/0 Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/DiscreteConvolution.lean 2 18 ['IlPreteRosso', 'github-actions', 'j-loreaux'] ocfnash
assignee:ocfnash
6-81597
6 days ago
54-24151
54 days ago
63-25600
63 days
34477 spanning-tree
author:spanning-tree
refactor(Order): make CompletePartialOrder extend OrderBot Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly. Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor. See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 15/1 Mathlib/Order/CompletePartialOrder.lean 1 3 ['Citronhat', 'github-actions', 'mathlib-merge-conflicts'] bryangingechen
assignee:bryangingechen
6-81595
6 days ago
29-34494
29 days ago
50-9417
50 days
35610 IvanRenison
author:IvanRenison
feat(Data/Fin): add several lemmas about subtraction of `Fin.{castLT, castAdd, castSucc, castPred}` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 79/0 Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/SuccPred.lean 2 3 ['github-actions', 'wwylele'] joneugster
assignee:joneugster
6-81591
6 days ago
36-45103
36 days ago
36-59375
36 days
36720 YanYablonovskiy
author:YanYablonovskiy
feat(Order): `OrderType.lift` and more order type API Adding the universe lifting operation to `OrderType` , addresses a 'TODO' . --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 41/2 Mathlib/Order/Types/Defs.lean 1 23 ['YaelDillies', 'YanYablonovskiy', 'github-actions', 'vihdzp'] bryangingechen
assignee:bryangingechen
6-81585
6 days ago
7-51074
7 days ago
9-14396
9 days
36840 SnirBroshi
author:SnirBroshi
feat(SetTheory/Ordinal/Arithmetic): a few ordinal division lemmas --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 27/8 Mathlib/SetTheory/Ordinal/Arithmetic.lean 1 6 ['SnirBroshi', 'github-actions', 'vihdzp'] alreadydone
assignee:alreadydone
6-81581
6 days ago
11-79127
11 days ago
11-78893
11 days
36990 JovanGerb
author:JovanGerb
fix(RefinedDiscrTree/Lookup): improve the matching score heuristic This PR improves the order in which results come out of the `RefinedDiscrTree`. I've explained the motivation in the doc-string. This is probably not the most principled fix, but it is the least disruptive solution I could think of. For an example, try clicking on `|0|` in ``` import Mathlib example : |(0 : ℝ)| = 1 := by rw?? ``` And notice that the obvious result `abs_zero` is not the first result. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 44/8 Mathlib/Lean/Meta/RefinedDiscrTree/Lookup.lean 1 1 ['github-actions'] eric-wieser
assignee:eric-wieser
6-81579
6 days ago
8-25675
8 days ago
8-25441
8 days
36992 JovanGerb
author:JovanGerb
feat(RefinedDiscrTree/Lookup): use parallellism in lookup This PR adds parallellism to the `RefinedDiscrTree` lookup. Previously, only constructing the root node of the discrimination tree used parallellism. But it turns out some of the child nodes can be pretty big too. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 40/7 Mathlib/Lean/FoldEnvironment.lean,Mathlib/Lean/Meta/RefinedDiscrTree/Lookup.lean 2 1 ['github-actions'] adamtopaz
assignee:adamtopaz
6-81578
6 days ago
8-22631
8 days ago
8-22397
8 days
36999 themathqueen
author:themathqueen
feat(Analysis/RCLike): lifting `C(X, ℝ)` to `C(X, 𝕜)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 69/0 Mathlib.lean,Mathlib/Analysis/RCLike/ContinuousMap.lean 2 1 ['github-actions'] urkud
assignee:urkud
6-81578
6 days ago
8-14859
8 days ago
8-14625
8 days
35250 vlad902
author:vlad902
feat(SimpleGraph): redefine `cycleGraph` independent of `circulantGraph` Right now the `cycleGraph` definition relies on `circulantGraph` which requires importing Group definitions from the algebra hierarchy. This causes large-imports for me in later PRs where I try to make more widespread use of cycleGraphs, so here I redefine it to be its own independent object, and leave moving it from `Circulant.lean` to another PR (this is parallel to #35084.) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 10/10 Mathlib/Combinatorics/SimpleGraph/Circulant.lean 1 5 ['SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp', 'vlad902'] nobody
6-56535
6 days ago
45-37497
45 days ago
45-37263
45 days
36958 JovanGerb
author:JovanGerb
chore(Topology/Order/Basic): use `Preorder.topology` in `OrderTopology` This PR addresses the comment: ``` TODO: define `Preorder.topology` before `OrderTopology` and reuse the def ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 22/19 Mathlib/Topology/Instances/Discrete.lean,Mathlib/Topology/Order/Basic.lean 2 1 ['github-actions', 'vihdzp'] PatrickMassot
assignee:PatrickMassot
6-53946
6 days ago
8-73725
8 days ago
8-73826
8 days
35084 edegeltje
author:edegeltje
feat(Combinatorics/SimpleGraph): 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 141/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cayley.lean 2 44 ['SnirBroshi', 'YaelDillies', 'edegeltje', 'github-actions', 'vihdzp', 'vlad902'] kmill
assignee:kmill
6-34122
6 days ago
9-26142
9 days ago
46-11776
46 days
37104 tb65536
author:tb65536
feat(RingTheory/Flat/FaithfullyFlat/Basic): prove `IsNoetherian` and `IsArtinian` from faithfully flat base change This PR proves that if the base change of a module `M` along a faithfully flat ring homomorphism is Noetherian or Artinian, then so is `M`. The file `Artinian/Module` has become rather heavy, so I split off a `Artinian/Defs` file to avoid the large import. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
119/39 Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Artinian/Defs.lean,Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean 5 1 ['github-actions'] nobody
6-24534
6 days ago
6-24534
6 days ago
6-24302
6 days
37109 zeekmartin
author:zeekmartin
feat(SimpleGraph): card of common neighbors equals card of triangles containing edge Adds `SimpleGraph.card_commonNeighbors_eq_card_triangles_containing_edge` to `Mathlib/Combinatorics/SimpleGraph/Clique.lean`. For adjacent vertices `u v` in a finite simple graph, establishes the bijection between common neighbors and 3-cliques containing the edge `{u, v}`: ```lean theorem card_commonNeighbors_eq_card_triangles_containing_edge {u v : α} (huv : G.Adj u v) : (G.commonNeighbors u v).toFinset.card = ((G.cliqueFinset 3).filter fun s => {u, v} ⊆ s).card ``` This connects `commonNeighbors` (defined in `Basic.lean`) with `cliqueFinset` — a gap not previously covered in `Clique.lean`. **AI disclosure**: Claude (Anthropic) was used as an assistant during the development of this proof. It helped with the initial proof structure and tactic suggestions. The proof was reviewed and validated step by step by the author, who can vouch for all the content. The mathematical idea originates from the author's prior Lean 4 work on spectral graph theory (github.com/zeekmartin/topostability-lean4). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics LLM-generated new-contributor 61/0 Mathlib/Combinatorics/SimpleGraph/Clique.lean 1 7 ['SnirBroshi', 'github-actions', 'zeekmartin'] nobody
6-20616
6 days ago
6-27775
6 days ago
6-27541
6 days
37098 vihdzp
author:vihdzp
feat: singular cardinals We define a singular cardinal as an infinite cardinal which is larger than its cofinality. That's to say, every cardinal is exactly one of the following three: finite, regular, or singular. Re-opened from #17005, with permission. --- Co-authored-by: Nir Paz - [x] depends on: #36933 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 108/27 Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean 4 3 ['github-actions', 'mathlib-dependent-issues', 'plp127'] nobody
6-2663
6 days ago
6-2959
6 days ago
6-3793
6 days
35402 samueloettl
author:samueloettl
feat(Dynamics/BirkhoffSum): birkhoffAverage const --- I think this is useful and one of these should be a simp lemma. I'm not really sure if I got the naming of the theorems correct. When generalizing to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-dynamics new-contributor 22/0 Mathlib/Dynamics/BirkhoffSum/Average.lean 1 2 ['github-actions'] ADedecker
assignee:ADedecker
5-81581
5 days ago
36-4854
36 days ago
42-37908
42 days
36948 Parcly-Taxel
author:Parcly-Taxel
feat: subtraction and ±1 lemmas for `IsCoprime, IsRelPrime` From my Redhill PhD project. t-ring-theory 84/0 Mathlib/RingTheory/Coprime/Basic.lean 1 1 ['github-actions'] mattrobball
assignee:mattrobball
5-81575
5 days ago
9-45266
9 days ago
9-45032
9 days
36957 chrisflav
author:chrisflav
refactor(Topology): redefine `Topology.IsQuotientMap` with `Topology.IsCoinducing` Currently, varying formulations for `f : X -> Y` is coinducing are used: Examples are an equality of `TopologicalSpace.coinduced` or an explicit characterization of open sets. We add a predicate `Topology.IsCoinducing` and redefine `Topology.IsQuotientMap` in terms of it. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 153/76 Mathlib/AlgebraicGeometry/Morphisms/Flat.lean,Mathlib/AlgebraicGeometry/Morphisms/FlatDescent.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Group/Pointwise.lean,Mathlib/Topology/Algebra/Group/Quotient.lean,Mathlib/Topology/Algebra/Module/ModuleTopology.lean,Mathlib/Topology/Algebra/ProperAction/Basic.lean,Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean,Mathlib/Topology/Clopen.lean,Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/Connected/LocPathConnected.lean,Mathlib/Topology/Connected/LocallyConnected.lean,Mathlib/Topology/Connected/TotallyDisconnected.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Convenient/GeneratedBy.lean,Mathlib/Topology/Covering/Quotient.lean,Mathlib/Topology/Defs/Induced.lean,Mathlib/Topology/DiscreteQuotient.lean,Mathlib/Topology/Homeomorph/Defs.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Maps/Basic.lean,Mathlib/Topology/Maps/OpenQuotient.lean,Mathlib/Topology/Order/ProjIcc.lean,Mathlib/Topology/Sequences.lean 25 3 ['chrisflav', 'github-actions', 'plp127'] j-loreaux
assignee:j-loreaux
5-81575
5 days ago
9-11811
9 days ago
9-11592
9 days
37048 gasparattila
author:gasparattila
feat(Topology/UniformSpace/Closeds): uniform continuity of product --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 51/2 Mathlib/Topology/UniformSpace/Closeds.lean 1 1 ['github-actions'] j-loreaux
assignee:j-loreaux
5-81570
5 days ago
7-23000
7 days ago
7-22766
7 days
37067 kbuzzard
author:kbuzzard
feat: add_group tactic Written by Claude Code, additivising the `group` tactic, although there were some problems which needed human input. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) This is me burning Claude credits as a result of this comment [#mathlib4 > MulAut and to_additive @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MulAut.20and.20to_additive/near/581059625) . To my amusement, naively additivising the `group` tactic to make an `add_group` tactic does not work. The problem is that the algorithm run by `group` involves adding `← zpow_neg_one` to the simp set, which rewrites `x⁻¹` to `x ^ (-1)` for `x` in any group. Amusingly, when additivised, this becomes `-x -> -1 • x` which then immediately becomes `(-1 • 1) • x` which then becomes `((-1 • 1) • 1) • x` etc etc, as the integers are themselves an additive group. Instead, Claude found the following trick: drop `← neg_one_zsmul` and `neg_one_zsmul_add`, and use `neg_add_rev` and `neg_zero` to reduce `-(a+b)` and `-0`, use `zsmul_neg` to reduce `n • (-a)` to `(-n) • a` and then use things like `add_neg_cancel_right` and `neg_add_cancel_right` to do `-b + b` and `b + -b` together with some new `zsmul_neg_trick` lemmas to deal with `(n • b) + -b` etc. The idea is to ensure that any consecutive chains of `b`'s and `-b`'s and `z • b`'s will all get amalgamated, but we cannot change `-b` to `-1 • b` so have to try harder than in the multiplicative case. Here is a detailed explanation of the difference between `Tactic/AddGroup.lean` and the additivisation of `Tactic/Group.Lean`. 1) Note that the `zpow_trick` lemmas in `Tactic/Group.lean` are additivised, so we import `Group.lean` in `AddGroup.lean` to access these additivised lemmas. 2) `Mathlib.Algebra.Group.Commutator` has no additive version (and it's not clear that it should have one), so we don't use an additive version of `commutatorElement_def` (which expands `⁅g₁, g₂⁆` to `g₁ * g₂ * g₁⁻¹ * g₂⁻¹`). Note: that means that we cannot additivise a test. 3) Line 67 of the additive file uses `neg_add_rev, neg_zero, zsmul_neg, ← neg_zsmul,` as a workaround for the looping ` ← zpow_neg_one`. 4) `Int.mul_neg, Int.neg_mul` are dropped (they don't seem to be needed, all tests are passing, ring_nf is probably doing this.) 5) `sub_eq_add_neg` is added: people use subtraction in additive groups; division doesn't seem to be covered for multiplicative groups? *** There is also one fewer test in the `add_group` tests, as I had to remove the commutator test. I don't know much at all about tactic-writing, this is all Claude code, but a lot of it is to_additive copypasta. t-meta LLM-generated 183/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/AddGroup.lean,MathlibTest/AddGroup.lean 4 3 ['github-actions', 'kbuzzard'] JovanGerb
assignee:JovanGerb
5-81569
5 days ago
6-82696
6 days ago
6-83705
6 days
36018 wwylele
author: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. Part of #34826. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
293/0 Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean 3 7 ['copilot-pull-request-reviewer', 'github-actions', 'mathlib-bors'] kim-em
assignee:kim-em
5-77422
5 days ago
18-85988
18 days ago
18-85770
18 days
36307 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Walks): `Walk.ofSupport` / `Walk.ofDarts` --- This would hopefully make constructions such as [the cycle in `cycleGraph`](https://github.com/leanprover-community/mathlib4/blob/1b2df6c93fdd0ece89a32521464d5193e0f381ed/Mathlib/Combinatorics/SimpleGraph/Circulant.lean#L140-L155) or [the path in `pathGraph`](https://github.com/leanprover-community/mathlib4/pull/34171) or [the Hamiltonian walk in the complete graph](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Ore's.20Theorem/near/571353615) easier. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 88/0 Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean 2 14 ['SnirBroshi', 'github-actions', 'jessealama'] kmill
assignee:kmill
5-62564
5 days ago
23-61997
23 days ago
23-61763
23 days
36673 kebekus
author:kebekus
feat: lemmas on coercions of functions with locally finite support Add lemmas on coercions of functions with locally finite support. Add a lemma allowing to write a function with finite support as a linear combination of singleton indicator functions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology large-import 42/0 Mathlib/Topology/LocallyFinsupp.lean 1 4 ['github-actions', 'j-loreaux'] j-loreaux
assignee:j-loreaux
5-60848
5 days ago
5-60848
5 days ago
15-27329
15 days
36667 NoneMore
author:NoneMore
feat(ModelTheory): add `exClosure` definition for first-order formulas Prepare for moving realizations between elementarily equivalent structures. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 37/0 Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean 2 2 ['github-actions'] awainverse
assignee:awainverse
5-56111
5 days ago
15-65811
15 days ago
15-65577
15 days
36571 harahu
author:harahu
doc(Combinatorics): fix typos Found by `PyCharm`'s code inspection tool. Fixes were made by Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 24/24 Mathlib/Combinatorics/Colex.lean,Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean,Mathlib/Combinatorics/Matroid/Basic.lean,Mathlib/Combinatorics/Matroid/Circuit.lean,Mathlib/Combinatorics/Matroid/Map.lean,Mathlib/Combinatorics/Matroid/Minor/Contract.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/Combinatorics/SetFamily/FourFunctions.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,docs/references.bib 15 4 ['IvanRenison', 'github-actions', 'harahu'] nobody
5-55073
5 days ago
18-620
18 days ago
18-386
18 days
32744 NoneMore
author:NoneMore
feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas. The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable. There are also some tool lemmas derived by the preimage lemma. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 147/0 Mathlib/ModelTheory/Definability.lean 1 60 ['NoneMore', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'staroperator'] nobody
5-53986
5 days ago
5-53967
5 days ago
101-11967
101 days
34268 gasparattila
author:gasparattila
feat(Topology/Sets): continuity of operations on `(Nonempty)Compacts` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 4 ['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] j-loreaux
assignee:j-loreaux
5-52140
5 days ago
5-52164
5 days ago
66-49968
66 days
36202 vihdzp
author:vihdzp
feat: more theorems on the Cantor normal form We also remove some redundant assumptions. Used in the CGT repo. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 68/17 Mathlib/SetTheory/Ordinal/CantorNormalForm.lean 1 16 ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] b-mehta
assignee:b-mehta
5-51338
5 days ago
5-51362
5 days ago
24-44948
24 days
36922 SnirBroshi
author:SnirBroshi
feat(Data/List/Chain): generalize `WellFounded.asymmetric₃` to chains The existing `WellFounded.asymmetric` shows `r a b → ¬r b a`, and `WellFounded.asymmetric₃` shows `r a b → r b c → ¬r c a`. This adds `WellFounded.asymmetricₙ` which shows `l.IsChain r → ¬r l.getLast l.head`. --- Also adds a couple of `IsChain` lemmas which might be useful. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 29/8 Mathlib/Data/List/Chain.lean 1 4 ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] joneugster
assignee:joneugster
5-35199
5 days ago
5-35222
5 days ago
9-71064
9 days
34705 mpenciak
author:mpenciak
feat(RingTheory): 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) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory LLM-generated 120/2 Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Grassmannian.lean 2 9 ['chrisflav', 'github-actions', 'mathlib-merge-conflicts', 'mpenciak', 'robin-carlier'] chrisflav
assignee:chrisflav
5-34030
5 days ago
5-34103
5 days ago
41-17774
41 days
36850 whocares-abt
author:whocares-abt
feat(Combinatorics/SimpleGraph/Acyclic): add delete leaf from tree gives tree Added theorem stating Deleting a leaf from a tree produces a tree. t-combinatorics new-contributor 5/0 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean 1 7 ['github-actions', 'vlad902'] nobody
5-33757
5 days ago
9-58745
9 days ago
11-41367
11 days
37026 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Data/Nat/Perm): add two lemmas If a finite type has at most two elements, then its permutation group is cyclic and commutative. --- - [x] depends on: #36983 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import 34/1 Mathlib/Data/Finite/Perm.lean 1 3 ['github-actions', 'mathlib-dependent-issues', 'tb65536'] nobody
5-33039
5 days ago
5-33049
5 days ago
7-8695
7 days
37170 tb65536
author:tb65536
feat(RingTheory/Artinian/Module): add `pow` version of `quotNilradicalEquivPi` This PR upgrades `IsArtinianRing.quotNilradicalEquivPi` and adds a `pow` version. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra large-import
label:t-algebra$
33/12 Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Spectrum/Maximal/Basic.lean 2 2 ['github-actions', 'tb65536'] nobody
5-23039
5 days ago
5-23039
5 days ago
5-22806
5 days
36760 SnirBroshi
author:SnirBroshi
feat(GroupTheory/Subgroup): basic API for set normalizers --- Since `@[to_additive]` [doesn't work](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MulAut.20and.20to_additive/with/577355267) on `MulAut` (because `AddAut` wants to use multiplicative syntax) I've had to translate 2 theorems manually. ~~FWIW I think that `setNormalizer` should replace `normalizer`, as this old TODO says:~~ https://github.com/leanprover-community/mathlib4/blob/34ad346d5509066e2d41dc59c6a92a917ba55661/Mathlib/Algebra/Group/Subgroup/Defs.lean#L674 ~~This will join `Subgroup.centralizer` which is already defined on sets rather than subgroups (and subgroups can use it thanks to their `SetLike`).~~ ~~If you agree I'll create a separate PR that does it. Though it shouldn't block this PR.~~ - [x] depends on: #36852 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 115/33 Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/Subgroup/Center.lean,Mathlib/GroupTheory/Subgroup/Centralizer.lean 8 11 ['SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'tb65536'] tb65536
assignee:tb65536
5-21028
5 days ago
7-34940
7 days ago
11-57536
11 days
36837 nielstron
author:nielstron
feat(Computability/ContextFreeGrammar): Closure properties --- This PR is a rewrite of the closure property proofs of CFGs from scratch. The proof follows the approach by Ullman and Hopcroft in "Introduction to Automata Theory, Languages and Computation". It should make #33601 #33592 and #33599 superfluous. The main proof was created assisted by Aristotle, and then read and restructured by me. Update: I noticed the same proof strategy would lend itself to show closure properties of regular languages, if there is interest in that. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-computability LLM-generated 1598/0 Mathlib.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/ContextFreeGrammarClosure.lean,Mathlib/Computability/Language.lean,Mathlib/Data/List/Lemmas.lean 5 3 ['github-actions', 'nielstron'] nobody
5-20796
5 days ago
5-20846
5 days ago
10-31112
10 days
36664 SnirBroshi
author:SnirBroshi
feat(SetTheory/Ordinal/Commute): characterize when ordinal addition commutes --- The proof is from ["Cardinal and Ordinal Numbers"](https://en.wikipedia.org/wiki/Cardinal_and_Ordinal_Numbers). A similar fact for multiplication is mentioned on [Wikipedia](https://en.wikipedia.org/wiki/Ordinal_arithmetic). [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 51/0 Mathlib.lean,Mathlib/SetTheory/Ordinal/Commute.lean,docs/references.bib 3 20 ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] alreadydone and vihdzp
assignee:alreadydone assignee:vihdzp
5-16713
5 days ago
14-74975
14 days ago
15-43456
15 days
37175 tb65536
author:tb65536
chore(GroupTheory/Nilpotent): move declarations into namespace This PR moves the declarations of `GroupTheory/Nilpotent` from the root namespace to either the `Subgroup` namespace or the `Group` namespace. I also switched over to the commutator element notation in a few places. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
194/34 Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/Frattini.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/SpecificGroups/ZGroup.lean 4 1 ['github-actions'] nobody
5-14748
5 days ago
5-14748
5 days ago
5-14516
5 days
37179 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph): add lemmas about left and right elements of `SimpleGraph.sum` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 25/0 Mathlib/Combinatorics/SimpleGraph/Sum.lean 1 1 ['github-actions'] nobody
5-10005
5 days ago
5-10087
5 days ago
5-9853
5 days
36676 euprunin
author:euprunin
chore: replace long terminal `simp only […]`:s (≥3 lemmas) with bare `simp`:s The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Polynomial.map_comp`: unchanged 🎉 * `AlgebraicGeometry.IsClosedImmersion.Spec_iff`: 152 ms before, 107 ms after 🎉 * `nnnorm_pow_le`: unchanged 🎉 * `norm_pow_le`: unchanged 🎉 * `integral_sin`: unchanged 🎉 * `SimpleGraph.Subgraph.le_induce_union`: unchanged 🎉 * `ENNReal.iSup_add_iSup`: unchanged 🎉 * `ENat.iSup_add_iSup`: unchanged 🎉 * `ENat.mul_epow`: unchanged 🎉 * `EReal.abs_eq_zero_iff`: unchanged 🎉 * `Finset.disjoint_biUnion_left`: unchanged 🎉 * `List.splitOnP.go_acc`: unchanged 🎉 * `Multiset.count_map_eq_count`: unchanged 🎉 * `Nat.toDigitsCore_length`: unchanged 🎉 * `PartENat.pos_iff_one_le`: unchanged 🎉 * `Rat.intCast_div_self`: unchanged 🎉 * `Set.biUnion_empty_finset`: unchanged 🎉 * `Quot.subsingleton_iff`: unchanged 🎉 * `Equiv.Perm.support_closure_subset_union`: unchanged 🎉 * `Module.Basis.reindexRange_repr'`: unchanged 🎉 * `MeasureTheory.mul_le_addHaar_image_of_lt_det`: unchanged 🎉 * `MeasureTheory.memLp_finset_sum`: unchanged 🎉 * `MeasureTheory.exists_lt_lowerSemicontinuous_integral_lt`: 450 ms before, 404 ms after 🎉 * `BoundedContinuousFunction.toReal_lintegral_coe_eq_integral`: unchanged 🎉 * `nullMeasurableSet_region_between_oc`: unchanged 🎉 * `nullMeasurableSet_region_between_co`: unchanged 🎉 * `nullMeasurableSet_region_between_cc`: unchanged 🎉 * `MeasureTheory.integral_le_liminf_integral_of_forall_isOpen_measure_le_liminf_measure`: unchanged 🎉 * `padicValNat.pow_add_pow`: unchanged 🎉 * `Monotone.biUnion_Ico_Ioc_map_succ`: unchanged 🎉 * `ProbabilityTheory.condIndepSets_singleton_iff`: unchanged 🎉 * `ProbabilityTheory.sum_variance_truncation_le`: unchanged 🎉 * `IsLocalRing.CotangentSpace.span_image_eq_top_iff`: unchanged 🎉 * `galRestrict'_galLift`: 163 ms before, 48 ms after 🎉 * `Valuation.ne_zero_of_isUnit`: unchanged 🎉 * `hasProd_prod`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 36/36 Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/Data/ENat/Pow.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/List/SplitOn.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Rat/Lemmas.lean,Mathlib/Data/Set/Constructions.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/Portmanteau.lean,Mathlib/NumberTheory/Multiplicity.lean,Mathlib/Order/SuccPred/IntervalSucc.lean,Mathlib/Probability/Independence/Conditional.lean,Mathlib/Probability/StrongLaw.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean 31 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
5-3544
5 days ago
5-3568
5 days ago
13-44491
13 days
34273 gasparattila
author:gasparattila
feat(Topology/Sets): finite sets are dense in `(Nonempty)Compacts` --- - [x] depends on: #34266 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 35/0 Mathlib/Topology/Sets/VietorisTopology.lean 1 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] mcdoll
assignee:mcdoll
4-81472
4 days ago
6-24569
6 days ago
6-25585
6 days
35820 smmercuri
author:smmercuri
feat: unit lemmas and embedding for `FiniteAdeleRing` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 42/2 Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean 1 1 ['github-actions'] mattrobball
assignee:mattrobball
4-81471
4 days ago
32-24772
32 days ago
32-24768
32 days
36794 vihdzp
author:vihdzp
doc(SetTheory/Ordinal/Principal): improve documentation The module docstring now contains a description of what an `op`-principal actually is. I've also added some additional names for discoverability. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory documentation 26/20 Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/SetTheory/Ordinal/Veblen.lean 2 8 ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] alreadydone
assignee:alreadydone
4-81468
4 days ago
9-81942
9 days ago
12-14511
12 days
37008 BryceT233
author:BryceT233
feat(Algebra/Ring): introduce `pullback` for `RingHom` and `AlgHom` This PR introduces `pullback` for `RingHom` and `AlgHom` and adds `IsLocalHom`, `IsLocalRing` instances related to them. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 161/0 Mathlib/Algebra/Algebra/Subalgebra/Prod.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/RingTheory/LocalRing/LocalSubring.lean 3 5 ['BryceT233', 'github-actions', 'wwylele'] mattrobball
assignee:mattrobball
4-81467
4 days ago
6-48190
6 days ago
7-69960
7 days
35600 yisiox
author:yisiox
feat(Computability): add Kleene's algorithm to prove regular languages have regex matching This PR adds a proof that every regular language has some regular expression matching it. This was achieved by the following constructions and proofs of their correctness - Define `toSingleεNFA` to transform any epsilon-NFA to an equivalent one with only a single start and accept state (and the type is `ExtendedState`) - Define a bijection between `ExtendedState` and `Fin (FinEnum.card (ExtendedState σ))` to index the states - Define `pathRegex` which implements Kleene's algorithm - Define `toRegex` which takes an epsilon-NFA, applies `toSingleεNFA` on it, and computes the corresponding regex using `pathRegex` The proofs of correctness chain together to yield `(toRegex M).matches' = M.accepts` which asserts the direction of Kleene's theorem required. --- As in [#mathlib4 > Regular languages: the review queue @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/near/573958148), this overlaps with #15654, which uses GNFA instead but has been inactive. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor 492/0 Mathlib/Computability/EpsilonNFA.lean 1 15 ['YaelDillies', 'github-actions', 'yisiox'] YaelDillies
assignee:YaelDillies
4-57617
4 days ago
6-38781
6 days ago
25-40730
25 days
33520 NoneMore
author:NoneMore
feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic new-contributor 91/0 Mathlib/ModelTheory/ElementarySubstructures.lean 1 3 ['Citronhat', 'NoneMore', 'github-actions'] fpvandoorn
assignee:fpvandoorn
4-50170
4 days ago
4-50234
4 days ago
86-42015
86 days
35394 HugLycan
author: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 does not depend `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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-meta 611/322 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 23 ['HugLycan', 'JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster'] JovanGerb
assignee:JovanGerb
4-48224
4 days ago
11-51961
11 days ago
11-54845
11 days
35828 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(RingTheory/GradedAlgebra/Homogeneous/Hom): homogeneous algebra maps and evaluation Define the notion of homogeneous algebra morphism between algebra maps. Prove that the evaluation of a (weighted) homogeneous multivariate polynomial at adequate elements of a graded algebra define a homogeneous algebra morphism. co-authored with @mariainesdff --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 74/0 Mathlib.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Hom.lean 3 5 ['github-actions', 'joneugster', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
4-47181
4 days ago
31-86130
31 days ago
32-120
32 days
36772 xroblot
author:xroblot
feat(FieldTheory/IntermediateField): define the image of an intermediate field in a larger extension Given a tower of fields `K ⊆ L ⊆ M` and an intermediate field `F` of `L/K`, defines `IntermediateField.extendTop F M` as the image of `F` under` L →ₐ[K] M`, together with instances transferring `Algebra`, `IsFractionRing` and `IsIntegralClosure` to the image. The main motivation is to embed a subextension `F/K` of `L/K` into a larger extension `M/K`. This is useful for instance when one needs `M/K` to be Galois. This construction will be useful in a later PR to prove that the compositum of two unramified extensions is unramified. Indeed, the result is first proved when the two extensions are `IntermediateField K L` with `L/K` Galois, and then in the general case (see #36843) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 120/0 Mathlib.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/FieldTheory/IntermediateField/ExtendTop.lean,Mathlib/RingTheory/Localization/FractionRing.lean 4 3 ['github-actions', 'plp127', 'xroblot'] chrisflav
assignee:chrisflav
4-40670
4 days ago
4-40549
4 days ago
13-27738
13 days
36955 NoneMore
author:NoneMore
chore(ModelTheory/Types): expose `T` in `typesWith` and move it to `Theory` Make the `T : L.Theory` argument explicit in `typesWith` and place the definition in `FirstOrder.Language.Theory` to enable dot notation. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic new-contributor 24/19 Mathlib/ModelTheory/Topology/Types.lean,Mathlib/ModelTheory/Types.lean 2 2 ['github-actions'] nobody
4-37400
4 days ago
9-27765
9 days ago
9-27531
9 days
36201 themathqueen
author:themathqueen
feat(Analysis/CStarAlgebra): set of star projections equals the extreme points of the nonnegative closed unit ball An element in a non-unital C⋆-algebra is a projection iff it is an extreme point of the nonnegative closed unit ball. This is from 1.6.2 in Sakai's C⋆-algebras and W⋆-algebras (the proof is different though). Co-authored-by: Jon Bannon <59937998+JonBannon@users.noreply.github.com> --- - [x] depends on: #35997 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 97/0 Mathlib.lean,Mathlib/Analysis/CStarAlgebra/Extreme.lean,docs/references.bib 3 7 ['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'themathqueen'] ADedecker
assignee:ADedecker
4-20443
4 days ago
17-45373
17 days ago
19-34899
19 days
33935 mckoen
author:mckoen
feat(CategoryTheory/Monoidal/Arrow): define monoidal structure on arrow category defines a monoidal category structure on the arrow category of a cartesian closed category. --- - [x] depends on: #33974 - [x] depends on: #34887 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory maintainer-merge large-import 579/1 Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Arrow.lean,Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean,Mathlib/CategoryTheory/Monoidal/Limits/HasLimits.lean,Mathlib/CategoryTheory/Monoidal/Limits/Shapes/Pullback.lean 5 38 ['dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mckoen'] joelriou
assignee:joelriou
4-18559
4 days ago
4-18559
4 days ago
19-59045
19 days
36863 artie2000
author:artie2000
feat(Algebra/Ring/Subsemiring): subsemiring support * Define structure for support of a subsemiring when it's an ideal * Prove sufficient condition for it to be an ideal --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
93/0 Mathlib.lean,Mathlib/Algebra/Ring/Subsemiring/Support.lean 2 2 ['artie2000', 'github-actions'] nobody
4-13605
4 days ago
11-19008
11 days ago
11-19175
11 days
37247 yuma-mizuno
author:yuma-mizuno
feat(GroupTheory/MonoidLocalization): add prime transport lemmas --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 75/7 Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean 3 1 ['github-actions'] nobody
4-6177
4 days ago
4-6255
4 days ago
4-6021
4 days
37248 harahu
author:harahu
doc(Tactic): avoid lazy continuation lines We resolve the ambiguity inherent in lazy (un-indented) list item continuation lines by either indenting them or separating them by inserting a newline in the cases where the item continuation was a mistake. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 131/116 Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/DepRewrite.lean,Mathlib/Tactic/Finiteness.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/SimpIntro.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Widget/InteractiveUnfold.lean 17 1 ['github-actions'] nobody
3-85787
3 days ago
3-85854
3 days ago
4-4917
4 days
37190 cjrl
author:cjrl
feat(Combinatorics): Set-Valued Pigeonhole Principle This PR contributes two theorems to combinatorics: - `exists_lt_card_cover_of_card_biUnion_lt_card` is a set-valued version of the pigeonhole principle. - `sum_card_eq_sum_card_cover_biUnion` is a set theoretic corollary of a double counting result proved for bipartite graphs (`Finset.sum_card_bipartiteAbove_eq_sum_card_bipartiteBelow`). This was needed to prove the above pigeonhole principle. The motivation for these results is our Latin Square PR #36698. These results were proved in less general terms in that PR, but are independent of Latin Square considerations and so we have generalized and moved them into more relevant files. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 66/0 Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean 2 3 ['cjrl', 'github-actions'] nobody
3-83881
3 days ago
4-78600
4 days ago
4-78374
4 days
35329 BryceT233
author:BryceT233
feat(Data/Finsupp): add computational lemmas for cons and single This PR introduces `cons_eq_single_zero_iff` and `cons_eq_single_succ_iff`, which are helper lemmas designed to facilitate calculations (or simplification) of equalities involving `Finsupp.cons` and `Finsupp.single`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 25/0 Mathlib/Data/Finsupp/Fin.lean 1 2 ['github-actions'] joneugster
assignee:joneugster
3-81453
3 days ago
28-1715
28 days ago
43-57149
43 days
36689 martinwintermath
author:martinwintermath
feat(Algebra/Module/Submodule): Submodules over a ring are modular elements in the lattice of submodules over a semiring Add lemmas that state that submodules over a sub-ring `S` of a semiring `R` are modular elements in the lattice of submodules over the semiring `R`, that is, they satisfy the modular law. There are two new lemmas. Let `s` and `t` be `R`-submodules, and `p` an `S`-submodule: * `sup_inf_assoc_of_le_restrictScalars`: if `s ≤ p` then `s ⊔ (t ⊓ p) = (s ⊔ t) ⊓ p` (i.e., `p` is right-modular) * `inf_sup_assoc_of_restrictScalars_le`: if `p ≤ s` then `s ⊓ (t ⊔ p) = (s ⊓ t) ⊔ p` (i.e., `p` is left-modular) I am not aware of an implementation of right/left-modular elements, so I stated the lemmas without using the language of modular lattices. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
51/0 Mathlib/Algebra/Module/Submodule/RestrictScalars.lean 1 1 ['github-actions'] ocfnash
assignee:ocfnash
3-81447
3 days ago
15-19447
15 days ago
15-19213
15 days
36889 KryptosAI
author:KryptosAI
feat(LinearAlgebra/Matrix/MoorePenrose): define the Moore-Penrose pseudo-inverse Defines `IsMoorePenroseInverse` and constructs the Moore-Penrose pseudo-inverse for matrices over `RCLike` fields. Closes #24787. `Defs.lean` defines the predicate using the heterogeneous four-condition characterization from the issue, plus uniqueness for semigroups with `StarMul`. `Basic.lean` constructs the inverse via orthogonal projection and `ker(f)ᗮ ≃ₗ range(f)`, then proves: ```lean theorem exists_isMoorePenroseInverse (A : Matrix m n 𝕜) : ∃ (As : Matrix n m 𝕜), IsMoorePenroseInverse A As def moorePenroseInverse (A : Matrix m n 𝕜) : Matrix n m 𝕜 lemma moorePenroseInverse_conjTranspose : moorePenroseInverse (Aᴴ) = (moorePenroseInverse A)ᴴ lemma moorePenroseInverse_eq_nonsing_inv (hA : IsUnit A) : moorePenroseInverse A = A⁻¹ ``` ### AI disclosure - **Gemini 2.5 Pro**: proof planning, initial code, edits - **Claude Code (Opus 4.6)**: debugging, compilation, type-checking against mathlib4 I reviewed and directed all changes. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor LLM-generated
label:t-algebra$
399/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/MoorePenrose/Basic.lean,Mathlib/LinearAlgebra/Matrix/MoorePenrose/Defs.lean 3 25 ['KryptosAI', 'github-actions', 'vihdzp'] dagurtomas
assignee:dagurtomas
3-81445
3 days ago
9-24786
9 days ago
9-25694
9 days
36891 vihdzp
author:vihdzp
feat(SetTheory/Ordinal/Exponential): characterization of `a ^ b = 1` Used in the CGT repo. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 12/0 Mathlib/SetTheory/Ordinal/Exponential.lean 1 6 ['SnirBroshi', 'github-actions', 'vihdzp'] alreadydone
assignee:alreadydone
3-81444
3 days ago
6-980
6 days ago
10-55954
10 days
36917 iarnoldy
author:iarnoldy
feat(LinearAlgebra/CliffordAlgebra): bivector Lie subalgebra Define the submodule of grade-n elements (n-vectors) in a Clifford algebra and show that bivectors (n = 2) form a `LieSubalgebra` under the commutator bracket. This gives the standard construction of so(Q) from Cl(Q). Main definitions: * `CliffordAlgebra.nvector` — grade-n submodule, spanned by n-fold products of ι * `CliffordAlgebra.bivector` — nvector 2 Q, the bivector submodule * `CliffordAlgebra.bivectorLieSubalgebra` — LieSubalgebra of bivectors Main results: * `CliffordAlgebra.lie_ι_mul_ι` — explicit commutator formula for bivector generators * `CliffordAlgebra.lie_mem_bivector` — bracket closure of the bivector submodule * `CliffordAlgebra.bivector_le_evenOdd_zero` — bivectors lie in the even part The `LieModule` instance for `CliffordAlgebra Q` acting on itself is provided explicitly (`instLieModuleSelf`) because automatic synthesis exceeds the default heartbeat limit. AI disclosure: This code was generated with AI assistance (Claude, Anthropic). The submitter directed the construction and QA but is not a Lean programmer. The mathematical content is classical (Doran & Lasenby, Ch. 3). Extra review scrutiny is welcomed. Co-authored-by: Claude --- Open design questions for reviewers: 1. **Naming**: Is `nvector` the right name? Eric Wieser suggested generalizing to n-vectors. Alternatives: `ιProd`, `grade`, or following the `exteriorPower` pattern via `equivExterior` pullback. 2. **Scalar contamination**: The spanning set `{ι m₁ * ι m₂}` includes `ι m * ι m = Q(m)` (scalars). Eric suggested pulling back `exteriorPower` through `equivExterior` for pure grades (requires `Invertible (2 : R)`). Happy to rework if that's preferred. 3. **instLieModuleSelf**: Should this be an upstream issue rather than a local workaround? @ocfnash 4. **ι_mul_ι_comm'**: This may duplicate existing API (`ι_mul_ι_comm b a` plus `polar_comm`). Happy to inline if reviewers prefer. Discussed on Zulip: https://leanprover.zulipchat.com (Is there code for X? thread) new-contributor t-algebra LLM-generated
label:t-algebra$
338/0 Mathlib.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Bivector.lean 2 2 ['github-actions'] dagurtomas
assignee:dagurtomas
3-81444
3 days ago
10-1501
10 days ago
10-2492
10 days
36951 mbkybky
author:mbkybky
feat(Algebra/Module): define stably free modules We define stably free modules: a module `M` over a commutative ring `R` is called stably free if there exists a finite free module `N` over `R` such that `M ⊕ N` is free. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
52/0 Mathlib.lean,Mathlib/Algebra/Module/StablyFree/Basic.lean 2 1 ['github-actions'] dagurtomas
assignee:dagurtomas
3-81442
3 days ago
9-37301
9 days ago
9-37067
9 days
36980 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra): exactness lemma for linear map Add some variant of existing lemma for linear map --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
14/0 Mathlib/Algebra/Exact.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
3-81440
3 days ago
8-58138
8 days ago
8-57904
8 days
37000 Qulinecier
author:Qulinecier
feat: generalize rank_submatrix_le to arbitrary column maps This PR generalizes `rank_submatrix_le` to allow an arbitrary function on columns instead of requiring an `Equiv`. The previous version required `e : m₀ ≃ m` and `[Fintype m]`, while this version only requires `c : n₀ → n` and `[Fintype n₀]`. The previous version can be recovered as a special case of the new one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
16/6 Mathlib/LinearAlgebra/Matrix/Rank.lean 1 4 ['Qulinecier', 'github-actions', 'themathqueen'] dagurtomas
assignee:dagurtomas
3-81439
3 days ago
8-13417
8 days ago
8-13183
8 days
37193 JJYYY-JJY
author:JJYYY-JJY
docs(metric): add Main results sections for metric spaces Add Main results sections to metric-space definition modules This PR improves discoverability in the metric-space definition modules by adding curated Main results sections and by fixing a stale internal file reference. Add a Main results section to the pseudo-metric definitions module, highlighting key constructions and foundational lemmas. Add a Main results section to the metric-space definitions module, highlighting core constructions and distance-based characterization lemmas. Update the implementation note to point to the current pseudo-metric definitions path, clarifying where elementary pseudometric facts live. This is a docstring-only change: No declarations, theorem names, imports, instances, or proofs are changed; only module docstrings in the two metric-space definition files are edited. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 25/3 Mathlib/Topology/MetricSpace/Defs.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 2 4 ['copilot-pull-request-reviewer', 'github-actions'] j-loreaux
assignee:j-loreaux
3-81435
3 days ago
4-78284
4 days ago
4-78050
4 days
37235 gasparattila
author:gasparattila
chore: do not tag `Measurable.prod` with `fun_prop` This avoids relying on the bug where `fun_prop` unfolds semireducible definitions in the presence of projections (see [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60fun_prop.60.20sometimes.20unfolds.20semireducible.20definitions/with/574596569) of the bug). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 6/1 Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean 2 1 ['github-actions'] RemyDegenne
assignee:RemyDegenne
3-81432
3 days ago
4-15378
4 days ago
4-15144
4 days
37242 harahu
author:harahu
doc(Topology): avoid lazy continuation lines We resolve the ambiguity inherent in lazy (un-indented) list item continuation lines by either indenting them or separating them by inserting a newline in the cases where the item continuation was a mistake. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 15/10 Mathlib/Topology/Algebra/RestrictedProduct/TopologicalSpace.lean,Mathlib/Topology/Category/Compactum.lean,Mathlib/Topology/Gluing.lean,Mathlib/Topology/Sheaves/Abelian.lean,Mathlib/Topology/Sheaves/Points.lean,Mathlib/Topology/Sheaves/Presheaf.lean,Mathlib/Topology/Sheaves/SheafOfFunctions.lean 7 1 ['github-actions'] j-loreaux
assignee:j-loreaux
3-81431
3 days ago
4-9512
4 days ago
4-9278
4 days
31046 Thmoas-Guan
author:Thmoas-Guan
feat(Homology) : compatibility of map between `Ext` In this PR, we proved the compatibility of map between `Ext` induced by exact functor with 1: `mk_0` 2: `comp` 3: `extClass` --- - [x] depends on: #31707 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 232/8 Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean 5 43 ['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] eric-wieser
assignee:eric-wieser
3-76833
3 days ago
3-76833
3 days ago
43-55340
43 days
37076 ertwro
author:ertwro
feat(Combinatorics/SimpleGraph/Hasse): Hasse diagram is triangle-free Add `SimpleGraph.hasse_cliqueFree_three`: the Hasse diagram of a preorder is triangle-free (`CliqueFree 3`). This is the graph-theoretic formulation of `not_covBy_of_lt_of_lt`: if `a ⋖ b` and `b ⋖ c`, then `¬ a ⋖ c`, so no three elements can be pairwise adjacent in the Hasse diagram. The proof extracts three vertices from a hypothetical 3-clique, case-splits on the covering directions (8 cases), and closes each by `not_covBy_of_lt_of_lt` (6 transitive cases) or `lt_asymm` (2 cyclic cases). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 13/1 Mathlib/Combinatorics/SimpleGraph/Hasse.lean 1 11 ['SnirBroshi', 'ertwro', 'github-actions'] nobody
3-71317
3 days ago
6-60079
6 days ago
6-59845
6 days
37131 IvanRenison
author:IvanRenison
doc(Combinatorics/SimpleGraph/Partition): improve docstrings in `SimpleGraph.Partition` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 11/16 Mathlib/Combinatorics/SimpleGraph/Partition.lean 1 1 ['github-actions'] nobody
3-67883
3 days ago
6-494
6 days ago
6-260
6 days
35906 scp020
author:scp020
feat(Combinatorics/SimpleGraph/Walks): chords of walks Define `Walk.IsChord` and `Walk.IsChordless` predicates in a new file `SimpleGraph/Walks/Chord.lean`. See "chord" in https://en.wikipedia.org/wiki/Glossary_of_graph_theory --- [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Walk.2EIsChordless.20live.20in.20mathlib.3F/with/575277309) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 69/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Chord.lean 2 53 ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'scp020'] YaelDillies
assignee:YaelDillies
3-62667
3 days ago
3-81813
3 days ago
22-49981
22 days
36938 kebekus
author:kebekus
feat: Poisson Integral Formula for the circle average of `log ‖· - ρ‖` Establish an analogue of the **Poisson Integral Formula** for the circle average of `log ‖· - ρ‖` along the circle with radius `‖ρ‖`. The result will be used to establish Poisson's generalization of the classic Jensen formula in complex analysis. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 234/0 Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Complex/Poisson.lean 2 9 ['github-actions', 'kebekus', 'sgouezel'] sgouezel
assignee:sgouezel
3-60785
3 days ago
3-60785
3 days ago
9-19720
9 days
36817 Thmoas-Guan
author:Thmoas-Guan
feat(Data/ENat): more lemma about WithBot ENat In this PR, we add some lemma about WithBot ENat found useful in dimension shifting. Co-authored-by: Yimin Fu --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
22/0 Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/Data/ENat/Basic.lean 2 11 ['Thmoas-Guan', 'dagurtomas', 'github-actions', 'vihdzp'] dagurtomas
assignee:dagurtomas
3-57658
3 days ago
3-80817
3 days ago
12-5497
12 days
36965 vihdzp
author:vihdzp
chore(SetTheory/Cardinal): tweak `succ` lemmas We leave the `SuccOrder` instance unexposed. It doesn't have any particularly good def-eqs, it's simply defined as the infimum of all larger cardinals. We also golf some surrounding theorems. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 49/41 Mathlib/LinearAlgebra/Dimension/Basic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Basic.lean 4 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
3-52342
3 days ago
3-52369
3 days ago
8-61040
8 days
37022 vihdzp
author:vihdzp
feat(SetTheory/Cardinal/Cofinality): cof (a * b) = cof b We also tag `isSuccLimit_omega0` as simp, so that simp can solve goals like `(ω_ ω).cof = ω` or `cof (x * ω) = ω`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 12/3 Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean 3 4 ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] nobody
3-52148
3 days ago
5-52213
5 days ago
7-54849
7 days
37244 tb65536
author:tb65536
chore(Algebra/Algebra/Basic): add `IsLocalHom (algebraMap R R)` Experimentally, this seems to speed things up. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
3/0 Mathlib/Algebra/Algebra/Basic.lean 1 4 ['github-actions', 'leanprover-radar', 'tb65536'] nobody
3-49957
3 days ago
4-5892
4 days ago
4-5660
4 days
35405 xroblot
author:xroblot
feat(RamificationInertia): add `ramificationIdx_le_ramificationIdx` and `inertiaDeg_le_inertiaDeg` Assume that `Q` is over `P` that is over `p`. We prove that: - `Ideal.ramificationIdx P Q ≤ Ideal.ramificationIdx p Q` - `Ideal.inertiaDeg P Q ≤ Ideal.inertiaDeg p Q` Note: These results also 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 slightly more general situation. --- - [x] depends on: #35483 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 30/0 Mathlib/NumberTheory/RamificationInertia/Inertia.lean,Mathlib/NumberTheory/RamificationInertia/Ramification.lean 2 5 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] alexjbest
assignee:alexjbest
3-48706
3 days ago
4-43000
4 days ago
40-38489
40 days
32245 erdOne
author:erdOne
feat(RingTheory): the `coassoc_simps` simp set From Toric Co-authored-by: Yaël Dillies --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory toric t-meta 781/0 Mathlib.lean,Mathlib/RingTheory/Coalgebra/CoassocSimps.lean,Mathlib/Tactic/Attr/Register.lean,MathlibTest/RingTheory/CoassocSimps.lean 4 26 ['Paul-Lez', 'YaelDillies', 'b-mehta', 'erdOne', 'github-actions', 'joneugster', 'riccardobrasca'] b-mehta
assignee:b-mehta
3-47594
3 days ago
4-48759
4 days ago
36-53115
36 days
35287 arnoudvanderleer
author: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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology new-contributor infinity-cosmos 343/3 Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CoherentIso.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/CategoryTheory/CodiscreteCategory.lean 5 80 ['arnoudvanderleer', 'github-actions', 'joelriou', 'robin-carlier'] robin-carlier
assignee:robin-carlier
3-47417
3 days ago
3-53108
3 days ago
9-37350
9 days
36989 MichaelStollBayreuth
author:MichaelStollBayreuth
feat(NumberTheory/Height/EllipticCurve): new file This PR defines the "addition-and-subtraction map" on x-coordinates of pairs of points on elliptic curves and proves an inequality for the logarithmic height of the image. In a later PR, we will show that the map thus defined indeed comes from addition and subtraction on an elliptic curve. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 214/0 Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/AddSubMap.lean,Mathlib/NumberTheory/Height/EllipticCurve.lean 3 20 ['MichaelStollBayreuth', 'Multramate', 'github-actions', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
3-28988
3 days ago
3-48481
3 days ago
6-38680
6 days
37277 vihdzp
author:vihdzp
chore: reorder arguments in `DirSupClosed` We move `d ⊆ s` out of an unrelated binder. --- - [x] depends on: #37273 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 12/12 Mathlib/Order/DirSupClosed.lean,Mathlib/Topology/Order/ScottTopology.lean 2 2 ['github-actions', 'mathlib-dependent-issues'] nobody
3-22945
3 days ago
3-22947
3 days ago
3-23883
3 days
37274 JovanGerb
author:JovanGerb
chore(Order/Hom/WithTopBot): use `to_dual` Use `to_dual` on `WithBot`/`WithTop` morphism definitions. This removes one `backward.isDefEq.respectTransparency` option. Intentionally remove `simps!` from `LatticeHom.withTopWithBot` and `LatticeHom.withTop'`, instead putting `simp` on the equivalent manual lemma`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 55/205 Mathlib/Order/Hom/WithTopBot.lean 1 1 ['github-actions'] nobody
3-22017
3 days ago
3-22078
3 days ago
3-24404
3 days
37027 mike1729
author:mike1729
refactor(LocallyConvex,Topology): split WeakDual/WeakSpace and rename WeakBilin Reorganize the weak topology files for cleaner dependencies: 1. **Rename** `Analysis.LocallyConvex.WeakDual` → `Analysis.LocallyConvex.WeakBilin`: This file contains only general `WeakBilin` infrastructure (`LinearMap.toSeminormFamily`, `weakBilin_withSeminorms`, `WeakBilin.locallyConvexSpace`, etc.) with no reference to `WeakDual`. The name now reflects the content. 2. **Split** `Topology.Algebra.Module.WeakDual` into `WeakDual` and `WeakSpace`: The `WeakSpace` type, its instances, and `toWeakSpace`/`toWeakSpaceCLM` move to a new `Topology.Algebra.Module.WeakSpace`. This allows downstream files about weak spaces to avoid depending on `WeakDual`. 3. **Add** `WeakSpace.seminormFamily` and `WeakSpace.withSeminorms` to `Analysis.LocallyConvex.WeakSpace`: The weak topology on `WeakSpace 𝕜 E` is generated by the seminorm family `fun f x ↦ ‖f x‖` indexed by `StrongDual 𝕜 E`, via the general `LinearMap.weakBilin_withSeminorms` applied to the flipped `topDualPairing`. Moves: - Mathlib.Analysis.LocallyConvex.WeakDual -> Mathlib.Analysis.LocallyConvex.WeakBilin - WeakSpace -> Mathlib.Topology.Algebra.Module.WeakSpace - toWeakSpace -> Mathlib.Topology.Algebra.Module.WeakSpace - toWeakSpaceCLM -> Mathlib.Topology.Algebra.Module.WeakSpace CC @j-loreaux new-contributor file-removed 192/114 Mathlib.lean,Mathlib/Analysis/LocallyConvex/WeakBilin.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/WeakSpace.lean 6 3 ['github-actions', 'mathlib-merge-conflicts'] nobody
3-20472
3 days ago
5-50069
5 days ago
7-48509
7 days
36605 martinwintermath
author:martinwintermath
feat(Geometry/Convex/Cone): Add lemmas about interaction of hull, span and negation Prove lemmas about the interaction of hull, span and negation. Main additions: * `PointedCone.toSubmodule` that produces a submodule with the same support given that `-C = C`. Also the corresponding `CanLift` * `PointedCone.hull_neg_pair_eq_span_singleton` proving `hull R {-x, x} = R ∙ x` (simp lemma) * `PointedCone.span_eq_hull_neg_sup_hull` proving `span R s = hull R (-s) ⊔ hull R s` * `PointedCone.mem_span` proving `x ∈ span R C ↔ ∃ p, n ∈ C, x = p - n` Considerations: there are several ways to express that a convex cone is a submodule: * `-C = C` * `-C ≤ C` or `C ≤ -C` * `C = span R C` * `C = C.lineal` The consensus was that the the first option is the most direct way to express this property, which then allows to lift to a submodule. Secondary additions necessary for proofs: * `PointedCone.ofSubmodule_le` and `PointedCone.ofSubmodule_lt` * `PointedCone.hull_le_span` as a short form of `Submodule.span_le_restrictScalars R≥0 R s` * `PointedCone.neg_ofSubmodule` proving `-(ofSubmodule S) = S` Co-authored by: Olivia Röhrig, Kilian Rueß, Artie Khovanov --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 94/5 Mathlib/Geometry/Convex/Cone/Pointed.lean 1 49 ['artie2000', 'github-actions', 'martinwintermath', 'mathlib-merge-conflicts'] nobody
3-15576
3 days ago
5-47728
5 days ago
16-2851
16 days
35317 mkaratarakis
author:mkaratarakis
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 5/5) If a function `R : ℂ → ℂ` factors as `R z = (z - z₀) ^ r * R₁ z`, where `R₁` is analytic everywhere, then for any `k ≤ r`, there exists an everywhere analytic function `R₂ : ℂ → ℂ` such that the `k`-th iterated derivative of `R` is given by `deriv^[k] R z = (z - z₀) ^ (r - k) * (r! / (r - k)! * R₁ z + (z - z₀) * R₂ z)`. This lemma is necessary for the proof of the Gelfond-Schneider theorem in subsequent PRs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory new-contributor t-analysis 57/0 Mathlib/Analysis/Complex/CauchyIntegral.lean 1 16 ['MichaelStollBayreuth', 'github-actions', 'mkaratarakis'] nobody
3-15234
3 days ago
3-15234
3 days ago
25-11833
25 days
33010 xgenereux
author: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: #33631 - [ ] depends on: #33634 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 68/6 Mathlib/RingTheory/DedekindDomain/AdicValuation.lean 1 11 ['erdOne', 'github-actions', 'mathlib-dependent-issues', 'xgenereux'] nobody
3-14849
3 days ago
3-14819
3 days ago
5-48705
5 days
36834 dagurtomas
author:dagurtomas
feat(Tactic/Simps): add option to dsimplify LHS Adds an option `dsimpLhs` to `simps` which runs `dsimp` on the left hand side of the generated lemmas. This is a way to auto-generate lemmas with the `dsimp%` operator on the left hand side, as is common in category theory, see e.g. https://github.com/leanprover-community/mathlib4/blob/09af23f880d656d9a7950647a1e9c01047d502f0/Mathlib/CategoryTheory/Limits/Cones.lean#L137-L140 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 77/0 Mathlib/Tactic/Simps/Basic.lean,MathlibTest/Simps.lean 2 18 ['JovanGerb', 'dagurtomas', 'eric-wieser', 'github-actions'] dwrensha
assignee:dwrensha
3-9268
3 days ago
7-14216
7 days ago
10-43513
10 days
36439 xgenereux
author:xgenereux
feat(Algebra/Adjoin): CoeT instances for Algebra.adjoin on singletons Is it a common occurrence that I need to consider an element `x` or some polynomial evaluated in `x`, `p.eval x` as an element of `Algebra.adjoin R {x}`. This makes it so that we can write - `(x : adjoin R {x})` instead of `⟨x, self_mem_adjoin_singleton A x⟩` - `(p.eval x : adjoin R {x})` instead of `⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩` This is particularly useful when we need to write the type anyways, so that we need not to write `(⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩ : adjoin R {x})` anymore. Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 9/3 Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean 2 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
3-7309
3 days ago
3-7336
3 days ago
20-34605
20 days
35683 gasparattila
author:gasparattila
fix(Tactic/FunProp): detect `Continuous.subtype_mk` as compositional This PR changes `fun_prop` to detect some theorems involving dependent types, such as `Continous.subtype_mk` to be in compositional form. This lets `fun_prop` solve goals such as `Continuous fun x => (⟨x, trivial⟩ : {x : ℝ // True})`. --- These theorems become compositional: `Continuous.subtype_mk`, `Topology.IsEmbedding.inclusion`, `Topology.IsOpenEmbedding.inclusion`, `Topology.IsClosedEmbedding.inclusion`, `Measurable.subtype_mk`, `Measurable.imp`, `Path.symm_continuous_family`, `Continuous.upperHalfPlaneMk` These theorems become simple: `hasFDerivAt_prodMk_left`, `hasFDerivAt_prodMk_right`, `contDiff_prodMk_left`, `contDiff_prodMk_right` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 57/31 Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,MathlibTest/fun_prop_dev.lean 4 2 ['github-actions', 'mathlib-merge-conflicts'] dwrensha
assignee:dwrensha
3-7222
3 days ago
3-7249
3 days ago
35-4576
35 days
34138 pfaffelh
author:pfaffelh
feat(MeasureTheory): Introduce `MassFunction α` giving rise to a `Measure α ⊤` Define `MassFunction α := α → ℝ≥0∞` Define `toMeasure (w : MassFunction α) : @Measure α ⊤` as a sum of diracs Show properties of the resulting objects This PR intends to start a more userfriendly interaction with probability mass functions (`PMF`). There are two main differences between `MassFunction` and `PMF`: * `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `MassFunction`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.) * The `toMeasure` function of `MassFunction` directly defines the measure as a sum of diracs, which immediately makes computations possible. Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change) - depends on: #37060 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability new-contributor 252/1 Mathlib.lean,Mathlib/Algebra/Group/Indicator.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/MassFunction.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean 6 15 ['DavidLedvinka', 'github-actions', 'metakunt', 'ocfnash', 'pfaffelh'] kex-y and ocfnash
assignee:ocfnash assignee:kex-y
3-6362
3 days ago
7-6180
7 days ago
70-9062
70 days
36324 psinary-sketch
author:psinary-sketch
feat(NumberTheory/LSeries): Schwarz reflection for completedRiemannZeta₀ --- Three new theorems about `completedRiemannZeta₀`: - `completedRiemannZeta₀_conj`: Schwarz reflection `Λ₀(conj s) = conj(Λ₀(s))` - `completedRiemannZeta₀_im_eq_zero_on_half`: the completed zeta function is real-valued on the critical line - `completedRiemannZeta₀_conj_eq_self_on_half`: equivalent fixed-point formulation The Schwarz reflection follows from the Mellin representation: the kernel is real-valued, so the integral commutes with conjugation via `integral_conj`. The critical-line results compose this with the functional equation. AI disclosure: Lean code developed with Claude (Anthropic) assistance in workflow. Mathematical content and proof strategies are original. All code verified locally with lake env lean before submission. t-number-theory new-contributor LLM-generated 147/0 Mathlib.lean,Mathlib/NumberTheory/LSeries/SchwarzReflection.lean 2 13 ['SnirBroshi', 'github-actions', 'psinary-sketch'] alexjbest
assignee:alexjbest
3-2879
3 days ago
9-29733
9 days ago
18-79709
18 days
37291 IvanRenison
author:IvanRenison
refactor(Combinatorics/SimpleGraph): move `chromaticNumber_le_two_iff_isBipartite` and `chromaticNumber_eq_two_iff` to `Bipartite` file --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 10/12 Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean 2 1 ['github-actions'] nobody
3-1937
3 days ago
3-2024
3 days ago
3-1790
3 days
37045 edegeltje
author:edegeltje
feat(CategoryTheory/Limits): Pullback squares in cartesian monoidal categories This PR adds various lemmas about standard pullback squares in categories with chosen finite products. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 364/0 Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/CartesianMonoidal.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean 3 15 ['dagurtomas', 'edegeltje', 'github-actions', 'robin-carlier'] joelriou
assignee:joelriou
3-1472
3 days ago
3-3096
3 days ago
6-28463
6 days
36544 xroblot
author:xroblot
feat(RingTheory/Ideal): restriction maps on decomposition and inertia groups in a Galois tower Adds a new file `Mathlib/RingTheory/Ideal/Galois.lean` with results on the action of `Gal(L/K)` on ideals of a ring `B ⊆ L` for a Galois subextension `F/K` of `L/K`. The main results are the surjectivity and kernel descriptions of the natural maps from the decomposition (resp. inertia) group of `P` in `Gal(L/K)` to the decomposition (resp. inertia) group of `p` in `Gal(F/K)`, induced by restriction. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 213/0 Mathlib.lean,Mathlib/FieldTheory/Normal/Defs.lean,Mathlib/RingTheory/Ideal/Galois.lean 3 8 ['github-actions', 'riccardobrasca', 'tb65536', 'xroblot'] erdOne and riccardobrasca
assignee:riccardobrasca assignee:erdOne
3-1155
3 days ago
18-21116
18 days ago
18-20882
18 days
36937 Yaohua-Leo
author:Yaohua-Leo
feat(Algebra/Jordan): add first linearization lemmas for IsCommJordan [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) AI assistance disclosure: I used AI assistance for CI/debugging and module-structure fixes in this PR. The mathematical content and main lemmas were written by me, with help from @pelicanhere. This PR adds a new file `Mathlib/Algebra/Jordan/Linearization.lean` containing linearization lemmas for the commutative Jordan identity. Main declarations: * `IsCommJordan.four_nsmul_associator_mul_add` * `IsCommJordan.associator_mul_add` These lemmas formalize a first linearization of the commutative Jordan identity using `associator`, following McCrimmon, Proposition 1.8.5. --- I put these lemmas in a separate file because I expect follow-up linearization lemmas to belong naturally in the same place. I am also happy to rename declarations or move the file if reviewers would prefer. t-algebra new-contributor
label:t-algebra$
60/0 Mathlib.lean,Mathlib/Algebra/Jordan/Linearization.lean 2 4 ['Yaohua-Leo', 'github-actions', 'grunweg'] dagurtomas
assignee:dagurtomas
2-86327
2 days ago
9-55026
9 days ago
9-55420
9 days
37191 artie2000
author:artie2000
chore(Geometry/Convex/Cone/Pointed): clean up variables * Remove variable overwrites by changing `variable` declarations and renaming variables * Rename variables to maintain rough type-consistency within the file * Reorganise sections in order of increasing typeclass strength * Bring explicit/implicit variables in line with convention This PR doesn't change any declarations beyond changing variable explicitness. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry 134/114 Mathlib/Geometry/Convex/Cone/Pointed.lean 1 4 ['artie2000', 'github-actions', 'martinwintermath', 'mathlib-merge-conflicts'] nobody
2-83642
2 days ago
2-83665
2 days ago
4-3835
4 days
37053 artie2000
author:artie2000
refactor(Analysis/Convex/Cone): use `PointedCone` in Riesz extension theorem Change the statement of the Riesz extension theorem to take a `PointedCone` rather than a `ConvexCone`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry maintainer-merge 15/12 Mathlib/Analysis/Convex/Cone/Extension.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean 2 3 ['YaelDillies', 'github-actions'] nobody
2-83553
2 days ago
4-74770
4 days ago
5-48180
5 days
35398 vlad902
author:vlad902
feat(SimpleGraph): `bypass` lemmas --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 17/0 Mathlib/Combinatorics/SimpleGraph/Paths.lean 1 1 ['github-actions'] nobody
2-81593
2 days ago
42-41894
42 days ago
42-41660
42 days
26735 Raph-DG
author: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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 148/0 Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Topology/Continuous.lean,Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Sets/Closeds.lean 6 62 ['Raph-DG', 'chrisflav', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] dagurtomas and erdOne
assignee:dagurtomas assignee:erdOne
2-81585
2 days ago
5-26545
5 days ago
51-213
51 days
31892 jsm28
author:jsm28
feat(Geometry/Euclidean/Sphere/PolePolar): poles and polars Define poles and polars for spheres in Euclidean affine spaces, and set up some basic API, including in particular La Hire's theorem (`p₁` lies on the polar of `p₂` if and only if `p₂` lies on the polar of `p₁`). Poles and polars are actually meaningful for any quadric in a projective space over any field, but I think it's reasonable to set up this theory for spheres in the Euclidean context and potentially link it in future to more general projective geometry. --- - [ ] depends on: #31891 - [ ] depends on: #32296 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 159/0 Mathlib.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean 2 4 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] JovanGerb
assignee:JovanGerb
2-81583
2 days ago
3-19135
3 days ago
3-19661
3 days
32294 jsm28
author:jsm28
feat(Geometry/Euclidean/Angle/Incenter): distance from second intersection with circumcircle Add the following lemma: given a triangle ABC, suppose an angle bisector from A through the incenter or excenter I meets the circumcircle again at X (including the case of an external bisector at A tangent to the circle, in which case X = A). Then XB = XI (= XC, by applying this lemma again). This is a standard configuration: https://en.wikipedia.org/wiki/Incenter%E2%80%93excenter_lemma --- - [ ] depends on: #30981 - [ ] depends on: #30982 - [ ] depends on: #32019 - [ ] depends on: #32021 - [ ] depends on: #32023 - [ ] depends on: #32270 - [ ] depends on: #32290 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 189/0 Mathlib/Geometry/Euclidean/Angle/Incenter.lean 1 5 ['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'peakpoint'] JovanGerb
assignee:JovanGerb
2-81582
2 days ago
3-19149
3 days ago
3-19705
3 days
32807 WilliamCoram
author:WilliamCoram
feat: Define the Gauss norm for MvPowerSeries We adjust the current definition for Gauss norm on power series to work for multivariate power series. If this seems acceptable I can refactor the single variable case. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] erdOne and jcommelin
assignee:jcommelin assignee:erdOne
2-81582
2 days ago
45-35506
45 days ago
58-43134
58 days
33392 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(LinearAlgebra/Transvection/Generation): non-exceptional case in Dieudonné's theorem We prove the theorem of [Dieudonné-1955][J. Dieudonné, “Sur les générateurs des groupes classiques”]. Let `K` be a division ring and `V` be a `K`-module. * `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_eq_one`: If `e.fixedReduce = 1`, then `e` can be written as the product of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections and one dilatransvection. This is the first part of the non-exceptional case in Dieudonné's theorem. (This statement is not interesting when `e = 1`.) * `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_ne_smul_id`: If `e.fixedReduce` is not a homothety, then `e` can be written as the product of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections and one dilatransvection. This is the second part of the non-exceptional case in Dieudonné's theorem. * `LinearEquiv.IsExceptional`: A linear equivalence `e : V ≃ₗ[K] V` is exceptional if `1 < finrank K (V ⧸ e.fixedSubmodule)` and if `e.fixedReduce` is a nontrivial homothety. * `LinearEquiv.mem_dilatransvections_pow_of_notIsExceptional`: This is the non-exceptional case in Dieudonné's theorem, as a combination of the two preceding statements. --- - [x] depends on: #33348 - [x] depends on: #33282 - [x] depends on: #33347 - [ ] depends on: #33387 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
574/0 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 9 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
2-81581
2 days ago
3-54415
3 days ago
3-65599
3 days
34909 SnirBroshi
author:SnirBroshi
feat(Data/Sym/Sym2): `fromRel` equivalence with `Sigma` over a `Quotient` Add a non-dependent recursor on members of a `fromRel` set, and the following `Equiv`s: - The `fromRel` set of a symmetric relation `r` is equivalent to summing that set restricted to fibers of `f`. - For a relation homomorphism `r →r r'` where `r` is symmetric, the `fromRel` set of `r` is equivalent to summing that set restricted to equivalence classes of `r'` using a `Subtype`. --- I find this recursor pretty useful when dealing with `fromRel`, the idea came from a suggestion by @kmill [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Eq.2Erec.20with.20a.20constant.20does.20nothing.3A.20h.20.E2.96.B8.20c.20.3D.20c/near/565176948) for another `Sym2` conundrum. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 43/0 Mathlib/Data/Sym/Sym2.lean 1 8 ['SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] TwoFX and pechersky
assignee:TwoFX assignee:pechersky
2-81580
2 days ago
9-86176
9 days ago
52-45634
52 days
35707 BryceT233
author:BryceT233
feat(RingTheory/MvPowerSeries): introduce `truncTotal` This PR introduces the total degree truncation of multivariate formal power series when the index is finite, and uses it to establish the algebraic equivalence between `MvPowerSeries` and the adic completion of `MvPolynomial` with respect to the ideal spanned by all variables `idealOfVars`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-ring-theory 213/2 Mathlib.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean 4 7 ['BryceT233', 'github-actions', 'joneugster', 'mathlib-bors', 'wwylele'] erdOne, jcommelin, riccardobrasca
assignee:jcommelin assignee:riccardobrasca assignee:erdOne
2-81578
2 days ago
25-75373
25 days ago
34-58030
34 days
36494 MichaelStollBayreuth
author:MichaelStollBayreuth
feat(GroupTheory/IndexNSmul): new file This PR adds a new file (to be able to have the required imports) that contains some results related to the (relative) index of subgroups in commutative additive groups and the multiplication-by-`n` map. They will be useful in proving the Northcott property for heights on number fields. --- - [x] depends on: #36458 [some API lemmas for powMonoidHom] [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
100/0 Mathlib.lean,Mathlib/GroupTheory/IndexNSmul.lean 2 2 ['github-actions', 'mathlib-dependent-issues'] dagurtomas
assignee:dagurtomas
2-81573
2 days ago
4-16715
4 days ago
4-18827
4 days
36966 oliver-butterley
author:oliver-butterley
chore: Superfluous line using clearExcept removed from get_map₂. Superfluous line using `clearExcept` removed from `get_map₂`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 0/1 Mathlib/Data/Vector/Basic.lean 1 1 ['github-actions'] Vierkantor
assignee:Vierkantor
2-81572
2 days ago
8-57401
8 days ago
8-57167
8 days
37056 lecopivo
author:lecopivo
feat(Tactic/FunProp): proper support for metavariables in fun_prop goals This PR add proper support for metavariables in `fun_prop` goals thus allows for properly solving goals like `HasFDerivAt k f ?f' x`. --- This extension to `fun_prop` will enable computation of derivatives by properly handling metavariables in `fun_prop` goal thus allowing us to solve `HasFDerivAt k f ?f' x` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta large-import 1219/220 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/FunProp/Attr.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/Decl.lean,Mathlib/Tactic/FunProp/Elab.lean,Mathlib/Tactic/FunProp/Simproc.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/FunProp/Types.lean,Mathlib/Tactic/Measurability.lean,MathlibTest/fun_prop_dev.lean,MathlibTest/fun_prop_dev_out_param.lean 12 9 ['eric-wieser', 'github-actions', 'lecopivo', 'mathlib-merge-conflicts'] alexjbest
assignee:alexjbest
2-81569
2 days ago
4-37079
4 days ago
4-38207
4 days
37078 vihdzp
author:vihdzp
chore(LinearAlgebra/ExteriorPower/Basis): avoid use of IsWellFounded.wellOrderExtension This file formerly used `IsWellFounded.wellOrderExtension` on an empty relation to create a linear order extending it, i.e. an arbitrary linear order. But we can accomplish this directly via the well-ordering principle. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy
label:t-algebra$
4/4 Mathlib/LinearAlgebra/ExteriorPower/Basis.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
2-81568
2 days ago
6-55351
6 days ago
6-55117
6 days
37183 dagurtomas
author:dagurtomas
feat(Tactic/CategoryTheory): map attribute Adding `@[map]` to a lemma named `H` of shape `∀ .., f = g`, where `f` and `g` are morphisms in some category `C`, creates a new lemma named `H_map` of the form `∀ .. {D} (func : C ⥤ D), F.map f = F.map g` and then applies `simp only [Functor.map_comp, Functor.map_id]`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) LLM-generated t-meta t-category-theory 212/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/Map.lean 4 5 ['adamtopaz', 'dagurtomas', 'github-actions', 'joelriou'] adamtopaz
assignee:adamtopaz
2-81567
2 days ago
4-65872
4 days ago
4-65986
4 days
37251 plp127
author:plp127
fix(Tactic/DepRewrite): `conv` mode Add tests for `rewrite!` and `rw!` in `conv` mode. Fix a bug where `rw!` always produces type-incorrect terms when rewriting the goal in `conv` mode. Remove support for `rw! [...] at h` in `conv` mode, for consistency with `rw`, which does not have this feature, and because it's usually not what you want to do anyways. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 46/15 Mathlib/Tactic/DepRewrite.lean,MathlibTest/depRewrite.lean 2 1 ['Vtec234', 'github-actions'] dwrensha
assignee:dwrensha
2-81564
2 days ago
3-85268
3 days ago
3-85034
3 days
37252 artie2000
author:artie2000
feat(Algebra/Group/Submonoid/Support): properties of submonoid support * Prove how the support of a submonoid interacts with various operations --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
50/1 Mathlib/Algebra/Group/Submonoid/Support.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
2-81563
2 days ago
3-81698
3 days ago
3-81464
3 days
35043 winstonyin
author: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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 421/313 Mathlib.lean,Mathlib/Analysis/ODE/ExistUnique.lean,Mathlib/Analysis/ODE/Gronwall.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,docs/1000.yaml,docs/undergrad.yaml 7 4 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
2-81122
2 days ago
2-81195
2 days ago
2-81429
2 days
37293 peabrainiac
author:peabrainiac
feat(Order/Partition): finite meets of partitions of frames For any frame `α`, `Partition α` has finite meets: the meet of two partitions `P`, `Q` can be constructed as the partition consisting of all meets `p ⊓ q` with `p ∈ P`, `q ∈ Q` and `p ⊓ q ≠ ⊥`. Note that even for frames `Partition α` does not have arbitrary meets: for example, there is no finest partition on the frame of open subsets of the Cantor space. We thus have to construct the remaining operations by hand instead of e.g. just transporting a `CompleteLattice` instance along some Galois connection. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 44/2 Mathlib/Order/Partition/Basic.lean 1 1 ['github-actions'] nobody
2-76763
2 days ago
2-86334
2 days ago
2-86100
2 days
36386 SnkXyx
author:SnkXyx
feat(Algebra/MvPolynomial/Degrees): add some lemmas about `degreeOf` These lemmas are used in #36103 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
79/0 Mathlib/Algebra/MvPolynomial/Degrees.lean 1 12 ['Hagb', 'SnkXyx', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts'] dagurtomas
assignee:dagurtomas
2-75834
2 days ago
2-75834
2 days ago
20-38240
20 days
37229 b-mehta
author:b-mehta
feat(Algebra/Free): relate the free semigroup and the free monoid The name is picked to mimic `FreeMagma.toFreeSemigroup`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
100/3 Mathlib.lean,Mathlib/Algebra/Free.lean,Mathlib/Algebra/FreeMonoid/FreeSemigroup.lean 3 1 ['github-actions'] dagurtomas
assignee:dagurtomas
2-74300
2 days ago
4-22336
4 days ago
4-22613
4 days
37301 Thmoas-Guan
author:Thmoas-Guan
chore(RingTheory/Smooth): remove fg condition for `Algebra.FormallySmooth.of_algebraicIndependent_of_isSeparable` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 3/5 Mathlib/RingTheory/Smooth/Field.lean 1 1 ['github-actions'] nobody
2-71418
2 days ago
2-73755
2 days ago
2-73521
2 days
36849 mike1729
author:mike1729
feat(Analysis/Normed/Module/SchauderBasis): basic sequences and Grünblum criterium This PR introduces the theory of basic sequences in Banach spaces, following Albiac–Kalton. Defines basic sequences in normed spaces, and prove the classical Grünblum criterium for recognizing them. New definitions (in BasicSequence.lean) - `BasicSequence`: a bundled ℕ-indexed sequence forming a Schauder basis for its algebraic span, with finite projection bound. - `SatisfiesGrunblumCondition`: partial sums over initial segments are bounded by a constant times the full sum. Main results - `SatisfiesGrunblumCondition.basicSequence`: a nonzero sequence satisfying the Grünblum condition is a basic sequence. - `SatisfiesGrunblumCondition.linearIndependent`: nonzero sequences satisfying that condition are linearly independent. --- - [x] follow up to : #34209 - [ ] blocks : #35473 The next planned PRs: - general selection principle for basic sequences - characterization when a set contains a basic sequence in terms of weak closure and compactness - Eberlein–Šmulian theorem - weakly compact subsets of a Banach space are Fréchet–Urysohn spaces [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-analysis new-contributor 253/1 Mathlib.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Basic.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequence.lean 3 2 ['github-actions'] sgouezel
assignee:sgouezel
2-58573
2 days ago
3-8454
3 days ago
11-44362
11 days
34871 zhuyizheng
author:zhuyizheng
feat(Calculus): Taylor with integral remainder This PR proves Taylor's theorem with the integral remainder. It provides two versions: 1. based on $f^{(n)}$ is absolutely continuous 2. based on $f \in C^{(n+1)}$ It also weakens the hypotheses `(hx : x₀ < x)` to `(hx : x₀ ≠ x)` in the following theorems: - `taylor_mean_remainder` - `taylor_mean_remainder_lagrange` - `taylor_mean_remainder_lagrange_iteratedDeriv` - `taylor_mean_remainder_cauchy` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-analysis 216/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 22 ['Komyyy', 'b-mehta', 'github-actions', 'j-loreaux', 'joneugster', 'mathlib-merge-conflicts', 'sgouezel', 'zhuyizheng'] j-loreaux
assignee:j-loreaux
2-50901
2 days ago
4-72493
4 days ago
37-11591
37 days
36950 ajirving
author:ajirving
feat(Analysis/Complex): prove Jensen's inequality for the number of zeros Proves Jensen's inequality for the number of zeros of a complex analytic function in a ball. This is an application of Jensen's formula. We also add a specialization of Jensen's formula for analytic (rather than meromorphic) functions and a version of divisor apply also for analytic functions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 83/0 Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Meromorphic/Divisor.lean 2 14 ['ajirving', 'github-actions', 'j-loreaux'] j-loreaux
assignee:j-loreaux
2-49854
2 days ago
3-19162
3 days ago
6-47068
6 days
36555 joelriou
author:joelriou
feat(Algebra/Homology/SpectralObject): the spectral sequence This PR constructs the spectral sequence attached to a spectral object in an abelian category. --- - [x] depends on: #36182 - [x] depends on: #36550 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory t-algebra
label:t-algebra$
380/8 Mathlib/Algebra/Homology/SpectralObject/SpectralSequence.lean 1 34 ['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier', 'smorel394'] dagurtomas and erdOne
assignee:dagurtomas assignee:erdOne
2-45538
2 days ago
2-45602
2 days ago
8-26274
8 days
37214 Kha
author:Kha
perf(Tactic/Abel): use `mkAuxTheorem` for proof term Removes some duplication from types of nested proofs t-meta 4/1 Mathlib/Tactic/Abel.lean 1 5 ['JovanGerb', 'Kha', 'github-actions', 'leanprover-radar'] thorimur
assignee:thorimur
2-44704
2 days ago
4-30075
4 days ago
4-29841
4 days
37311 CoolRmal
author:CoolRmal
feat: lemmas about liminf multiplied by a constant Add some analogues of [ENNReal.limsup_const_mul_of_ne_top](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Filter/ENNReal.html#ENNReal.limsup_const_mul_of_ne_top) for liminf. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 34/5 Mathlib/Order/Filter/ENNReal.lean 1 1 ['github-actions'] nobody
2-41418
2 days ago
2-41374
2 days ago
2-41482
2 days
37312 CoolRmal
author:CoolRmal
feat(MeasureTheory): Outer regular measures are determined by values on bounded open sets We proved that - Every open set in a metric space is a countable union of bounded open sets. - Outer regular measures are determined by values on bounded open sets. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 20/0 Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/Topology/MetricSpace/Bounded.lean 2 1 ['github-actions'] nobody
2-41053
2 days ago
2-41124
2 days ago
2-40890
2 days
31242 plp127
author: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. --- - [x] depends on: #31264 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 78/4 Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Cofinite.lean,Mathlib/Order/Heyting/Boundary.lean,Mathlib/Order/Lattice.lean 4 8 ['github-actions', 'jcommelin', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] bryangingechen
assignee:bryangingechen
2-26967
2 days ago
2-26985
2 days ago
26-49598
26 days
35753 Vilin97
author:Vilin97
feat(Topology/Algebra/Order): regular grid helpers and piecewise linear interpolation Make API for piecewise linear interpolation on regular grids. I need these to for ODE time-stepping methods, like forward Euler, and later Runge–Kutta methods. Follow-up PR: #35755 (forward Euler method convergence). I don't know if these numerical analysis ODE-solving methods even belong in mathlib. If someone could advise me on it, I would appreciate it. --- The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code. t-topology new-contributor LLM-generated 269/0 Mathlib.lean,Mathlib/Topology/Algebra/Order/Floor.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean 3 8 ['Vilin97', 'copilot-pull-request-reviewer', 'dagurtomas', 'github-actions', 'wwylele'] PatrickMassot
assignee:PatrickMassot
2-26075
2 days ago
3-26941
3 days ago
11-56788
11 days
36743 Jun2M
author:Jun2M
feat(Combinatorics/GraphLike): introduce `GraphLike` typeclass Per discussion at ([#graph theory > HasAdj](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445)), This PR introduces the `GraphLike` typeclass to capture the notions like `dart` and `walk` across various graph objects, such as `SimpleGraph`, `Graph`, and `Digraph`. The goal is that by abstracting these core components into a typeclass, we can prove these results once for all graph-like structures rather than duplicating them across different graph types. This PR generalises #35776 to also unify `Graph`. ### Main definitions * `GraphLike α β Gr`: A typeclass parameterized by a vertex type `α`, dart type `β` and a graph type `Gr` (with `α` as an `outParam`). * `GraphLike.verts : Set α`: The set of vertices of the graph. * `GraphLike.darts : Set β`: The set of darts of the graph. * `GraphLike.Adj : α → α → Prop`: The adjacency relation, defined by default as `Nonempty (darts G u v)`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 281/0 Mathlib.lean,Mathlib/Combinatorics/Digraph/GraphLike.lean,Mathlib/Combinatorics/GraphLike/Basic.lean,Mathlib/Combinatorics/SimpleGraph/GraphLike.lean 4 41 ['IvanRenison', 'Jun2M', 'SnirBroshi', 'github-actions', 'lauramonk', 'mathlib-merge-conflicts'] nobody
2-18442
2 days ago
9-3821
9 days ago
13-59813
13 days
36887 chenson2018
author:chenson2018
fix: `multiGoal` linter within interactive `grind` Currently the `multiGoal` linter will incorrectly trigger for `grind` interactive mode, as this uses its own syntax for `cases`, `·`, `next`, etc. that are registered as exceptions for the equivalent ordinary tactics. This PR fixes this behavior and adds a series of corresponding tests. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-linter maintainer-merge 120/0 Mathlib/Tactic/Linter/Multigoal.lean,MathlibTest/Multigoal.lean 2 6 ['adomani', 'chenson2018', 'github-actions', 'joneugster', 'leanprover-radar'] joneugster
assignee:joneugster
2-18045
2 days ago
10-65667
10 days ago
10-65433
10 days
37304 vihdzp
author:vihdzp
feat: if `s ∪ t` is directed then one of `s` or `t` is --- I have no idea how to name these, suggestions encouraged. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 22/0 Mathlib/Order/Directed.lean 1 3 ['b-mehta', 'github-actions', 'plp127'] nobody
2-9047
2 days ago
2-59343
2 days ago
2-59109
2 days
36083 gasparattila
author:gasparattila
feat: decomposition of `ContinuousAffineMap` as an `Equiv` This PR defines an equivalence `(V →ᴬ[R] Q) ≃ Q × (V →L[R] W)`, plus `LinearEquiv` and `AffineEquiv` variants. To match the names of the new equivalences, `ContinuousAffineMap.toConstProdLinearMap` is also renamed. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 154/13 Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean,Mathlib/Topology/Algebra/ContinuousAffineMap.lean 2 5 ['dupuisf', 'gasparattila', 'github-actions'] nobody
1-81594
1 day ago
27-910
27 days ago
27-2629
27 days
34599 cameronfreer
author:cameronfreer
feat(Logic/Equiv/Fintype): generalize toCompl and exists_extending_pair to finite source Generalize the Equiv subtype-extension API so it only needs finiteness of the source subtype, then use that to drastically simplify `Equiv.Perm.isMultiplyPretransitive`. ### Changes to `Logic/Equiv/Fintype.lean` * **`Equiv.toCompl`**: generalize from `[Finite α]` to `[Finite {x | p x}]`. New proof (due to tb65536) uses finset symmetric differences to avoid needing finiteness of the ambient type. * **`Equiv.extendSubtype`** and related lemmas: adapt to `[Finite {x | p x}]`. * **`Equiv.Perm.exists_extending_pair`**: strengthen from `[Finite β]` to `[Finite α]`. Given two injective functions `f, g : α → β` where `α` is finite, there exists `σ : Perm β` with `σ ∘ f = g`. The target `β` can now be infinite. ### Changes to `MultipleTransitivity.lean` * **`Equiv.Perm.isMultiplyPretransitive`**: replace ~70-line manual bijectivity construction with a two-line proof via `exists_smul_eq_embedding`. * **`exists_smul_eq_embedding`**: rewire to use `exists_extending_pair` directly (removing the old cardinal-arithmetic proof `exists_extending_pair_of_finite_source`). ### Application Used in formalizing de Finetti's theorem (exchangeability ⇒ contractability): https://github.com/cameronfreer/exchangeability/blob/03a854a2/Exchangeability/Contractability.lean#L459 Co-authored-by: tb65536 t-group-theory new-contributor 51/79 Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/Logic/Equiv/Fintype.lean 2 26 ['LLaurance', 'cameronfreer', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] nobody
1-81593
1 day ago
23-13572
23 days ago
44-34312
44 days
36385 CoolRmal
author:CoolRmal
feat: a sequential and countably compact space is sequentially compact The main result proved in this PR is that a sequential and countably compact space is sequentially compact. We also prove some lemmas: 1. If `f` is an embedding, then `A` is sequentially compact iff `f '' A` is sequentially compact. This result is then used to show the equivalence of `IsSeqCompact A` and `SeqCompactSpace A`. 2. If `f` is inducing, then `A` is countably compact iff `f '' A` is countably compact. This result is then used to show the equivalence of `IsCountablyCompact A` and `CountablyCompactSpace A`. 3. If `f` converges and `g` is another function such that `g x ∈ closure {f x}` for all `x`, then `g` also converges. --- - [x] depends on: #36174 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 137/13 Mathlib/Topology/Compactness/CountablyCompact.lean,Mathlib/Topology/Inseparable.lean,docs/references.bib 3 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] PatrickMassot
assignee:PatrickMassot
1-81356
1 day ago
2-35850
2 days ago
2-44465
2 days
36797 vihdzp
author:vihdzp
feat: more results on additive principal ordinals We prove some new results on additive principal ordinals, and use them to golf existing results. Moved from #15989. --- - [x] depends on: #36793 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 38/33 Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/SetTheory/Ordinal/Principal.lean 2 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] alreadydone
assignee:alreadydone
1-81354
1 day ago
3-55162
3 days ago
10-32206
10 days
37047 gasparattila
author:gasparattila
chore(Data/Finset/Lattice/Fold): use `to_dual` This PR uses the `@[to_dual]` attribute to generate dual lemmas about `Finset.sup`. The lemmas about `sdiff` and `himp` are skipped, as `HeytingAlgebra` is not yet tagged with `@[to_dual]`. To improve the consistency between dual lemmas, several changes are made: - tag `inf_insert` with `@[grind =]` - rename `le_inf_const_le` to `le_inf_const` - tag `inf_union` with `@[grind _=_]` - tag `inf_mono_fun` with `@[grind ←]` - tag `inf_mono` with `@[grind ←]` - tag `inf_attach` with `@[simp]` - add `le_inf_of_directed_le` - add `inf_eq_top_of_isEmpty` - add `inf_mem_of_nonempty` - add `inf'_mono_fun` - rename `comp_sup_eq_sup_comp_of_nonempty` to `apply_sup_eq_sup_comp_of_nonempty` and add `apply_inf_eq_inf_comp_of_nonempty` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 126/477 Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Lattice/Fold.lean 4 14 ['JovanGerb', 'gasparattila', 'github-actions', 'mathlib-merge-conflicts'] joneugster
assignee:joneugster
1-81352
1 day ago
3-7460
3 days ago
7-18938
7 days
37084 SnirBroshi
author:SnirBroshi
feat(Order/PropInstances): relations and `Subsingleton` `r = ⊤ ↔ Refl r` and `r = ⊥ ↔ Irrefl r` given `Subsingleton` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 7/1 Mathlib/Order/PropInstances.lean 1 1 ['github-actions'] bryangingechen
assignee:bryangingechen
1-81351
1 day ago
6-51622
6 days ago
6-51388
6 days
37086 tb65536
author:tb65536
chore(GroupTheory/Sylow): remove explicit type ascriptions `(P : Subgroup G)` PR #36852 generalized `normalizer` to subsets of `G` (like we do for centralizer), but introduced a few explicit type ascriptions `(P : Subgroup)` into `Sylow.lean` (to force the coercion to `Set` to go through `Subgroup`). This PR removes those. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
61/44 Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/GroupTheory/SpecificGroups/ZGroup.lean,Mathlib/GroupTheory/Sylow.lean,Mathlib/GroupTheory/Transfer.lean 4 1 ['github-actions'] riccardobrasca
assignee:riccardobrasca
1-81350
1 day ago
6-41373
6 days ago
6-41140
6 days
37263 joelriou
author:joelriou
feat(CategoryTheory/Monoidal): use `to_additive` for group objects --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 193/77 Mathlib/CategoryTheory/Monoidal/Grp_.lean 1 1 ['github-actions'] robin-carlier
assignee:robin-carlier
1-81349
1 day ago
2-11771
2 days ago
2-11769
2 days
37295 wwylele
author:wwylele
feat(Analysis/InnerProductSpace): generalized determinant of a rectangle matrix / linear map This is the volume factor of a linear map --- I have encountered the expression `sqrt(det(T' * T))` a few times in various places but it doesn't look like it has a standard name and entry in mathlib, so this adds it. Zulip thread [#Is there code for X? > (norm of) "determinant" of map between inner product spaces](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.28norm.20of.29.20.22determinant.22.20of.20map.20between.20inner.20product.20spaces/with/581776873) One motivation to define this is to state volume formula under transformations. From *Measure theory and fine properties of functions*: - Lemma 3.1: for linear map $L : \mathbb{R}^n \to \mathbb{R}^m$, we have $\mathcal{H}^n(L(A)) = [ L ] \mathcal{L}^n(A)$, or in Lean, `μHE[n] (L '' A) = L.normDet * volume A` - Theorem 3.8, for (not necessarily linear) $f : \mathbb{R}^n \to \mathbb{R}^m$ ($n \le m$) and $\mathcal{L}^n$-measurable set $A \subset \mathbb{R}^n$, we have $\int_A J f dx = \int_{\mathbb{R}^m} \mathcal{H}^0(A \cap f\^{-1}\{y\}) d\mathcal{H}^n(y)$, where $J f$ is the `normDet` of the rectangular Jacobian matrix AI usage disclosure: AI was used in the following parts - searching for related literature for an appropriate name - generate draft proofs for some lemma to verify their correctness, though the final code has been completely rewritten by me. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis large-import 398/0 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/GramMatrix.lean,Mathlib/Analysis/InnerProductSpace/NormDet.lean,docs/references.bib 4 6 ['copilot-pull-request-reviewer', 'github-actions'] ADedecker
assignee:ADedecker
1-81348
1 day ago
2-81896
2 days ago
2-81662
2 days
37316 WenrongZou
author:WenrongZou
feat(Topology/HomotopyGroup): first homotopy group iso fundamental group --- This PR proves that first homotopy group is isomorphic to fundamental group. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 42/2 Mathlib/Topology/Homotopy/HomotopyGroup.lean 1 2 ['WenrongZou', 'github-actions'] j-loreaux
assignee:j-loreaux
1-81343
1 day ago
2-35692
2 days ago
2-35458
2 days
36239 plp127
author:plp127
feat(FieldTheory/KrullTopology): define uniform group structure on galois group Endow the galois group of a field extension `Gal(L/K)` with the structure of a uniform group. Use this to prove some properties of the galois group earlier, for example, that the galois group is compact is immediate, and in more generality than the version proved in `FieldTheory/Galois/Profinite`. Deprecate some material which used to be used to define the krull topology, but is now unused since the krull topology comes out of the uniform structure. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
271/177 Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean 4 17 ['github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] nobody
1-72287
1 day ago
1-72287
1 day ago
1-72053
1 day
37160 vihdzp
author:vihdzp
feat: product of Coxeter matrices The Coxeter matrix `A * B` is the block matrix `!![A, 2; 2, B]`. --- I've used multiplication to denote this under the logic that the product of Coxeter groups has a Coxeter matrix given by this construction. Perhaps this isn't desirable, considering it doesn't match matrix multiplication. I'm open to suggestions. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 13/3 Mathlib/GroupTheory/Coxeter/Matrix.lean 1 3 ['github-actions', 'tb65536', 'vihdzp'] tb65536
assignee:tb65536
1-65383
1 day ago
5-42989
5 days ago
5-42755
5 days
34507 metakunt
author:metakunt
feat(NumberTheory/AKSPrimality): Adds the AKS primality test Adds the completed proof for the AKS primality test. Everything except the final theorem is marked private as it's only needed for the final proof. Also everything except the final theorem is namespaced with AKS. ---- Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Aks.20primality.20Theorem.206.2E1.20Claim.20.28i.29.20proven t-number-theory 645/0 Mathlib.lean,Mathlib/NumberTheory/AKSPrimality.lean 2 51 ['github-actions', 'jcommelin', 'kim-em', 'metakunt', 'qawbecrdtey', 'tb65536', 'vihdzp'] tb65536
assignee:tb65536
1-62359
1 day ago
1-62359
1 day ago
31-54886
31 days
34808 YaelDillies
author:YaelDillies
feat(Combinatorics/SimpleGraph): isolated vertices From ProofBench --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 37/1 Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean 3 5 ['YaelDillies', 'b-mehta', 'github-actions'] b-mehta
assignee:b-mehta
1-58601
1 day ago
1-58652
1 day ago
53-34890
53 days
36804 YaelDillies
author:YaelDillies
refactor(Combinatorics/SimpleGraph): use `edge` and `deleteEdges` more Alternatively, we should make them `abbrev`s. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 78/38 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean 5 3 ['b-mehta', 'github-actions', 'mathlib-merge-conflicts'] nobody
1-58510
1 day ago
1-58531
1 day ago
11-10165
11 days
37308 ajirving
author:ajirving
chore(Analysis/SpecialFunctions/Integrability): better theorem names in LogMeromorphic.lean Put MeromorphicOn first in names as suggested by @j-loreaux in review of #36950. This is the correct Mathlib naming and makes applications simpler. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 56/39 Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean,Mathlib/Analysis/Complex/ValueDistribution/Proximity/Basic.lean,Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/Analysis/SpecialFunctions/Integrability/LogMeromorphic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean 6 2 ['github-actions'] j-loreaux
assignee:j-loreaux
1-56044
1 day ago
2-49981
2 days ago
2-49747
2 days
35613 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Clique): use `IsContained` instead of an explicit embedding from top This makes theorems require only a proof that a `Copy` exists rather than provide an explicit `Embedding`. Also tag monotonicity lemmas with `@[gcongr]`, and add `Copy.isContained` / `Embedding.isIndContained` / `Embedding.isContained` / `Iso.isContained'`. --- 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 65/55 Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean 4 21 ['SnirBroshi', 'YaelDillies', 'github-actions'] awainverse
assignee:awainverse
1-43999
1 day ago
7-36378
7 days ago
31-18437
31 days
37278 SnirBroshi
author:SnirBroshi
chore(Order/Defs/Unbundled): deprecate `def Reflexive` in favor of `class Std.Refl` Also adds definitional lemmas `std*_def` for the relation classes, and cleans up things nearby, especially in `Logic/Relation.lean`. --- [Mathlib's `def Reflexive`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Reflexive) [Core's `class Std.Refl`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Std.Refl) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 229/171 Mathlib/Algebra/Group/Semiconj/Defs.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/WSeq/Relation.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/Logic/Pairwise.lean,Mathlib/Logic/Relation.lean,Mathlib/ModelTheory/Order.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Directed.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/Quotient.lean,Mathlib/Order/ScottContinuity.lean,Mathlib/Order/SuccPred/Relation.lean,MathlibTest/abel.lean 20 3 ['SnirBroshi', 'github-actions', 'leanprover-radar'] nobody
1-42839
1 day ago
3-15989
3 days ago
3-17556
3 days
34952 joneugster
author:joneugster
feat(scripts/autolabel): use `Cli` and integrate `curl` call into `autolabel` - use `Cli` for `lake exe autolabel` - add arguments `--pr xxx --gh` and `--pr xxx --curl ` to chose between different interaction methods with github - add `--force` to skip the check whether labels are already present. (note: the current `curl` setup doesn't perform this step and neither does the refactor, so I added a `Todo` to remember this. ) - make CI-workflow simpler and more robust by removing current stdout-parsing of the debug-messages which `autolabel` emits. ### Testing Make some local changes and commit them. Ensure your local `origin/master` is in sync with `upstream/master` if you are on a fork. - `lake exe autolabel`: prints the labels which would be applicable - `lake exe autolabel --pr 34952 --gh --force` adds these labels to this PR using `gh`. - `lake exe autolabel --pr 34952 --gh` adds these labels to this PR using `gh` if no topic labels are present. - `lake exe autolabel --pr 34952 --curl ` adds these labels to this PR using `curl`. This requires a github access token for authentication --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CI 87/73 .github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean 2 4 ['github-actions', 'mathlib-merge-conflicts'] adomani
assignee:adomani
1-41912
1 day ago
1-42195
1 day ago
33-83301
33 days
37060 pfaffelh
author:pfaffelh
feat: `Set.indicator` on a disjoint union equals the sum of individual `Set.indicator` Prove a helper lemma on mulIndicators, needed in measure/probability theory: If `s : γ → Set β` is `Pairwise (Disjoint on s)` and `f : β → α`, then `(⋃ d, s d).mulIndicator f i = ∏' d, (s d).mulIndicator f i` for `i : β`. The `to_additive` tag is added for `Set.indicator`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 57/1 Mathlib/Algebra/Group/Indicator.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean 2 26 ['DavidLedvinka', 'github-actions', 'ocfnash', 'pfaffelh'] ocfnash
assignee:ocfnash
1-41034
1 day ago
3-6298
3 days ago
6-60945
6 days
36728 chenson2018
author:chenson2018
feat: linter for terminal squeezes See discussion at [#**mathlib4>linter requests@576559620** ](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/linter.20requests/near/576559620). This PR adds a linter that indicates when a flexible terminal tactic is squeezed and can be replaced by the unsqueezed equivalent. Like the other tactic analysis linters, this is off by default and intended for periodic reports. At the moment, this includes only `simp` and `simp_all`, just like the flexible linter, and does not take the further step of removing unused `simp` arguments. The style guide specifies that > a simp call is terminal if it closes the current goal or is only followed by flexible tactics and this linter complies with this by checking not only for "literal terminal" tactics that are syntactically the last to close a goal but also for "block terminal" tactics that are only followed by tactics permitted to follow a flexible tactic. (This terminology is not standard, but is a nice suggestion by @adomani) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-linter 109/1 Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean 3 8 ['SnirBroshi', 'chenson2018', 'github-actions'] nobody
1-40904
1 day ago
10-63651
10 days ago
10-63417
10 days
37317 vihdzp
author:vihdzp
feat: a topology with a basis of clopens is completely regular --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 11/0 Mathlib/Topology/Separation/CompletelyRegular.lean 1 2 ['github-actions', 'themathqueen'] urkud
assignee:urkud
1-37515
1 day ago
2-29672
2 days ago
2-29438
2 days
35976 Phelixh
author:Phelixh
feat: add add Liu's uncertainty theory foundations (core/distribution/process modules) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 2374/0 Mathlib.lean,Mathlib/Uncertainty/Base.lean,Mathlib/Uncertainty/BaseCore.lean,Mathlib/Uncertainty/BaseDistribution.lean,Mathlib/Uncertainty/BaseProcess.lean,Mathlib/Uncertainty/Uncertainty.lean 6 26 ['Phelixh', 'copilot-pull-request-reviewer', 'github-actions'] nobody
1-34017
1 day ago
1-34084
1 day ago
1-39147
1 day
36994 JovanGerb
author:JovanGerb
chore(RefinedDiscrTree/Lookup): remove reference counting workaround This PR removes the awkward handling of exceptions in `getMatch`. The reasoning originally was that I wanted to allow in-place mutations in the trie array. But this is not possible anyways, because it lives in a multi-threaded ref, so it cannot be used linearly. See also https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.5Bcache.5D.20attribute/near/576556138 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta maintainer-merge 9/14 Mathlib/Lean/Meta/RefinedDiscrTree.lean,Mathlib/Lean/Meta/RefinedDiscrTree/Lookup.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/Widget/LibraryRewrite.lean 4 2 ['github-actions', 'joneugster'] alexjbest
assignee:alexjbest
1-32940
1 day ago
8-22254
8 days ago
8-22020
8 days
37324 homeowmorphism
author:homeowmorphism
chore(GroupTheory/FinitelyPresentedGroup): add co-authors In the light of the discussions on the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Finitely.20Presented.20Groups/with/566934375) and #36996, it seems sensible to add @kbuzzard and @tb65536 as co-authors in recognition for their work designing the finitely presented group implementation. Please let me know if you think this is appropriate. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 2/2 Mathlib/GroupTheory/FinitelyPresentedGroup.lean 1 5 ['SnirBroshi', 'github-actions', 'homeowmorphism', 'kbuzzard', 'themathqueen'] tb65536
assignee:tb65536
1-30718
1 day ago
1-85328
1 day ago
2-1219
2 days
37236 chenson2018
author:chenson2018
feat: `TryThis` suggestion for the `mergeWithGrind` linter This PR changes the `mergeWithGrind` linter to provide a `TryThis` suggestion. The same message is provided as the currently logged warning, and should still be processed properly by `zulip_build_report.sh` during the weekly linting, just under `info` instead of `warning`. The motivation here (discussed in [#general > automatically apply code actions](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/automatically.20apply.20code.20actions/with/581065286)) is that following #36712 we should be able to partially automate the weekly linting PRs using Skimmer. As an example, the changes in #37018 were prepared in part in this way. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 22/4 Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean 2 3 ['chenson2018', 'github-actions', 'joneugster'] dwrensha
assignee:dwrensha
1-30306
1 day ago
4-13857
4 days ago
4-13623
4 days
36739 mbkybky
author:mbkybky
feat(RingTheory): UFD criteria via height `1` prime ideals and localization We prove the following UFD criteria via height `1` prime ideals and localization: 1. Let `R` be a Noetherian domain. Then `R` is a UFD if and only if every height `1` prime ideal is principal. 2. Let `R` be a Noetherian domain, `x ∈ R` be a prime element. If `Rₓ` is a UFD, then `R` is also a UFD. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 134/2 Mathlib.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/UFD.lean,Mathlib/RingTheory/Localization/Away/Basic.lean 4 2 ['github-actions', 'tb65536'] mattrobball
assignee:mattrobball
1-29773
1 day ago
14-24947
14 days ago
14-25221
14 days
36773 adomasbaliuka
author:adomasbaliuka
feat(Tactic/Linter): lint unwanted unicode Add a text-based style linter that checks all unicode characters. Provides automatic replacements for some disallowed characters. Unicode is very versatile and useful for Lean and Mathlib. However, it is also very complex and few people have a thorough understanding of all its pitfalls (I don't claim to be one of them). In order to avoid unpleasant surprises going forward, both accidental and malicious, we should keep track of which Unicode characters are allowed in Mathlib. In programming and cybersecurity, there are many known [issues and attacks concerning unicode](https://en.wikipedia.org/wiki/Unicode#Security_issues). Many open source repositories have been hit by such attacks, which are becoming ever more frequent due to the use of automation using e.g. large language models. Some notable ones: - [homograph attacks](https://en.wikipedia.org/wiki/IDN_homograph_attack): confusion caused by use of distinct characters which look the same (we probably don't want to fully address this and this PR does not attempt to) - [Trojan Source](https://en.wikipedia.org/wiki/Trojan_Source): abuse of bidirectional characters. Characters used by languages with right-to-left reading direction can cause code to be displayed differently than it is parsed. (This PR tries to address this) - Exploits involving Private Use Area characters, e.g. [GlassWorm](https://abit.ee/en/cybersecurity/viruses-trojans-and-other-malware/glassworm-github-supply-chain-attack-unicode-solana-malware-npm-vs-code-2026-en). (This PR tries to address this) Co-authored-by: Michael Rothgang @grunweg Co-authored-by: Jon Eugster @joneugster --- Continues work from #16215 (due to PRs now being made from forks). Discussed at [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Whitelist.20for.20Unicode.3F/near/448721083) Note: the script was added due to reviewer comment in #16215. Perhaps that is overkill here. - [x] depends on: #36811 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-linter 252/75 Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean,MathlibTest/LintStyle.lean,scripts/README.md,scripts/extract-unique-nonascii.lean 6 24 ['adomasbaliuka', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] joneugster
assignee:joneugster
1-29716
1 day ago
1-29717
1 day ago
6-4218
6 days
35569 goliath-klein
author:goliath-klein
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): deprecate `injectiveSeminorm` This PR: * Deprecates `PiTensorProduct.injectiveSeminorm` and supporting lemmas. * Moves the theory of `liftEquiv` from InjectiveSeminorm.lean to ProjectiveSeminorm.lean. No changes are introduced beyond adding deprecation notices, adapting docstrings, and moving material between files. The PR leaves InjectiveSeminorm.lean almost empty. A new implementation of `injectiveSeminorm`, one which reflects the common mathematical definition, is to be done. This is the third in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633). --- - [ ] depends on: #35567 - [ ] depends on: #35568 Deprecations: - injectiveSeminorm - dualSeminorms_bounded - injectiveSeminorm_apply - norm_eval_le_injectiveSeminorm - injectiveSeminorm_le_projectiveSeminorm - injectiveSeminorm_tprod_le Preliminary work toward a reimplementation is at #33969. I've added Davood and myself to the "Authors" field, as we have now significantly refactored this module. Co-authored-by: Davood H. T. Tehrani [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 221/232 Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean 2 5 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
1-28914
1 day ago
1-28938
1 day ago
2-60920
2 days
37298 artie2000
author:artie2000
refactor(Algebra/Order): unbundle group and ring cone * Unbundle `GroupCone` and `RingCone` using `Submonoid.IsMulPointed` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
136/31 Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Ring/Cone.lean 2 2 ['artie2000', 'github-actions'] nobody
1-21722
1 day ago
1-21783
1 day ago
1-22104
1 day
37341 harahu
author:harahu
doc(LinearAlgebra): fix typos These typos were found and fixed by Claude Opus 4.6. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
13/13 Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/JordanChevalley.lean 2 1 ['github-actions'] nobody
1-21203
1 day ago
1-21285
1 day ago
1-21051
1 day
35072 vasnesterov
author:vasnesterov
feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for `Seq`: `FriendlyOperation` API This is a continuation of #34311. This PR adds more API about friendly operations: * Basic friendly operations constructions * `FriendlyOperation.destruct`: a "coinductive destructor" for `FriendlyOperation` --- This is a part of the `compute_asymptotics` tactic (#28291). [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data t-meta 141/2 Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean 1 34 ['Vierkantor', 'github-actions', 'joneugster', 'vasnesterov'] joneugster
assignee:joneugster
1-17695
1 day ago
1-17697
1 day ago
21-8707
21 days
36871 psinary-sketch
author:psinary-sketch
feat(Analysis/Analytic): nonvanishing in punctured neighborhood from derivative Add AnalyticAt.eventually_ne_nhdsWithin_of_deriv_ne_zero: if f is analytic at x and f'(x) ≠ 0, then f(w) ≠ f(x) in a punctured neighborhood of x. No hypothesis on f(x) needed — stronger than the version in #36778. Placed in Order.lean per review feedback from @wwylele. Split from #36778 (2 of 3). AI disclosure: Lean code developed with Claude (Anthropic) assistance in workflow. Mathematical content and proof strategies are original. All code verified locally with lake env lean before submission. t-analysis new-contributor LLM-generated 13/1 Mathlib/Analysis/Analytic/Order.lean 1 4 ['github-actions', 'mathlib-merge-conflicts'] j-loreaux
assignee:j-loreaux
1-17600
1 day ago
3-2721
3 days ago
10-33369
10 days
37344 vihdzp
author:vihdzp
feat: monotone function `Cardinal → α` is eventually constant --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory t-order 57/0 Mathlib.lean,Mathlib/Logic/Small/Basic.lean,Mathlib/SetTheory/Cardinal/EventuallyConst.lean 3 3 ['github-actions', 'vihdzp', 'wwylele'] nobody
1-12921
1 day ago
1-15466
1 day ago
1-17391
1 day
32282 jsm28
author:jsm28
feat(Geometry/Euclidean/Angle/Incenter): unoriented angle bisection Add lemmas giving unoriented angles involving the incenter and excenters of a triangle as expressions involving dividing angles of the triangle by 2, deduced from oriented bisection lemmas. --- - [ ] depends on: #30981 - [ ] depends on: #30982 - [ ] depends on: #31205 - [ ] depends on: #32019 - [ ] depends on: #32021 - [ ] depends on: #32259 - [ ] depends on: #32260 - [ ] depends on: #32270 - [ ] depends on: #32273 - [ ] depends on: #32278 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 98/0 Mathlib/Geometry/Euclidean/Angle/Incenter.lean 1 8 ['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] JovanGerb
assignee:JovanGerb
1-11615
1 day ago
3-19146
3 days ago
3-19648
3 days
35069 A-M-Berns
author:A-M-Berns
feat(Geometry/Polygon): simple polygons and boundary map This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution. - [x] depends on: #34598 --- new-contributor t-euclidean-geometry LLM-generated 360/0 Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean 4 30 ['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'jsm28', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] jsm28
assignee:jsm28
1-11485
1 day ago
33-21048
33 days ago
35-55100
35 days
33928 jsm28
author:jsm28
feat(Combinatorics/Tiling/TileSet): indexed families of tiles Define the type `TileSet` for indexed families of tiles (in a discrete context), and some associated definitions (including `symmetryGroup`) and API lemmas. `TileSet` can be used for tilings of the whole space; for tilings of part of the space; for patches of tiles (extracted from a tiling by considering tiles meeting some set of points, or considered on their own without extracting from a tiling); for multiple tilings (covering the space more than once). In particular, the fact that people study multiple tilings provides a clear justification for using indexed families rather than sets of tiles, and basic definitions and API lemmas generally work for all these different uses of `TileSet` (sometimes with weak constraints such as tiles being finite, nonempty and only having finitely many tiles meeting any point of the space). Definitions for saying e.g. "this `TileSet` is a tiling of the whole space" are to be included in subsequent files in subsequent PRs. From AperiodicMonotilesLean. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 460/0 Mathlib.lean,Mathlib/Combinatorics/Tiling/TileSet.lean 2 23 ['Parcly-Taxel', 'b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] b-mehta
assignee:b-mehta
1-10345
1 day ago
76-12300
76 days ago
76-12066
76 days
37346 euprunin
author:euprunin
chore: golf using `grind` The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `✅️ SimpleGraph.Walk.IsPath.getVert_injOn`: unchanged 🎉 * `✅️ SimpleGraph.Walk.length_bypass_le`: unchanged 🎉 * `✅️ Rat.floor_intCast_div_natCast`: unchanged 🎉 * `✅️ InnerProductGeometry.norm_eq_of_angle_sub_eq_angle_sub_rev_of_angle_ne_pi`: unchanged 🎉 * `✅️ padicNorm.zero_of_padicNorm_eq_zero`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 6/38 Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Data/Rat/Floor.lean,Mathlib/Geometry/Euclidean/Triangle.lean,Mathlib/NumberTheory/Padics/PadicNorm.lean 4 1 ['github-actions'] nobody
1-5055
1 day ago
1-5121
1 day ago
1-4887
1 day
37006 hakii6
author:hakii6
feat(LinearAlgebra/Matrix/Block, Analysis/Normed/Algebra/MatrixExponential): add BlockTriangular.pow and BlockTriangular.exp # Summary Add BlockTriangular.pow and BlockTriangular.exp for proving "det (exp A) = exp (trace A)" # Which part using LLM The part I used LLM is for 1. Searching duplicated theorems and lemmas I may missed (I already search them myself first). 2. Help me handle the "variables and signatures", the "letI" part, some of lemmas and theorems trivial but hard to find the true one. 3. After I finished, let them helped me check the structure match the disciplines of mathlib. 4. Check the steps PR match the disciplines of mathlib Most things above are done by me first, then let them to make sure I'm not missing something. # More context More context can be found in a topic in "# new member" in Zulip [#new members > (Matrix and NormedSpace.exp) | det (exp A) = exp (trace A)](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/.28Matrix.20and.20NormedSpace.2Eexp.29.20.7C.20det.20.28exp.20A.29.20.3D.20exp.20.28trace.20A.29/with/580964688) new-contributor LLM-generated 54/1 Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/Topology/Instances/Matrix.lean 3 59 ['SnirBroshi', 'eric-wieser', 'github-actions', 'hakii6', 'wwylele'] nobody
1-1014
1 day ago
3-3982
3 days ago
7-81373
7 days
32983 JovanGerb
author: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 `⊃`/`>`. Some notes: - The idea is to later extend this feature to other set notation constants, such as union/intersection. - There are some types for which we cannot use `LE.le` as the underlying constant, because the API has already been developed in core using `HasSubset.Subset`. For example List. So, the elaborator for the `⊆` notation needs to make a decision for which underlying constant to elaborate to, depending on the type. Sometimes the type is not known yet, which makes things awkward. Most of these cases are solved by delaying the elaboration until later when the type is known. However, in some cases this doesn't work either, such as `simp_rw [and_comm (_ ⊆ _)]`, where it is impossible to tell the type when elaborating the term. So, some such cases need to be fixed by making it `simp_rw [and_comm (_ ≤ _)]`. - Dot notation on the `HasSubset.Subset` namespace now doesn't work anymore, and the names need to be put in the `LE.le` namespace instead. - Various `simp` and `gcongr` tags needed to be removed/updated as a result of this change. See also https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F/near/579333629 --- - [x] depends on: #36633 - [x] depends on: #36734 - [x] depends on: #36782 - [x] depends on: #37012 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data t-meta 542/428 Mathlib.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/GroupWithZero/Action/Pointwise/Finset.lean,Mathlib/Algebra/GroupWithZero/Action/Pointwise/Set.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/MvPolynomial/Monad.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Group/FunctionSeries.lean,Mathlib/Analysis/SpecialFunctions/Log/Summable.lean,Mathlib/CategoryTheory/CofilteredSystem.lean,Mathlib/CategoryTheory/Topos/Sheaf.lean,Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean,Mathlib/Combinatorics/Hall/Basic.lean,Mathlib/Combinatorics/Matroid/Basic.lean,Mathlib/Combinatorics/Matroid/Constructions.lean,Mathlib/Combinatorics/Matroid/Dual.lean,Mathlib/Combinatorics/Matroid/Rank/Cardinal.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Combinatorics/SetFamily/KruskalKatona.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean,Mathlib/Data/Finset/BooleanAlgebra.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Filter.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Lattice/Basic.lean,Mathlib/Data/Finset/Option.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Finset/SDiff.lean,Mathlib/Data/Finset/Sups.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Data/Multiset/ZeroCons.lean,Mathlib/Data/Rat/Star.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Card.lean,Mathlib/Data/Set/Defs.lean,Mathlib/Data/Set/Disjoint.lean,Mathlib/Data/Set/Finite/Basic.lean,Mathlib/Data/Set/FiniteExhaustion.lean,Mathlib/Data/Set/Notation.lean,Mathlib/Data/Set/Semiring.lean,Mathlib/Data/Set/Sups.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Dynamics/Ergodic/Ergodic.lean,Mathlib/Dynamics/FixedPoints/Prufer.lean,Mathlib/GroupTheory/CosetCover.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/Lean/Expr/ExtraRecognizers.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean,Mathlib/Logic/Equiv/PartialEquiv.lean,Mathlib/MeasureTheory/Covering/LiminfLimsup.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Measure/AEDisjoint.lean,Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/Prokhorov.lean,Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/MeasureTheory/Measure/Stieltjes.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean,Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean,Mathlib/MeasureTheory/SetSemiring.lean,Mathlib/NumberTheory/WellApproximable.lean,Mathlib/Order/Birkhoff.lean,Mathlib/Order/BooleanAlgebra/Set.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/Filter/AtTopBot/Finset.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/CountableInter.lean,Mathlib/Order/Filter/Ker.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Interval/Finset/Defs.lean,Mathlib/Order/LiminfLimsup.lean,Mathlib/Order/PrimeSeparator.lean,Mathlib/Order/RelClasses.lean,Mathlib/Probability/Process/HittingTime.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean,Mathlib/RingTheory/Spectrum/Prime/Module.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/PSet.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SetNotation.lean,Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean,Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean,Mathlib/Topology/Algebra/Nonarchimedean/TotallyDisconnected.lean,Mathlib/Topology/Category/TopCat/Limits/Konig.lean,Mathlib/Topology/Compactness/SigmaCompact.lean,Mathlib/Topology/ExtremallyDisconnected.lean,Mathlib/Topology/Instances/CantorSet.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean,Mathlib/Topology/MetricSpace/Ultra/Basic.lean,Mathlib/Topology/Order/HullKernel.lean 106 9 ['JovanGerb', 'github-actions', 'joneugster', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] joneugster
assignee:joneugster
0-83920
23 hours ago
2-42746
2 days ago
2-61175
2 days
31662 edwin1729
author:edwin1729
feat(Topology/Order): topological basis of scott topology on Complete… …PartialOrder --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) for this PR. (1/2) PRs in domain theory, proving that scott topologies over Algebraic DCPOs (`CompletePartialOrder`) are sober. The main reference is [Renata, Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf). But the statements can also be found in the canonical text [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf) This first PR proves two prerequisites, namely: - the specialization order induced by the scott topology corresponds to the existing order of the DCPO. Prop 3.1.5 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.2(1) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf) - the upward closures of compact elements of the DCPO form a topological basis for the Scott Topology. Prop 3.5.2 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.6(2) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf) - [x] depends on: #33061 **The next PR is here:** #31670 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 239/1 Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib 4 66 ['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] urkud
assignee:urkud
0-81355
22 hours ago
23-36332
23 days ago
30-2415
30 days
35813 joelriou
author: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 an attempt at cleaning up the code in https://github.com/joelriou/mathlib4/blob/jriou_localization/Mathlib/Algebra/Homology/Factorizations/CM5a.lean) - [x] depends on: #36931 - [x] depends on: #36593 - [x] depends on: #35931 - [x] 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 237/15 Mathlib/Algebra/Homology/Factorizations/CM5a.lean 1 6 ['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] robin-carlier
assignee:robin-carlier
0-81354
22 hours ago
1-31918
1 day ago
1-31684
1 day
35912 WenrongZou
author:WenrongZou
feat(RingTheory/FormalGroup): definition and examples of formal group --- Definition of one dimensional formal group law over commutative ring and some examples of formal group law. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 197/0 Mathlib.lean,Mathlib/RingTheory/FormalGroup/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,docs/references.bib 4 19 ['WenrongZou', 'erdOne', 'github-actions', 'wwylele'] erdOne, jcommelin, mattrobball
assignee:jcommelin assignee:erdOne assignee:mattrobball
0-81354
22 hours ago
3-13035
3 days ago
16-52087
16 days
37305 eric-wieser
author:eric-wieser
feat: `Matrix.hadamard_kronecker_hadamard` This is the earliest file that imports both operators. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy
label:t-algebra$
10/0 Mathlib/LinearAlgebra/Matrix/Vec.lean 1 4 ['eric-wieser', 'github-actions', 'themathqueen'] dagurtomas
assignee:dagurtomas
0-81351
22 hours ago
2-58966
2 days ago
2-58731
2 days
37306 eric-wieser
author:eric-wieser
chore: generalize `Matrix.dotProduct_vecMul_hadamard` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) easy t-algebra
label:t-algebra$
1/1 Mathlib/LinearAlgebra/Matrix/Hadamard.lean 1 2 ['github-actions', 'themathqueen'] dagurtomas
assignee:dagurtomas
0-81351
22 hours ago
2-58609
2 days ago
2-58374
2 days
37327 ldct
author:ldct
feat: `Complex.tan, Complex.tanh` are meromorphic From the AlexKontorovich/PrimeNumberTheoremAnd project --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 33/0 Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Meromorphic.lean 2 1 ['github-actions'] j-loreaux
assignee:j-loreaux
0-81349
22 hours ago
1-6212
1 day ago
1-5977
1 day
37332 joelriou
author:joelriou
feat(AlgebraicTopology/SimplicialSet): more on nondegenerate simplices of the standard simplex --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology 154/0 Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/AlgebraicTopology/SimplicialSet/Simplices.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/Data/Finset/BooleanAlgebra.lean,Mathlib/Order/Fin/Basic.lean 5 1 ['github-actions'] robin-carlier
assignee:robin-carlier
0-81347
22 hours ago
1-55058
1 day ago
1-54823
1 day
37334 joelriou
author:joelriou
feat(AlgebraicTopology/SimplicialSet): evaluation on subcomplexes In this PR, given a simplicial set `X` and `j : SimplexCategoryᵒᵖ`, we define a functor `evaluation X j : X.Subcomplex ⥤ Set (X.obj j)`, and use it to show that the functor `Subcomplex.toSSetFunctor` which sends a subcomplex of `X` to the corresponding simplicial set preserves filtered colimits. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology 67/0 Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/SubcomplexEvaluation.lean 3 1 ['github-actions'] robin-carlier
assignee:robin-carlier
0-81346
22 hours ago
1-54111
1 day ago
1-53876
1 day
37335 joelriou
author:joelriou
feat(AlgebraicTopology/SimplicialSet): induction principles for nondegenerate simplices --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology 101/0 Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean,Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplicesSubcomplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/Simplices.lean 3 1 ['github-actions'] robin-carlier
assignee:robin-carlier
0-81345
22 hours ago
1-53900
1 day ago
1-53665
1 day
37347 JovanGerb
author:JovanGerb
feat: implementation of `@[use_set_notation]` This PR is the implementation part of #32983, without using the feature yet. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 261/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SetNotation.lean,MathlibTest/Delab/Subset.lean 4 1 ['github-actions'] alexjbest
assignee:alexjbest
0-81343
22 hours ago
1-701
1 day ago
1-466
1 day
37349 kim-em
author:kim-em
feat(Analysis/Polynomial/MahlerMeasure): Landau's inequality and Mignotte bound This PR extracts Landau's inequality as a standalone theorem and adds the Mignotte coefficient bound for polynomial factors. Landau's inequality (`mahlerMeasure_le_sqrt_sum_sq_norm_coeff`) states that the Mahler measure of a polynomial is at most `√(∑ ‖coeff i‖²)`. This was previously buried as an intermediate step inside the proof of `mahlerMeasure_le_sqrt_natDegree_add_one_mul_supNorm`, which is now a short corollary. The Mignotte bound (`norm_coeff_le_choose_mul_mahlerMeasure_mul`) says that if `f = g * h` with `M(h) ≥ 1`, then `‖g.coeff n‖ ≤ C(deg g, n) · M(f)`. The hypothesis `M(h) ≥ 1` holds in particular for nonzero integer polynomials (via `one_le_mahlerMeasure`, also added here). This is the classical bound used in Berlekamp–Zassenhaus polynomial factorization. New declarations: - `one_le_mahlerMeasure` - `mahlerMeasure_le_sqrt_sum_sq_norm_coeff` - `le_mahlerMeasure_mul_right` / `le_mahlerMeasure_mul_left` - `norm_coeff_le_choose_mul_mahlerMeasure_mul` The ℓ² norm is stated explicitly as `√(∑ i ∈ p.support, ‖p.coeff i‖ ^ 2)` with a TODO to restate using a dedicated polynomial ℓ² norm once one is defined (cf. the TODO in `Mathlib.Analysis.Polynomial.Norm`). 🤖 Prepared with [Claude Code](https://claude.ai/code) t-analysis 58/20 Mathlib/Analysis/Polynomial/MahlerMeasure.lean 1 2 ['github-actions', 'mathlib-bors'] nobody
0-80594
22 hours ago
0-80640
22 hours ago
0-80709
22 hours
37336 mbkybky
author:mbkybky
feat(RingTheory/Polynomial): some lemmas about `Ideal.leadingCoeff` Add some lemmas about [Ideal.leadingCoeff](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Polynomial/Basic.html#Ideal.leadingCoeff). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 54/1 Mathlib/RingTheory/Polynomial/Basic.lean 1 3 ['github-actions', 'wwylele'] nobody
0-78776
21 hours ago
0-78835
21 hours ago
1-30156
1 day
37299 XC0R
author:XC0R
feat(NumberTheory): Chebyshev's lower bound on primorial ## Summary Prove `primorial(n) ≥ 2^(n/2)` for all `n ≥ 2` (Chebyshev's 1852 lower bound). This is the lower bound complement to `primorial_le_four_pow`. Addresses the TODO at `Chebyshev.lean` line 50: "Prove Chebyshev's lower bound." ### New file: `Mathlib/NumberTheory/PrimorialLowerBound.lean` **Main theorems:** - `two_pow_le_primorial`: `2 ^ n ≤ primorial (2 * n)` for `n ≥ 29` - `two_pow_div_two_le_primorial`: `2 ^ (n / 2) ≤ primorial n` for `n ≥ 2` **Key intermediates:** - `centralBinom_le_pow_mul_primorial`: `C(2n,n) ≤ (2n)^{π(√(2n)+1)} * primorial(2n)` - `eight_mul_sq_add_le_two_pow`: `8u² + 16u + 8 ≤ 2^u` for `u ≥ 10` ### Proof technique Central binomial decomposition: from `four_pow_lt_mul_centralBinom` and `factorization_choose_le_log`, bound `C(2n,n)` above by `(2n)^{π(√(2n)+1)} * primorial(2n)`. Rearranging gives `primorial(2n) ≥ 2^n` for `n ≥ 29`. Base cases by `norm_num` + `decide`, large `n` analytically via `√n` factoring. ### AI disclosure Claude (Anthropic) was used as a coding assistant for Lean tactic exploration, file structuring, and CI debugging. All proof strategy, mathematical content, and final code have been reviewed and are understood by the author. t-number-theory new-contributor 234/0 Mathlib.lean,Mathlib/NumberTheory/PrimorialLowerBound.lean,Mathlib/NumberTheory/SmoothNumbers.lean 3 21 ['MichaelStollBayreuth', 'Parcly-Taxel', 'XC0R', 'github-actions', 'wwylele'] MichaelStollBayreuth
assignee:MichaelStollBayreuth
0-77026
21 hours ago
2-78923
2 days ago
2-78803
2 days
37353 SnirBroshi
author:SnirBroshi
feat(Order/WellFounded): characterize `WellFoundedLT` and `IsWellOrder` in terms of nonempty sets --- Both of these use the existing characterization of `WellFounded`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 19/0 Mathlib/Order/WellFounded.lean 1 1 ['github-actions'] nobody
0-74500
20 hours ago
0-74253
20 hours ago
0-75915
21 hours
37354 SnirBroshi
author:SnirBroshi
feat(Order/Defs/PartialOrder): `(a < b ↔ b < a) ↔ (a ≤ b ↔ b ≤ a)` in `Preorder`s Relate the predicates {`a < b`, `b < a`, `a ≤ b`, `b ≤ a`}. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 12/0 Mathlib/Order/Defs/PartialOrder.lean 1 1 ['github-actions'] nobody
0-74353
20 hours ago
0-74107
20 hours ago
0-75555
20 hours
37351 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra/ModuleCat): lemma for projective dimension eq zero Projective dimension of nontrivial projective module is zero. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
10/3 Mathlib/Algebra/Category/ModuleCat/ProjectiveDimension.lean 1 1 ['github-actions'] nobody
0-73879
20 hours ago
0-78708
21 hours ago
0-78473
21 hours
37355 Thmoas-Guan
author:Thmoas-Guan
feat(RingTheory): refactor `smulShortComplex` Use `LinearMap.lsmul` for the `f` of `ModuleCat.smulShortComplex`, also providing new APIs for it. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 40/20 Mathlib/RingTheory/Regular/Category.lean 1 1 ['github-actions'] nobody
0-72805
20 hours ago
0-73722
20 hours ago
0-73487
20 hours
37356 BryceT233
author:BryceT233
feat(RingTheory): add three lemmas This PR adds the following three lemmas: * `Polynomial.exists_mul_sq_add_linear_part_eq_eval_add`: this is an alternative version of `Polynomial.eval_add_of_sq_eq_zero` and is used in the lemma `IsLocalRing.eq_of_eval_eq_zero_of_not_isUnit_sub`. * An instance that an artinian local ring is adic complete with respect to its maximal ideal. * `IsLocalRing.eq_of_eval_eq_zero_of_not_isUnit_sub`: this is [stacks [06RR]](https://stacks.math.columbia.edu/tag/06RR) which shows the uniqueness of the lift of a simple root given by the henselian property. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 40/4 Mathlib/Algebra/Polynomial/Taylor.lean,Mathlib/RingTheory/AdicCompletion/Noetherian.lean,Mathlib/RingTheory/Henselian.lean 3 1 ['github-actions'] nobody
0-72738
20 hours ago
0-72711
20 hours ago
0-72719
20 hours
37258 YaelDillies
author:YaelDillies
refactor(Order/OmegaCompletePartialOrder): make `Chain` a `structure` It has a different `LE` to `OrderHom`, hence should not be an `abbrev`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 43/38 Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean 4 12 ['YaelDillies', 'YellPika', 'github-actions', 'vihdzp'] nobody
0-61886
17 hours ago
0-61948
17 hours ago
3-7570
3 days
36764 euprunin
author:euprunin
chore: golf using `grind` The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `DirectSum.lequivCongrLeft_lof`: unchanged 🎉 * `AnalyticOnNhd.preimage_mem_codiscreteWithin`: unchanged 🎉 * `mem_permsOfList_of_mem`: unchanged 🎉 * `PNat.mod_le`: unchanged 🎉 * `Computation.map_parallel`: unchanged 🎉 * `Sigma.curry_update`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 10/42 Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/Seq/Parallel.lean,Mathlib/Data/Sigma/Basic.lean 6 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
0-54848
15 hours ago
0-54873
15 hours ago
13-30403
13 days
35697 gasparattila
author:gasparattila
chore: call `dsimp` in the default tactics of `Homeomorph` fields --- This will also reduce the breakage in #35548. - [x] depends on: #35607 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 11/79 Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.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 10 6 ['github-actions', 'grunweg', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
0-52890
14 hours ago
4-5617
4 days ago
4-5382
4 days
37037 mariainesdff
author:mariainesdff
feat(RingTheory/PowerSeries/Substitution): add lemmas Co-authored by: @AntoineChambert-Loir. --- - [x] depends on: #36444 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 68/0 Mathlib/RingTheory/PowerSeries/Substitution.lean 1 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
0-51223
14 hours ago
0-51248
14 hours ago
0-75552
20 hours
36745 EtienneC30
author:EtienneC30
feat: a process with independent increments and Gaussian marginals is Gaussian The new file only provides one public declaration that corresponds to the title of the PR. The rest of the file is an implementation detail to show that the finite dimensional marginals of a process can be written as a linear map of the increments. --- - [x] depends on: #36674 - [x] depends on: #36718 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) brownian t-measure-probability file-removed 160/1 Mathlib.lean,Mathlib/Probability/Distributions/Gaussian/Basic.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/Probability/Independence/Process/HasIndepIncrements/Basic.lean,Mathlib/Probability/Independence/Process/HasIndepIncrements/IsGaussianProcess.lean 5 2 ['github-actions', 'mathlib-dependent-issues'] nobody
0-50928
14 hours ago
0-50931
14 hours ago
0-51030
14 hours
37362 euprunin
author:euprunin
chore: golf using `grind` The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `✅️ isUnit_iff_not_dvd_char_of_ringChar_ne_zero`: unchanged 🎉 * `✅️ Complex.HadamardThreeLines.sSupNormIm_scale_right`: 499 ms before, 434 ms after 🎉 Profiled using `set_option trace.profiler true in`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 3/12 Mathlib/Algebra/CharP/CharAndCard.lean,Mathlib/Analysis/Complex/Hadamard.lean 2 1 ['github-actions'] nobody
0-48813
13 hours ago
0-48883
13 hours ago
0-48648
13 hours
33715 AntoineChambert-Loir
author: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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
259/4 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 6 8 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] nobody
0-45745
12 hours ago
0-45499
12 hours ago
0-48681
13 hours
37343 xgenereux
author:xgenereux
feat: add coe instances for spectrums This PR adds `Coe` instances for the type `PrimeSpectrum` and similar. For `P: PrimeSpectrum`, this means that when lean expects `Ideal A`, we can directly write `P : Ideal A` instead of `P.asIdeal`. The `.asIdeal` gets inserted automatically. At the moment, I haven't set up the `@[coe]` to make delab into `↑P` - it simply shows `P.asIdeal` in the infoview. If we want the `↑P` I can add it. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 9/0 Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Spectrum/Maximal/Defs.lean,Mathlib/RingTheory/Spectrum/Prime/Defs.lean 3 2 ['faenuccio', 'github-actions'] faenuccio
assignee:faenuccio
0-39697
11 hours ago
1-17839
1 day ago
1-17604
1 day
36979 Komyyy
author:Komyyy
feat: `↑(Nat.log m n) = Ordinal.log ↑m ↑n` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 12/3 Mathlib/SetTheory/Ordinal/Exponential.lean 1 18 ['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] nobody
0-37736
10 hours ago
6-41924
6 days ago
8-7951
8 days
37369 joelriou
author:joelriou
feat(Algebra/Category/ModuleCat/Presheaf): the colimit module of a presheaf of modules on a cofiltered category --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 254/0 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/ColimitFunctor.lean,Mathlib/CategoryTheory/Filtered/FinallySmall.lean 3 1 ['github-actions'] nobody
0-36211
10 hours ago
0-36286
10 hours ago
0-36051
10 hours
37370 joelriou
author:joelriou
feat(Algebra/Category/ModuleCat): the category of presheaves of modules is symmetric (When the presheaf of rings is commutative.) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory t-algebra
label:t-algebra$
32/3 Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean 1 1 ['github-actions'] nobody
0-35116
9 hours ago
0-35203
9 hours ago
0-34968
9 hours
36501 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(RingTheory/GradedAlgebra/Homogeneous/RingQuot): graded structure on the quotient of a graded ring by a homogeneous ideal Define the graded structure on the quotient of a graded ring by a homogeneous ideal Co-authored with: @mariainesdff (This is WIP because it still needs some `erw`, various instances do not seem to match, and the overall structure has to be cleaned-up. - Maybe define the graded structure on the quotient of a graded module by a homogeneous submodule. - There is also an issue of working with ring congruences rather than with ideals. ) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
600/2 Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Data/DFinsupp/BigOperators.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/RingQuot.lean 5 9 ['AntoineChambert-Loir', 'chrisflav', 'eric-wieser', 'github-actions'] nobody
0-35045
9 hours ago
0-35126
9 hours ago
0-34904
9 hours
37107 Vierkantor
author:Vierkantor
chore(Tactic): rewrite `positivity` tactic and `@[positivity]` attr docstrings This PR rewrites the docstrings for the `positivity` tactic and `@[positivity]` attribute, to consistently match the official style guide, to make sure they are complete while not getting too long. The goal was to make it clearer what an extension does exactly, and document how to write one in the `@[positivity]` docstring. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) documentation t-meta 39/8 Mathlib/Tactic/Positivity/Core.lean 1 3 ['Vierkantor', 'github-actions', 'j-loreaux'] JovanGerb
assignee:JovanGerb
0-34867
9 hours ago
0-34919
9 hours ago
2-58267
2 days
37024 vihdzp
author:vihdzp
feat: simplify ℵ₁ ≤ c to ℵ₀ < c We simplify `c < ℵ₁` to `c ≤ ℵ₀` and `ℵ₁ ≤ c` to `ℵ₀ < c`, under the logic that there is more to be said about ℵ₀ (the least infinite cardinal, etc.) than there is about ℵ₁, characterized only by being the successor to ℵ₀. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory maintainer-merge 42/32 Counterexamples/Phillips.lean,Mathlib/Order/Filter/CardinalInter.lean,Mathlib/Order/Filter/Cocardinal.lean,Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Pigeonhole.lean 5 8 ['YaelDillies', 'github-actions', 'vihdzp'] nobody
0-34303
9 hours ago
0-46801
12 hours ago
7-47724
7 days
36649 JovanGerb
author:JovanGerb
chore(CategoryTheory/Adjunction/Basic): use `dsimp%` in definition The theorems `left_triangle_components` and `right_triangle_components` are only well typed up to unfolding the `Functor.id` and `Functor.comp` in `unit` and `counit`. This PR uses `dsimp%` to make sure the implicit arguments have `Functor.id` and `Functor.comp` unfolded where possible. This came up because `to_dual` complained that `left_triangle_components` and `right_triangle_components` aren't actually dual in `reducible` transparency. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 16/16 Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean,Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean,Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Adjunction/Triple.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean,Mathlib/CategoryTheory/Monad/Monadicity.lean,Mathlib/CategoryTheory/Shift/Adjunction.lean,Mathlib/Topology/Sheaves/Skyscraper.lean 8 3 ['JovanGerb', 'github-actions'] nobody
0-34287
9 hours ago
16-5122
16 days ago
16-5676
16 days
36892 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(RingTheory/MvPowerSeries/NoZeroDivisors): simplify the proof by adding two instances Add two instances proposed by @eric-wieser : - `WellFoundedLT.wellOrderingRel` : `WellOrderingRel.isWellOrder` satisfies `WellFoundedLT` - `WellFoundedGT.swap` : If a linear order `l` satisfies `WellFoundedLT`, then `l.swap` satisfies `WellFoundedGT`. They clarify the proof of `MvPowerSeries.NoZeroDivisors` that the power series rings over a ring without zero divisors has no zero divisors. Ref. [#mathlib4 > help in RingTheory.MvPowerSeries.NeZeroDivisors](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/help.20in.20RingTheory.2EMvPowerSeries.2ENeZeroDivisors/with/580586392) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 10/3 Mathlib/Order/RelClasses.lean,Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean,Mathlib/SetTheory/Cardinal/Order.lean 3 3 ['JovanGerb', 'github-actions', 'vihdzp'] nobody
0-34265
9 hours ago
10-55796
10 days ago
10-55561
10 days
30551 smmercuri
author:smmercuri
feat: `NumberField.InfinitePlace.sum_inertiaDeg_eq_finrank` If `L/K` are number fields number fields and `v : InfinitePlace K`, then the sum of inertia degrees of `w : InfinitePlace L` lying over `v` is the degree of `L` over `K`. --- - [x] depends on: #27978 - [x] depends on: #27974 - [x] depends on: #29942 - [x] depends on: #29946 - [x] depends on: #36132 - [x] depends on: #36257 - [x] depends on: #36268 - [x] depends on: #36353 - [x] depends on: #36393 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 196/7 Mathlib.lean,Mathlib/NumberTheory/NumberField/Completion/InfinitePlace.lean,Mathlib/NumberTheory/NumberField/Completion/LiesOverInstances.lean,Mathlib/NumberTheory/NumberField/Completion/Ramification.lean 4 9 ['github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] nobody
0-34226
9 hours ago
9-58239
9 days ago
9-58014
9 days
37172 DavidLedvinka
author:DavidLedvinka
feat(Analysis): add resolvent derivatives in the algebra component I would take suggestions for better names. t-analysis 30/5 Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean 1 5 ['DavidLedvinka', 'github-actions', 'j-loreaux'] nobody
0-34202
9 hours ago
4-7511
4 days ago
5-13223
5 days
36721 yoh-tanimoto
author:yoh-tanimoto
refactor(LinearAlgebra/LinearPMap): generalize (partially) to semilinear maps replace `LinearPMap.toFun : domain →ₗ[R] F` by `domain →ₛₗ[σ] F`, in order to allow semilinear maps, in particular conjugate-linear maps. TODO: to define graph of a semilinear map, one has to consider twisted modules #35877 see discussion https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60SemilinearPMap.60/with/576451756 t-algebra
label:t-algebra$
183/159 Mathlib/Algebra/Module/Injective.lean,Mathlib/Analysis/Convex/Cone/Extension.lean,Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/Topology/Algebra/Module/LinearPMap.lean 5 13 ['botbaki-review', 'github-actions', 'mathlib-merge-conflicts', 'mcdoll', 'yoh-tanimoto'] nobody
0-34192
9 hours ago
5-2569
5 days ago
14-41151
14 days
37177 JovanGerb
author:JovanGerb
perf(Analysis/Normed/Module/Ball/Action): add `SMul` shortcut instances There was an unexpected slowdown after I cleaned up the instances on `UnitDisc`. This PR gets the file back up to speed by adding some shortcut instances. I tried to generalize this solution to other instances, but sadly it had no significant benefits there. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt t-analysis 16/6 Mathlib/Analysis/Normed/Module/Ball/Action.lean 1 6 ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-bors'] nobody
0-34168
9 hours ago
5-4172
5 days ago
5-3956
5 days
36416 j-loreaux
author:j-loreaux
feat(Analysis/CStarAlgebra): norms of sums of orthogonal selfadjoint elements --- - [ ] depends on: #36407 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 84/0 Mathlib/Algebra/Star/BigOperators.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean 2 8 ['github-actions', 'grunweg', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'themathqueen'] nobody
0-33803
9 hours ago
5-19211
5 days ago
5-37321
5 days
36592 Vierkantor
author:Vierkantor
chore(Tactic): rewrite `introv` tactic docstring This PR rewrites the docstrings for the `introv` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long. In particular, I wanted to clarify exactly what `introv` does and does not introduce, depending on the list of names given to it. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) documentation t-meta 22/19 Mathlib/Tactic/Basic.lean 1 10 ['Vierkantor', 'dwrensha', 'github-actions', 'joneugster'] dwrensha
assignee:dwrensha
0-33138
9 hours ago
0-33138
9 hours ago
14-45127
14 days
37371 kebekus
author:kebekus
feat: formulate identity principle for meromorphic functions on topologically perfect subsets Add a simple, but useful, reformulation of the identity principle for meromorphic functions on topologically perfect subsets. To facilitate application, establish (closures of) open subsets in perfect topological spaces are preperfect sets. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 43/0 Mathlib/Analysis/Meromorphic/Divisor.lean,Mathlib/Analysis/Meromorphic/IsolatedZeros.lean,Mathlib/Topology/Perfect.lean 3 1 ['github-actions'] nobody
0-32495
9 hours ago
0-32495
8 hours ago
0-32260
8 hours
37010 pion2024
author:pion2024
`Sl2`update: add theorem `finrank_weightSpace_eq_one_of_isIrreducible` # Background: I am a 2nd year undergrad student in mathematics currently self-teaching Lie algebra and representation theory. Before starting the formalization, I searched for related keywords on Zulip and in the GitHub issues and commits. As far as I could tell, there were no existing results or ongoing attempts before I started. All feedback is welcome. Even a quick check on the statement design/an idea on the generalization (cf Limitations below) would be incredibly helpful. # Overview In this PR, I added the new section `IsAlgClosedIrreducible` which formalizes the well-known theorem `finrank_weightSpace_eq_one_of_isIrreducible` for the Lie algebra $\mathfrak{sl}_2$ step by step. It proves that for a finite-dimensional irreducible representation of $\mathfrak{sl}_2$ over an algebraically closed field $K$ of characteristic zero, every non-trivial weight space has a dimension of exactly 1. # Formalization Structure : Instead of relying on explicit finite sums (`Finset.sum`) and manipulating coefficients, I heavily leverage Mathlib's abstractions in Submodule Lattice Theory and Coordinate-free Linear Algebra. The formalization proceeds in the following logic: 1. Existence of a Primitive Vector (`exists_primitiveVector`): I construct a primitive (highest-weight) vector by showing that repeated applications of the raising operator $e$ must eventually yield zero due to the finite-dimensionality of $M$ and the linear independence of eigenvectors corresponding to distinct eigenvalues. 2. The span of $f$-Tower as a Lie Submodule equals to the whole space (`fTowerLieSubmodule_eq_top`): I define the $f$-tower submodule as the $K$-span of $\{f^k m \mid k \in \mathbb{N}\}$. By proving its closure under the action of $f, h$, and $e$, I establish it as a Lie submodule. Since $M$ is irreducible, this submodule must be the entire space ($\top$). 3. Submodule Lattice Operations (`exists_mem_fTower_of_weightSpace_ne_bot`): To prove that every weight in $M$ is of the form $\mu_0 - 2k$, I use lattice operations (iSup, inf, and Disjoint) to avoid element-wise tracking. Since the $f$-tower spans $M$, the supremum of its weight spaces is $\top$. By leveraging `Module.End.eigenspaces_iSupIndep`, I show that any arbitrary non-trivial weight space would have a trivial intersection with $\top$ if its weight didn't belong to the sequence, yielding a contradiction. 4. Dimension Calculation via Basis Equivalence (`finrank_weightSpace_eq_one_of_isIrreducible`): Finally, I construct a basis from the non-zero elements of the $f$-tower. To show the weight space is 1-dimensional, I use `Basis.equivFun` to compare coefficients algebraically. This avoids heavy manual indexing and index-shifting, proving that any vector in the weight space $\mu_0 - 2k$ is merely a scalar multiple of $f^k m$. # Use of AI: I used Gemini 3.1 Pro for tactics, theorems, improvement suggestions, and error explanations. I fully understand and can vouch for all the modifications I have made to the file. # Limitations: I only managed to formalize the finite-dimensional version, although the theorem also holds in the infinite-dimensional case. In the infinite case the existence of a primitive vector is not guaranteed. A quick search suggests that we might need heavy tools like Casimir operators and the universal enveloping algebra, which are totally beyond my current level. I am looking into it, but since there is a significant mathematical gap, I thought it would be best to get this finite-dimensional version merged first. new-contributor t-algebra large-import
label:t-algebra$
354/0 Mathlib/Algebra/Lie/Sl2.lean 1 4 ['github-actions', 'mathlib-bors'] nobody
0-32084
8 hours ago
0-84468
23 hours ago
0-85545
23 hours
37373 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Sum): add `LocallyFinite (G ⊕g H)` instance --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 11/0 Mathlib/Combinatorics/SimpleGraph/Sum.lean 1 3 ['SnirBroshi', 'github-actions', 'themathqueen'] nobody
0-29999
8 hours ago
0-33482
9 hours ago
0-33247
9 hours
36869 harahu
author:harahu
doc(Computability/RegularExpressions): tidy docstrings Issues found and fixed by Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability maintainer-merge 6/6 Mathlib/Computability/RegularExpressions.lean 1 6 ['YaelDillies', 'github-actions', 'harahu'] nobody
0-27367
7 hours ago
0-27411
7 hours ago
11-10781
11 days
37271 Whysoserioushah
author:Whysoserioushah
chore(RepresentationTheory/FiniteIndex): generalize universes --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
41/39 Mathlib/RepresentationTheory/FiniteIndex.lean 1 19 ['Whysoserioushah', 'eric-wieser', 'github-actions', 'leanprover-radar', 'riccardobrasca'] nobody
0-25711
7 hours ago
0-44064
12 hours ago
2-261
2 days
36491 aditya-ramabadran
author:aditya-ramabadran
feat(Analysis/Distribution): define Dirac delta distribution Defines Dirac delta distribution (classical) Closes #36464 * Note: Used `continuous_eval_const` in defining Delta in Distribution.lean, rather than the way it's done in TemperedDistribution.lean (which could also work) * Also chose to define for $x \in \Omega$ rather than all $x \in E$, can make the other way if that's better? --- **Testing**: ```lean example (x : E) : Continuous fun φ : 𝓓^{n}(Ω, F) => φ x := continuous_eval_const x ``` Lean builds successfully [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 32/0 Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/Distribution.lean,Mathlib/Analysis/Distribution/TestFunction.lean 3 12 ['ADedecker', 'aditya-ramabadran', 'github-actions'] j-loreaux
assignee:j-loreaux
0-25184
6 hours ago
0-25201
6 hours ago
6-8260
6 days
33375 kex-y
author:kex-y
feat(Probability): Local and stable properties Defines local and stable properties which is useful for local martingales. Co-authored-by: @RemyDegenne --- - [x] depends on: #33371 - [x] depends on: #33374 - [x] depends on: #33372 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) brownian t-measure-probability 383/0 Mathlib.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/Probability/Process/LocalProperty.lean 3 68 ['EtienneC30', 'github-actions', 'kex-y', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] EtienneC30
assignee:EtienneC30
0-24346
6 hours ago
0-24346
6 hours ago
9-56620
9 days
36895 loefflerd
author:loefflerd
feat(Analysis/Complex/UpperHalfPlane): SL(2, R) action is proper Show that the actions of `SL(2, ℝ)` and `GL(2, ℝ)` on the upper half-plane are continuous in both variables, and the action of `SL(2, ℝ)` is proper. --- - [ ] depends on: #36904 - [ ] depends on: #36942 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 177/0 Mathlib.lean,Mathlib/Algebra/Group/Action/Pretransitive.lean,Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/Analysis/Complex/UpperHalfPlane/ProperAction.lean,Mathlib/Topology/Algebra/Group/Matrix.lean 5 10 ['ADedecker', 'github-actions', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] j-loreaux
assignee:j-loreaux
0-22070
6 hours ago
6-2308
6 days ago
6-9356
6 days
37380 tb65536
author:tb65536
feat(RingTheory/Localization/BaseChange): tensor product commutes with localizations This PR adds a few isomorphisms for tensor products commuting with localizations. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
51/0 Mathlib/RingTheory/Localization/BaseChange.lean 1 1 ['github-actions'] nobody
0-22011
6 hours ago
0-22011
6 hours ago
0-21778
6 hours
36698 ghseeli
author:ghseeli
feat(Combinatorics/Enumerative): Latin squares This PR defines Latin rectangles and Latin squares and proves an extension theorem using Hall's Marriage Theorem. ## Main results - `group_to_cayley_table`: every finite group `G` yields a `LatinSquare G G`. - `latin_rectangle_extends_one_row`: a (non-square) `LatinRectangle` extends to a `LatinRectangle` with one more row. This is an application of **Hall's Marriage Theorem**, `hallMatchingsOn.nonempty`. - `latin_rectangle_extends_to_latin_square`: a `LatinRectangle` extends to a `LatinSquare`. This is included in a new file `Combinatorics/Enumerative/LatinSquare.lean`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 688/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/LatinSquare.lean,docs/references.bib 3 73 ['SnirBroshi', 'cjrl', 'eric-wieser', 'ghseeli', 'github-actions', 'vlad902'] nobody
0-21926
6 hours ago
2-77670
2 days ago
12-61364
12 days
37383 vihdzp
author:vihdzp
chore(SetTheory/Ordinal/FixedPointApproximants): simpler definition for `lfpApprox` We simplify the definition of `Ordinal.lfpApprox` - the old definition wasn't even simp-normal. We then golf the entire API using it. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory t-order 67/120 Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean 1 1 ['github-actions'] nobody
0-21283
5 hours ago
0-21258
5 hours ago
0-21157
5 hours
37382 tb65536
author:tb65536
feat(RingTheory/TensorProduct/Quotient): add flipped version of `tensorQuotientEquiv` This PR adds the isomorphism `(A ⧸ I) ⊗[R] T ≃ₐ[S] (A ⊗[R] T) ⧸ I.map (algebraMap A (A ⊗[R] T))` which is just the flipped version of the existing isomorphism `A ⊗[R] (T ⧸ I) ≃ₐ[S] (A ⊗[R] T) ⧸ I.map includeRight`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
19/0 Mathlib/RingTheory/TensorProduct/Quotient.lean 1 1 ['github-actions'] nobody
0-21023
5 hours ago
0-21023
5 hours ago
0-20790
5 hours
37372 vihdzp
author:vihdzp
chore: golf `Cardinal.mul_eq_self` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 30/42 Mathlib/SetTheory/Cardinal/Arithmetic.lean 1 1 ['github-actions'] nobody
0-21002
5 hours ago
0-34460
9 hours ago
0-34225
9 hours
36283 Vierkantor
author:Vierkantor
chore(Tactic/GRewrite): rewrite `grw` family tactic docstrings This PR rewrites the docstrings for tactics in the `grw` family: `grw`, `grewrite`, `apply_rw`, `apply_rewrite`, `nth_rw` and `nth_rewrite`, to consistently match the official style guide, to make sure they are complete while not getting too long. The `grw` tactic docstring was nice and complete, but the others were very brief and needed expansion (especially since it took me quite some time to understand the motivation behind `apply_rw`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) documentation t-meta 150/23 Mathlib/Tactic/GRewrite/Elab.lean 1 20 ['JovanGerb', 'Vierkantor', 'github-actions', 'joneugster'] adamtopaz
assignee:adamtopaz
0-20881
5 hours ago
0-35421
9 hours ago
21-28420
21 days
37375 NoneMore
author:NoneMore
feat(SetTheory/Ordinal/FixedPointApproximants): add zero and limit lemmas for approximants Add helper lemmas `lfpApprox_zero`, `lfpApprox_limit`, and the corresponding `gfpApprox` lemmas by duality. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory new-contributor 26/0 Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean 1 7 ['github-actions', 'vihdzp'] nobody
0-20043
5 hours ago
0-32325
8 hours ago
0-32090
8 hours
37115 tb65536
author:tb65536
feat(RingTheory/Flat/Basic): `Submodule.toBaseChange` as a `LinearEquiv` If the extensions of rings is flat, then `Submodule.toBaseChange` becomes a `LinearEquiv`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
20/0 Mathlib/RingTheory/Flat/Basic.lean 1 3 ['github-actions', 'robin-carlier', 'tb65536'] nobody
0-20011
5 hours ago
0-20038
5 hours ago
3-14863
3 days
37374 NoneMore
author:NoneMore
feat(Topology/DerivedSet): add relative derived set lemmas Add `relDerivedSet`, `relDerivedSet_subset`, and `IsClosed.relDerivedSet_eq`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 12/0 Mathlib/Topology/DerivedSet.lean 1 3 ['github-actions', 'vihdzp'] nobody
0-19808
5 hours ago
0-32371
8 hours ago
0-32136
8 hours
37322 gw90
author:gw90
chore: minor edits to GNS construction files --- Fixing a typo in a docstring and making some edits for concision. No API changes. new-contributor 26/23 Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean,Mathlib/Topology/Algebra/LinearMapCompletion.lean 2 5 ['github-actions', 'themathqueen'] nobody
0-19462
5 hours ago
0-75655
20 hours ago
2-6965
2 days
36560 harahu
author:harahu
doc(FieldTheory): fix typos Found by `PyCharm`'s code inspection tool. Fixes were made by Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
15/14 Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean,Mathlib/FieldTheory/RatFunc/Luroth.lean,Mathlib/FieldTheory/SeparablyGenerated.lean 4 7 ['artie2000', 'github-actions', 'harahu', 'joelriou', 'mathlib-merge-conflicts', 'vihdzp'] joelriou
assignee:joelriou
0-18211
5 hours ago
0-18211
4 hours ago
17-83747
17 days
36549 j-loreaux
author:j-loreaux
refactor: use `IsMulCommutative` ubiquitously for subobjects [#mathlib4 > commutativity of subobjects](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/commutativity.20of.20subobjects/with/578039488) The algebraic hierarchy is designed so that commutativity (e.g., of multiplication) is bundled into the type class, so that we have, for example `Group` and `CommGroup`, `Ring` and `CommRing`, etc. It is often the case that one may desire to work with a commutative subobject inside an ambient noncommutative type. In cases like `Subgroup.center` or `Subring.center`, the subobject is *always* commutative, and in these cases one should simply imbue those subobjects (coerced to `Type`) with the appropriate `Comm*` instance. However, in other cases, the commutativity of the subobject may be conditional on commutativity of some other object. For example, `Subgroup.closure s` is not always commutative, but it is when `s` is a commutative subset. Likewise, if `S : Subgroup G` is a commutative subgroup, then `S.topologicalClosure` is also commutative. For such scenarios, users should prefer to use the unbundled `IsMulCommutative` typeclass, and to provide theorems such as: ```lean theorem isMulCommutative_closure {G : Type*} [Group G] {k : Set G} (hcomm : ∀ x ∈ k, ∀ y ∈ k, x * y = y * x) : IsMulCommutative (closure k) ``` or even *instances* such as ```lean instance Subgroup.instIsMulCommutative_closure {S G : Type*} [Group G] [SetLike S G] [MulMemClass S G] (s : S) [IsMulCommutative s] : IsMulCommutative (closure (s : Set G)) ``` and ```lean instance Subgroup.isMulCommutative_topologicalClosure [T2Space G] (s : Subgroup G) [IsMulCommutative s] : IsMulCommutative s.topologicalClosure ``` Note that we prefer to name these instances manually because they are occasionally useful as theorems. For example, the proof of the topological closure instance for subgroups above is proved immediately from the one for monoids via: `s.toSubmonoid.isMulCommutative_topologicalClosure`. In practice, we wish to be able to use the library of theorems about (bundled) commutativity for subobjects as well, and so we also provide instances which take as input the unbundled `Group G` and `IsMulCommutative G` and produce the bundled `CommGroup G`. However, to avoid deleterious effects to type class synthesis for bundled commutativity (by forcing Lean to search the entirery of both the bundled and unbundled hierarchies), these instances are only available inside the `IsMulCommutative` scope and are simultaneously given the very low priority `50`. --- - [ ] depends on: #36546 - [ ] depends on: #36547 - [ ] depends on: #36548 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
576/133 Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Group/Subsemigroup/Defs.lean,Mathlib/Algebra/HierarchyDesign.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/CategoryTheory/Center/Linear.lean,Mathlib/CategoryTheory/Center/NegOnePow.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean,Mathlib/Data/ZMod/QuotientGroup.lean,Mathlib/FieldTheory/Galois/Abelian.lean,Mathlib/GroupTheory/Focal.lean,Mathlib/GroupTheory/IsPerfect.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/GroupTheory/SchurZassenhaus.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/GroupTheory/SpecificGroups/ZGroup.lean,Mathlib/GroupTheory/Subgroup/Centralizer.lean,Mathlib/GroupTheory/Submonoid/Centralizer.lean,Mathlib/GroupTheory/Subsemigroup/Centralizer.lean,Mathlib/GroupTheory/Transfer.lean,Mathlib/NumberTheory/NumberField/CMField.lean,Mathlib/RepresentationTheory/AlgebraRepresentation/Basic.lean,Mathlib/RepresentationTheory/Irreducible.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/NonUnitalAlgebra.lean,Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean,Mathlib/Topology/Algebra/StarSubalgebra.lean 37 5 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] ocfnash
assignee:ocfnash
0-15014
4 hours ago
0-15035
4 hours ago
11-240
11 days
36638 CoolRmal
author:CoolRmal
feat: if `f` lies in a closed convex set `s` almost everywhere, then its conditional expectation also lies in `s` almost everywhere --- - [x] depends on: #27953 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 54/3 Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean 1 4 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] EtienneC30
assignee:EtienneC30
0-14961
4 hours ago
11-82356
11 days ago
11-82621
11 days
35830 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Data/Nat/Choose/Multinomial): multinomial coefficients Define the multinomial coefficients, a variant of `Nat.multinomial`. - redefine `Multiset.multinomial`. Given a multiset `m` of natural numbers, `m.multinomial` is the multinomial coefficient defined by (m.sum) ! / ∏ i ∈ m, m i !. As an example, `Multiset.multinomial {1, 2, 2} = 30`. This is the exponent of $x y^2 z^2$ in $(x+y+z)^5$. This should not be confused with the existing `Multiset.multinomial` which gives a different answer, for example, `Multiset.multinomial {1, 2, 2} = 3`. This function is renamed as `Multiset.countPerms`. - `Multiset.multinomial_cons` proves that `(x ::ₘ m).multinomial = Nat.choose (x + m.sum) x * m.multinomial` - `Multiset.multinomial_add` proves that `(m + m').multinomial = Nat.choose (m + m').sum m.sum * m.multinomial * m'.multinomial` co-authored with @mariainesdff --- - [x] depends on: #36611 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data blocked-by-core-release 122/1 Mathlib/Data/List/ToFinsupp.lean,Mathlib/Data/Nat/Choose/Multinomial.lean 2 25 ['AntoineChambert-Loir', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] joneugster
assignee:joneugster
0-14863
4 hours ago
0-46433
12 hours ago
20-86398
20 days
36378 EtienneC30
author:EtienneC30
refactor: define the geometric distribution via a sum of Dirac masses Change the definition of `geometricMeasure p` to be `Measure.sum (fun n ↦ ENNReal.ofReal ((1 - p) ^ n * p)) • (.dirac n))` instead of using `PMF`. This allows to directly use API for measures instead of having to develop an API for `PMF`, which anyway is defined as a sum of Dirac masses. Also add some results about integrals against the geometricMeasure. --- - [x] depends on: #36355 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability large-import 135/25 Mathlib/MeasureTheory/Measure/Dirac.lean,Mathlib/Probability/Distributions/Geometric.lean 2 40 ['DavidLedvinka', 'EtienneC30', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'pfaffelh'] RemyDegenne
assignee:RemyDegenne
0-14717
4 hours ago
5-53232
5 days ago
21-32691
21 days
36495 AlexKontorovich
author:AlexKontorovich
chore(Finset/NatDivisors): refactor `card_divisors_mul` and `sum_divisors_mul` to not rely on `ArithmeticFunction` `Nat.Coprime.card_divisors_mul` and `Nat.Coprime.sum_divisors_mul` are moved to not rely on `ArithmeticFunction`. See zulip discussion here: [#mathlib4 > Library design question, e.g.`Nat.Coprime.card_divisors_mul` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Library.20design.20question.2C.20e.2Eg.2E.60Nat.2ECoprime.2Ecard_divisors_mul.60/near/577769899) Co-authored-by: Ziyan Wei and Aayush Rajasekaran --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-number-theory t-algebra
label:t-algebra$
45/14 Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Data/Finset/NatDivisors.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean 3 2 ['AlexKontorovich', 'github-actions'] alreadydone
assignee:alreadydone
0-14442
4 hours ago
19-14457
19 days ago
19-14222
19 days
35710 tb65536
author:tb65536
feat(AlgebraicGeometry/EllipticCurve/Reduction): define split multiplicative reduction This PR adds the definition of split multiplicative reduction. --- - [x] depends on: #35709 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-algebraic-geometry t-number-theory
label:t-algebra$
13/0 Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean 1 8 ['Multramate', 'github-actions', 'mathlib-dependent-issues', 'riccardobrasca', 'tb65536'] riccardobrasca
assignee:riccardobrasca
0-13959
3 hours ago
11-44672
11 days ago
11-44482
11 days
36478 TJHeeringa
author:TJHeeringa
feat(Analysis/Matrix): Added Schur's product Added Schur's product, i.e. the Hadamard product of two finite positive semi-definite matrices is again a positive semi-definite matrix. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 32/0 Mathlib/Analysis/Matrix/Order.lean,Mathlib/LinearAlgebra/Matrix/Hermitian.lean 2 16 ['TJHeeringa', 'eric-wieser', 'github-actions', 'j-loreaux', 'themathqueen'] urkud
assignee:urkud
0-13021
3 hours ago
0-57978
16 hours ago
2-38979
2 days
37319 PrParadoxy
author:PrParadoxy
feat(Algebra/Field/Power): weaken assumptions of Odd.neg_zpow The lemmas `Even.neg_zpow` and `Even.neg_one_zpow` are stated assuming `[DivisionMonoid α] [HasDistribNeg α]`. However, `Odd.neg_zpow` and `Odd.neg_one_zpow` currently assume the stronger `[DivisionRing α]`. This PR weakens the assumption of the `Odd` lemmas to match their `Even` counterparts. --- According to the docstring, the purpose of `Mathlib.Algebra.Field.Power` is to define `Field` with minimal imports. But after this PR, Power.lean does not rely on `Mathlib.Algebra.Field.Defs` any more. Arguably, it could be deprecated. The two results in the file could be stated in `Mathlib.Algebra.Ring.Int.Parity` without any extra imports. Should we implement this in the current or an additional PR? Examples: ``` -- these all work: example (z : ℤ) (h : Even z) : (-1 : ℂ)^z = 1 := Even.neg_one_zpow h example (z : ℤ) (h : Even z) : (-1 : unitary ℂ)^z = 1 := Even.neg_one_zpow h example (z : ℤ) (h : Odd z) : (-1 : ℂ)^z = -1 := Odd.neg_one_zpow h -- but this fails without the PR: example (z : ℤ) (h : Odd z) : (-1 : unitary ℂ)^z = -1 := Odd.neg_one_zpow h ``` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 16/10 Mathlib/Algebra/Field/Power.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean 2 6 ['eric-wieser', 'github-actions', 'goliath-klein'] nobody
0-12468
3 hours ago
2-18242
2 days ago
2-20806
2 days
37338 vihdzp
author:vihdzp
chore(Logic/Equiv/Fin/Rotate): generalize from `Fin (n + 1)` to `Fin n` We can infer `NeZero n` if we already have `i : Fin n`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data t-logic maintainer-merge 27/16 Mathlib/Geometry/Polygon/Basic.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean 2 6 ['github-actions', 'grunweg', 'leanprover-radar'] nobody
0-12223
3 hours ago
1-24053
1 day ago
1-25520
1 day
37388 xgenereux
author:xgenereux
feat(FunctionField): constant extensions are finite Let `F` be a function field over `Fq`. If `E` is an algebraic extension of `Fq` which is contained in `F` then it is finite over `Fq`. To implement this, we model the following tower of extensions: ``` E(X) - F / \ | E[X] Fq(X) / \ / E Fq[X] \ / Fq ``` by assuming algebra hypotheses on the level of `Fq[X]` and `E[X]` and use ``` attribute [local instance] Polynomial.algebra ``` together with the scoped `RatFunc` instances `RatFunc.liftAlgebra` and `RatFunc.isScalarTower_liftAlgebra` to obtain the appropriate algebra instances from `RatFunc Fq/E`. One annoying thing is that using these instances creates a diamond with `RatFunc.instSMulOfFractionRingPolynomial`, I am working on trying to find a fix but don't have anything at the moment. I am open to suggestions! Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 64/0 Mathlib/NumberTheory/FunctionField.lean,docs/references.bib 2 1 ['github-actions'] nobody
0-10580
2 hours ago
0-10637
2 hours ago
0-10679
2 hours
36262 CBirkbeck
author:CBirkbeck
feat(NumberTheory/ModularForms): modular discriminant as a cusp form ## Summary This PR constructs the modular discriminant `Δ(z) = η(z)^24` and proves it is a cusp form of weight 12 and level 1. The dominated convergence for infinite products is proved by reducing to the additive Tannery theorem via the formal expansion `∏ (1 + f i) = ∑ₛ ∏ᵢ∈ₛ f i`. ### New files - `Mathlib/Analysis/Normed/Ring/InfiniteProd.lean`: Dominated convergence theorem for infinite products of the form `∏' k, (1 + f n k)` in a complete normed commutative ring, proved via Tannery's theorem. - `Mathlib/NumberTheory/ModularForms/Discriminant.lean`: The modular discriminant `Δ`, its q-expansion, non-vanishing, and slash-invariance under the generators of SL(2,ℤ). ### New declarations in existing files - `Real.prod_one_add_le_exp_sum` in `Mathlib/Analysis/Complex/Exponential.lean`: `∏ᵢ∈ₛ (1 + f i) ≤ exp(∑ᵢ∈ₛ f i)` for nonneg `f`. - `summable_finset_prod_of_summable_nonneg` in `Mathlib/Analysis/SpecialFunctions/Log/Summable.lean`: if `f` is nonneg and summable, then `∑ₛ ∏ᵢ∈ₛ f i` is summable. - `summable_finset_prod_of_summable_norm` in `Mathlib/Analysis/SpecialFunctions/Log/Summable.lean`: normed ring version of the above. ### Key results - `ModularForm.discriminantCuspForm`: `Δ` bundled as a `CuspForm (Γ(1)) 12`. - `tendsto_tprod_one_add_of_dominated_convergence`: Dominated convergence for infinite products. ### Note - `ModularForms/Delta.lean` has been renamed to `ModularForms/Discriminant.lean` to be more in line with the literature. --- maintainer-merge 312/152 Mathlib.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Normed/Ring/InfiniteProd.lean,Mathlib/Analysis/SpecialFunctions/Log/Summable.lean,Mathlib/NumberTheory/ModularForms/Cusps.lean,Mathlib/NumberTheory/ModularForms/Delta.lean,Mathlib/NumberTheory/ModularForms/Discriminant.lean,Mathlib/NumberTheory/ModularForms/Identities.lean,Mathlib/NumberTheory/ModularForms/LevelOne.lean 9 23 ['CBirkbeck', 'github-actions', 'loefflerd', 'mathlib-merge-conflicts', 'wwylele'] loefflerd
assignee:loefflerd
0-9702
2 hours ago
7-28388
7 days ago
10-70862
10 days
36752 Ljon4ik4
author:Ljon4ik4
feat: Alternative definition of a tensor product for an algebra Let $A$ be an $R$-algebra and $M$ and $N$ $A$-modules. Then the tensor product $M\otimes_A N$ can be constructed as a quotient of $M\otimes_R N$ by the submodule generated by elements of the shape $am\otimes n - m\otimes an$. This PR realizes this construction and shows that it is isomorphic to the general definition of $M\otimes_A N$. As one consequence we obtain a description of the kernel of `mapOfCompatibleSMul'` as a span of elements of the shape $am\otimes n - m\otimes an$. * I wasn't sure where exactly to put it: Currently it is in `Algebra.TensorProduct`, which I think could be a place for more results of tensor products over algebras in the long term, but maybe some file inside `Mathlib.LinearAlgebra.TensorProduct` could also make sense. * I am not sure if it is very nice to mention 'variable (R A M N)' everywhere, they could also be defined as explicit in the top of the document, and explicitly omitted where unneeded. * The `omit [IsScalarTower R A N] in` was suggested by the linter, I am not sure I understand why * Since the relations contain negation, this procedure only works if some of the ingredients admit negation, one could imagine alternative versions (e.g. when $N$ admits negations and not $M$) but this seemed the most intuitive one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
60/0 Mathlib.lean,Mathlib/Algebra/Algebra/TensorProduct.lean 2 9 ['Ljon4ik4', 'github-actions', 'mathlib-bors', 'ocfnash'] ocfnash
assignee:ocfnash
0-9522
2 hours ago
0-20623
5 hours ago
10-65598
10 days
37009 dupuisf
author:dupuisf
feat(CStarAlgebra): `Ring.inverse` is convex and antitone on strictly positive operators This PR shows that the inverse is operator convex and operator antitone (we had the latter for inverse of elements in `Units`, but not for `Ring.inverse`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 345/19 Mathlib.lean,Mathlib/Algebra/Algebra/StrictPositivity.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/SelfAdjoint.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/ConjSqrt.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/RingInverseOrder.lean 12 58 ['dupuisf', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'themathqueen'] mcdoll
assignee:mcdoll
0-8390
2 hours ago
1-83284
1 day ago
5-19652
5 days
35243 ScottCarnahan
author:ScottCarnahan
refactor(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`. --- The large import is on a module that will be deprecated - I had to add the imports to make the deprecated flags work, but ultimately they will be irrelevant. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-algebra
label:t-algebra$
109/52 Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/PointwiseSMul.lean,Mathlib/Data/Finsupp/PointwiseSMul.lean 3 2 ['github-actions', 'mathlib-merge-conflicts'] ocfnash
assignee:ocfnash
0-7783
2 hours ago
28-62928
28 days ago
33-43632
33 days
37061 tannerduve
author:tannerduve
feat(Computability): rename RecursiveIn to Nat.RecursiveIn and generalize to Primcodable types Rename `RecursiveIn` to `Nat.RecursiveIn` (protected) for the `ℕ →. ℕ` version, and introduce a new `RecursiveIn` that lifts `Nat.RecursiveIn` to partial functions between `Primcodable` types via `liftPrim`. Also adds: - `Nat.PrimrecIn`: primitive recursion relative to oracles - `liftPrim` / `liftPrimrec`: encode typed functions as `ℕ →. ℕ` / `ℕ → ℕ` - `RecursiveIn₂`, `ComputableIn`, `ComputableIn₂`, `PrimrecIn'` - Basic API: `of_eq`, `of_eq_tot`, `subst`, `mono`, `partrec_of_zero`, `partrec_of_none`, `partrec_iff_forall_recursiveIn`, etc. To be merged before #37062 t-computability new-contributor maintainer-merge 235/61 Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean 2 39 ['Komyyy', 'eric-wieser', 'github-actions', 'tannerduve'] nobody
0-7539
2 hours ago
6-25705
6 days ago
7-4933
7 days
36731 michael-novak-math
author:michael-novak-math
feat: add a few basic definitions and classical results about differential geometry of plane curves We define the curvature function, normal vector function and the Frénet moving frame and we prove the Frénet equations for plane curves and the fundamental theorem of plane curves. new-contributor t-differential-geometry t-analysis 635/0 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean,Mathlib/Geometry/PlaneCurves.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,docs/references.bib 5 31 ['Ruben-VandeVelde', 'github-actions', 'grunweg', 'michael-novak-math'] nobody
0-5687
1 hour ago
8-6411
8 days ago
10-78302
10 days
37189 Brian-Nugent
author:Brian-Nugent
feat(AlgebraicGeometry): The pushforward of a quasi-coherent sheaf between affines is quasi-coherent To be more precise, we show that if `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` is an isomorphism then the same holds for the pushforward. This will show that being quasicoherent is stable under pushforward for affine morphisms once it is shown that `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` being an isomorphism is equivalent to being quasicoherent. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 173/1 Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 3 2 ['github-actions'] nobody
0-5084
1 hour ago
0-5111
1 hour ago
0-4876
1 hour
37389 martinwintermath
author:martinwintermath
chore(LinearAlgebra/SesquilinearForm): generalize `orthogonalBilin` in order to simplify definition of `orthogonal` Generalize `Submodule.orthogonalBilin` to `CommSemiring` and `AddCommMonoid`, and to general sesquilinear forms with inputs from different modules. This allows to redefine `BilinForm.orthogonal` in terms of `orthogonalBilin`. A few fixes in other files have been necessary. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
12/13 Mathlib/Algebra/Lie/InvariantForm.lean,Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean 4 1 ['github-actions', 'vihdzp'] nobody
0-4873
1 hour ago
0-8188
2 hours ago
0-8635
2 hours
37390 SnirBroshi
author:SnirBroshi
feat(RingTheory/Int/Basic): `IsCoprime 2 m ↔ Odd m` Matches existing `Nat.Prime` lemmas. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory easy 8/0 Mathlib/RingTheory/Int/Basic.lean 1 1 ['github-actions'] nobody
0-4862
1 hour ago
0-4937
1 hour ago
0-4702
1 hour
37391 grunweg
author:grunweg
wip(create_deprecated_modules): fix some deprecation warnings related… … to the string api Once complete, this PR will make the file build again; it previously failed because it had not been updated for the String API change. TODO in a future PR: add CI which ensures this script builds! (Future future: can we test that we tested all .lean scripts? Or have a test which builds all .lean files in scripts?) One universe error remains (which causes a second error further below). A number of deprecation warnings would require further API changes (and it's unclear to me how much they are worth it). Let us postpone them for now; I'd be happy to disable the deprecation warnings. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt CI 11/9 scripts/create_deprecated_modules.lean 1 2 ['github-actions'] nobody
0-4340
1 hour ago
0-4488
1 hour ago
0-4253
1 hour
37386 gasparattila
author:gasparattila
chore: call `dsimp` in the default tactic of `ContinuousLinearMap` --- This will also reduce the breakage in https://github.com/leanprover-community/mathlib4/pull/35548. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 33/73 Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Distribution/DerivNotation.lean,Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Analysis/Fourier/Notation.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean,Mathlib/Probability/Distributions/Fernique.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Basic.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Independence.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/LinearMapCompletion.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.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/Star.lean,Mathlib/Topology/Algebra/Star/LinearMap.lean,Mathlib/Topology/CompactOpen.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/ContinuousMap/Algebra.lean,Mathlib/Topology/ContinuousMap/Ideals.lean,Mathlib/Topology/Instances/TrivSqZeroExt.lean 35 2 ['github-actions', 'themathqueen'] nobody
0-3788
1 hour ago
0-10902
2 hours ago
0-14484
4 hours
37392 artie2000
author:artie2000
chore(Geometry/Convex/Cone): deprecate `Convex.toCone` * This operation is subsumed by `ConvexCone.coe_hull_of_convex` and the existing closure API for `ConvexCone.hull` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry 15/0 Mathlib/Geometry/Convex/Cone/Basic.lean 1 1 ['github-actions'] nobody
0-3685
1 hour ago
0-3765
58 minutes ago
0-3530
58 minutes
37325 wwylele
author:wwylele
feat(Analysis/InnerProductSpace): transfer lemmas about charpoly/eigenvalues from matrix to linear map These are some lemmas existing for matrix but missing for linear map. Co-authored-by: Aristotle (Harmonic) --- AI usage disclosure: I used Aristotle initially to one-shot the missing lemma `LinearMap.det_eq_prod_eigenvalues`, and then worked manually to break them into small pieces and align them with existing lemmas. Here is a list of correspondence between new lemma and existing ones. Some of these have names and statements that I wouldn't be sure about if I had come up on my own, so I used the existing ones as justification for how they are named / stated - LinearMap.IsSymmetric.charpoly_eq - [Matrix.IsHermitian.charpoly_eq](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Matrix/Spectrum.html#Matrix.IsHermitian.charpoly_eq) - LinearMap.IsSymmetric.roots_charpoly_eq_eigenvalues - [Matrix.IsHermitian.roots_charpoly_eq_eigenvalues₀](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Matrix/Spectrum.html#Matrix.IsHermitian.roots_charpoly_eq_eigenvalues%E2%82%80) - LinearMap.IsSymmetric.sort_roots_charpoly_eq_eigenvalues - [Matrix.IsHermitian.sort_roots_charpoly_eq_eigenvalues₀](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Matrix/Spectrum.html#Matrix.IsHermitian.sort_roots_charpoly_eq_eigenvalues%E2%82%80) - LinearMap.IsSymmetric.eigenvalues_eq_eigenvalues_iff - [Matrix.IsHermitian.eigenvalues_eq_eigenvalues_iff](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Matrix/Spectrum.html#Matrix.IsHermitian.eigenvalues_eq_eigenvalues_iff) - LinearMap.IsSymmetric.splits_charpoly - [Matrix.IsHermitian.splits_charpoly](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Matrix/Spectrum.html#Matrix.IsHermitian.splits_charpoly) - LinearMap.IsSymmetric.det_eq_prod_eigenvalues - [Matrix.IsHermitian.det_eq_prod_eigenvalues](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Matrix/Spectrum.html#Matrix.IsHermitian.det_eq_prod_eigenvalues) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-analysis 64/7 Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/InnerProductSpace/Trace.lean,Mathlib/LinearAlgebra/Eigenspace/Charpoly.lean 3 22 ['github-actions', 'themathqueen', 'wwylele'] j-loreaux
assignee:j-loreaux
0-1556
25 minutes ago
1-80270
1 day ago
1-80035
1 day
37394 wwylele
author:wwylele
feat(Analysis/Hermitian): more lemma to convert between IsHermitian and IsSymmetric Separated from #37325 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 34/16 Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/Matrix/Hermitian.lean,Mathlib/Analysis/Matrix/Spectrum.lean 3 1 ['github-actions'] nobody
0-1444
24 minutes ago
0-1594
22 minutes ago
0-1359
22 minutes
37290 Vtec234
author:Vtec234
ci: remove special support for ProofWidgets4 cloud releases This PR removes special support for ProofWidgets4 cloud releases. See leanprover-community/ProofWidgets4#165. --- CI runs: https://github.com/leanprover-community/mathlib4/actions/runs/23669823972 https://github.com/leanprover-community/mathlib4/actions/runs/23768342866 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 17/223 .github/workflows/build_template.yml,Cache/IO.lean,Cache/Main.lean,Cache/Requests.lean,Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean,Mathlib/Tactic/Widget/Conv.lean,lake-manifest.json,lakefile.lean,scripts/bench/build/run,scripts/verify_version_tags.py 10 13 ['Vtec234', 'bryangingechen', 'github-actions', 'marcelolynch', 'mathlib-bors'] nobody
0-1162
19 minutes ago
0-9454
2 hours ago
3-4717
3 days
37395 Komyyy
author:Komyyy
chore: transparency-defeq of `Primcodable (Fin n)` Found by @JovanGerb 's linter. ([Zulip Link](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/linter.20for.20instance.20diamonds/near/582554439)) The cause of this defeq issue is not `def` of a type, but a type is inferred as `{ i : ℕ // id i < n }` instead of `{ i : ℕ // i < n }`, so the fix is straightforward. This change does not decrease the number of `respectTransparency`, as confirmed by running `python3 ./scripts/rm_set_option.py --files Mathlib/Computability/**`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability tech debt 6/2 Mathlib/Computability/Primrec/Basic.lean 1 0 [] nobody
0-462
7 minutes ago
0-462
3 minutes ago
0-227
3 minutes

New contributors' PRs on the review queue

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
35812 khwilson
author:khwilson
feat(MeasureTheory/Group/GeometryOfNumbers): successive minima and existence of a directional basis Define the successive minima of a discrete subgroup of a real vector space with respect to a convex set. These invariants show up throughout the geometry of numbers and are the focus of Minkowski's Second Theorem (whose statement is left here with a `proof_wanted`). Note: The key lemma is that the "gauge set" of the convex set is closed. I took the approach of showing that it is sequentially closed. There's an alternative approach via showing it's the union of a finite number of closed sets. I personally thought this approach was more intuitive, but the union approach may result in a slightly shorter proof. Co-authored-by: Yaël Dillies --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 392/33 Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Convex/Body.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean 6 3 ['github-actions', 'joneugster'] urkud
assignee:urkud
19-81590
19 days ago
31-70539
31 days ago
31-73270
31 days
36443 Fieldnote-Echo
author:Fieldnote-Echo
feat(Combinatorics/SimpleGraph): add SimpleGraph.ball (open metric ball) Add `SimpleGraph.ball`, the open ball in the graph extended metric. ## Design decisions - **Open ball** (strict `<`, not `≤`): `ball c ⊤` coincides with the connected component of `c`, whereas a closed ball would give `closedBall c ⊤ = univ`. - **Named `SimpleGraph.ball`** (not `eball`): since `dist`-valued balls are less natural for disconnected graphs, the `e` prefix is unnecessary. - **Graph-specific** (not via `PseudoEMetricSpace`): avoids importing `ℝ`. AI assistance: Claude (Opus 4.6) helped draft and iterate on the implementation. I reviewed the code line by line and vouch for the final contents. Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor LLM-generated 59/3 Mathlib/Combinatorics/SimpleGraph/Metric.lean 1 36 ['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk', 'vlad902'] nobody
14-30699
14 days ago
20-29211
20 days ago
20-28976
20 days
34854 GrigorenkoPV
author:GrigorenkoPV
chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` --- Split off from #34853 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 227/194 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
assignee:thorimur
13-28268
13 days ago
13-28294
13 days ago
33-17958
33 days
36786 SproutSeeds
author:SproutSeeds
feat(DoubleCounting): parity of odd-degree vertices in bipartite incidence Adds `odd_card_filter_odd_bipartiteAbove_iff_odd_card_filter_odd_bipartiteBelow` to `Mathlib.Combinatorics.Enumerative.DoubleCounting`. This is the small parity-helper first step for #25231. Validation: - `lake build Mathlib.Combinatorics.Enumerative.DoubleCounting` Supersedes closed #36077 after replaying the helper cleanly on current `master`. AI usage: used Codex for branch recovery, replay onto current `master`, and draft wording; final code choices and verification by me. new-contributor t-combinatorics large-import 17/0 Mathlib/Combinatorics/Enumerative/DoubleCounting.lean 1 2 ['github-actions'] nobody
12-76058
12 days ago
12-76141
12 days ago
12-75906
12 days
36832 KryptosAI
author:KryptosAI
chore(Data/Finset/Card): rename `pred_card_le_card_erase` to `sub_one_card_le_card_erase` ## Summary The name `pred_card_le_card_erase` suggests `Nat.pred` but the statement uses `- 1` (i.e., `Nat.sub 1`). Rename to `sub_one_card_le_card_erase` to match the actual statement. A deprecated alias is added for backwards compatibility. ### Files changed - `Mathlib/Data/Finset/Card.lean` — definition renamed + deprecated alias - `Mathlib/Data/Finset/Powerset.lean` — reference updated - `Mathlib/Combinatorics/Additive/SubsetSum.lean` — reference updated - `Mathlib/Algebra/Polynomial/EraseLead.lean` — reference updated Addresses the `Finset.pred_card_le_card_erase` item in #21584. ## AI disclosure I used Claude Code to explore the codebase (finding all references to rename) and to draft the PR description. I reviewed and understand all changes — these are straightforward renames with a deprecated alias. new-contributor 7/4 Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Powerset.lean 4 2 ['github-actions'] nobody
11-73865
11 days ago
12-37
11 days ago
12-2700
12 days
36886 Deep0Thinking
author:Deep0Thinking
feat(Combinatorics/Enumerative/Bonferroni): add Bonferroni inequalities This PR adds Bonferroni inequalities. Main theorems: - `Finset.indicator_biUnion_le_bonferroniIndicator_of_odd` - `Finset.bonferroniIndicator_le_indicator_biUnion_of_even` - `Finset.card_biUnion_le_bonferroniCard_of_odd` - `Finset.bonferroniCard_le_card_biUnion_of_even` Co-authored-by: Claude (Opus 4.6) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 334/4 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Bonferroni.lean,Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean 3 2 ['github-actions'] nobody
10-30594
10 days ago
10-30681
10 days ago
10-31275
10 days
34227 stepan2698-cpu
author:stepan2698-cpu
feat: If sum of densities is at least one, the sumset covers the naturals Proves an outstanding TODO item from Mathlib.Combinatorics.Schnirelmann : shows that if the sum of two densities is at least one, the sumset covers the positive naturals. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 51/1 Mathlib/Combinatorics/Schnirelmann.lean 1 3 ['github-actions', 'grunweg', 'kbuzzard'] b-mehta
assignee:b-mehta
10-27758
10 days ago
68-1456
68 days ago
68-15324
68 days
36210 vbeffara
author:vbeffara
feat(Combinatorics/SimpleGraph): definitions of graph contraction and graph minor A contraction is the image of a graph through a surjective function with connected fibers, and a minor is a contraction of a subgraph. This PR shows that being a contraction is transitive, but does not show the same for minors because the proof is more involved, it will be in a subsequent PR. The definitions are in `Prop` and do not contain data, but I'm not sure if that was the right choice. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 151/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Contraction.lean,Mathlib/Combinatorics/SimpleGraph/Minor.lean 3 7 ['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vbeffara'] YaelDillies
assignee:YaelDillies
10-26794
10 days ago
11-34721
11 days ago
24-61076
24 days
36677 AlexeyMilovanov
author:AlexeyMilovanov
feat(Computability.Partrec): add computability of Nat.find This PR bridges `Partrec.rfind` with total unbounded search (`Nat.find`). It adds: * `Computable.find`: Proves that `x ↦ Nat.find (h_ex x)` is computable for a computable decidable predicate `P`. * `Computable.rightInverse_of_surjective`: Proves that the right inverse of a computable surjective function is computable. t-computability new-contributor 31/0 Mathlib/Computability/Partrec.lean 1 5 ['AlexeyMilovanov', 'github-actions', 'vlad902'] Komyyy
assignee:Komyyy
9-81591
9 days ago
15-43366
15 days ago
15-43131
15 days
36421 ROTARTSI82
author:ROTARTSI82
feat(RingTheory/IsAdjoinRoot): add mkOfAdjoinEqTop' Alternative hypothesis to existing theorem: prove the result from a `Module.Free `hypothesis instead of `IsIntegrallyClosed`. If `α` generates `S` as an algebra, then `S` is given by adjoining a root of `minpoly R α`. --- Hello, we are the Algebraic Geometry group from the UW Math AI lab, and this is our first PR! This definition of `mkOfAdjoinEqTop'` generalizes the existing `mkOfAdjoinEqTop` and shows the result from `Module.Free` instead of `IsIntegrallyClosed`. It is used in future results that we would like to upstream at https://github.com/uw-math-ai/monogenic-extensions, which is a project to formalize lemmas 3.1 and 3.2 from https://arxiv.org/abs/2503.07846. Co-authored-by: George Peykanu Co-authored-by: Bryan Boehnke Co-authored-by: Bianca Viray <67076332+b-viray@users.noreply.github.com> --> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor large-import t-ring-theory 47/0 Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/RingTheory/IsAdjoinRoot.lean 2 4 ['ROTARTSI82', 'b-viray', 'github-actions'] dupuisf
assignee:dupuisf
9-18326
9 days ago
20-82899
20 days ago
20-82664
20 days
34742 Brian-Nugent
author:Brian-Nugent
feat(SheafCohomology): add API for Sheaf Cohomology Defines the long exact sequence on cohomology associated to a short exact sequence of sheaves `H.longSequence`. Also defines `H.equiv₀`, the additive equivalence between `H F 0` and `((sheafSections J AddCommGrpCat).obj (op T)).obj F` when the category has a terminal object `T`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor large-import t-category-theory 87/3 Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean 3 33 ['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-merge-conflicts'] adamtopaz
assignee:adamtopaz
9-18148
9 days ago
9-18148
9 days ago
47-65368
47 days
33714 idontgetoutmuch
author:idontgetoutmuch
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II Supersedes https://github.com/leanprover-community/mathlib4/pull/33519 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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, ocfnash, sgouezel
assignee:ocfnash assignee:grunweg assignee:sgouezel
8-81582
8 days ago
29-27656
29 days ago
43-57596
43 days
35653 pepamontero
author:pepamontero
feat: add ChartedSpace structure on orbit space feat: add ChartedSpace structure on orbit space Add topological preliminaries for properly discontinuous group actions, and use them to equip the orbit space `orbitRel.Quotient G M` with a `ChartedSpace` structure. In particular: - Show that the quotient map `Quotient.mk _ : M → orbitRel.Quotient G M` is a covering map and hence a local homeomorphism. - Construct chosen local inverses of the quotient map and establish properties over them. - Define a `ChartedSpace` instance on the quotient by composing these local inverses with charts of M. This started as an ItaLean2025 project; here is the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Quotient.20Manifolds/with/575121158) dedicated to it. --- new-contributor t-differential-geometry 186/0 Mathlib.lean,Mathlib/Geometry/Manifold/Instances/OrbitSpace.lean,Mathlib/Topology/Algebra/OrbitSpace.lean 3 2 ['github-actions'] PatrickMassot, ocfnash, sgouezel
assignee:ocfnash assignee:sgouezel assignee:PatrickMassot
8-81581
8 days ago
36-14224
36 days ago
36-14664
36 days
36910 Brian-Nugent
author:Brian-Nugent
feat(CategoryTheory): 4 and 5 lemmas for ComposableArrows 5 Adds versions of the 4 and 5 lemmas for morphisms in `ComposableArrows 5`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory new-contributor 71/2 Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean 1 2 ['github-actions'] adamtopaz
assignee:adamtopaz
8-81566
8 days ago
10-20212
10 days ago
10-19977
10 days
36781 hommmmm
author:hommmmm
feat(RingTheory/UniqueFactorizationDomain): UFD iff height one primes are principal We prove that a Noetherian integral domain is a UFD if and only if every prime ideal of height one is principal (`UniqueFactorizationMonoid.iff_height_one_prime_principal`). ## New declarations * `UniqueFactorizationMonoid.exists_height_one_le_of_finite_height`: given a prime of finite height ≥ 1, there exists a height one prime contained in it. * `UniqueFactorizationMonoid.ne_bot_of_height_one`: an ideal of height one is nonzero. * `UniqueFactorizationMonoid.height_ge_one_of_prime_ne_bot`: the height of a nonzero prime ideal in a domain is at least one. * `UniqueFactorizationMonoid.height_one_prime_principal`: in a UFD, every height one prime is principal. * `UniqueFactorizationMonoid.of_height_one_prime_principal`: every height one prime being principal implies UFD (Noetherian case). * `UniqueFactorizationMonoid.iff_height_one_prime_principal`: the full iff statement. ## References See https://stacks.math.columbia.edu/tag/0AFT ## AI Disclosure This code is written without AI, then uses Claude Code with cameronfreer's [Lean4-skills](https://github.com/cameronfreer/lean4-skills) (specifically, the `review`, `refactor`, and `golf` workflow) for style changes, refactoring and golfing. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor large-import 102/1 Mathlib/RingTheory/UniqueFactorizationDomain/Kaplansky.lean 1 8 ['Thmoas-Guan', 'chrisflav', 'github-actions', 'hommmmm', 'tb65536'] mariainesdff
assignee:mariainesdff
8-12961
8 days ago
8-12962
8 days ago
12-48334
12 days
36785 hommmmm
author:hommmmm
feat(RingTheory/Localization): Nagata's criterion for primality in localization away ## Summary - Add `dvd_of_mem_span_singleton_localization`: if `p` is prime and `p ∤ x`, then membership in the span of the image of `x` in `R[1/p]` implies divisibility by `x`. - Add `prime_of_prime_in_localization` (Nagata's criterion): if `p` is prime, `x` is irreducible, and the image of `x` in `R[1/p]` is prime, then `x` is prime. ## References - [Stacks Project, Tag 0AFU](https://stacks.math.columbia.edu/tag/0afu) ## AI Disclosure This code is written without AI, then uses Claude Code with cameronfreer's [Lean4-skills](https://github.com/cameronfreer/lean4-skills) (specifically, the `review`, `refactor`, and `golf` workflow) for style changes, refactoring and golfing. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 72/0 Mathlib.lean,Mathlib/RingTheory/Localization/Away/Prime.lean 2 4 ['chrisflav', 'github-actions', 'hommmmm'] chrisflav
assignee:chrisflav
8-12961
8 days ago
8-12961
8 days ago
12-39347
12 days
33662 Pjotr5
author:Pjotr5
feat(Algebra/Order/BigOperators/Expect): add lemmas and strict variants ### Summary - Combine `le_expect_nonempty_of_subadditive` and `le_expect_of_subadditive` into a single lemma `le_expect_of_subadditive`. The extra assumptions `(hs : s.Nonempty)` and `(h_zero : m 0 = 0)` are unnecessary (since `m 0 = 0` follows from `h_div`). This requires a small downstream update to `Mathlib/Analysis/RCLike/Basic.lean` (`norm_expect_le`). - Add strict-inequality variants: `expect_lt_expect`, `expect_lt`, `lt_expect`. - Add existence lemmas: `exists_le_of_expect_le_expect`, `exists_le_of_le_expect`, `exists_le_of_expect_le`, and `exists_lt_of_expect_lt_expect`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
46/16 Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Analysis/RCLike/Basic.lean 2 6 ['Pjotr5', 'b-mehta', 'github-actions'] b-mehta
assignee:b-mehta
8-10063
8 days ago
8-10236
8 days ago
83-51541
83 days
34093 YellPika
author:YellPika
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas --- - [x] depends on: #33941 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] Komyyy
assignee:Komyyy
7-81536
7 days ago
54-63897
54 days ago
54-66626
54 days
34182 IlPreteRosso
author:IlPreteRosso
feat(Data/Finsupp/Single, Data/Finsupp/Indicator): Add set_indicator_singleton, indicator_singleton; golfed single_eq_set_indicator, single_eq_indicator [Mathlib.Data.Finsupp.Single](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Single.html#Finsupp.single) - Add `set_indicator_singleton`, golfed `single_eq_set_indicator` [Mathlib.Data.Finsupp.Indicator](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Indicator.html#Finsupp.indicator_apply) - Add `indicator_singleton`, golfed `single_eq_indicator` Continues the work from #34095 large-import t-data new-contributor 17/17 Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean 2 29 ['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] TwoFX
assignee:TwoFX
7-81534
7 days ago
68-69885
68 days ago
68-77643
68 days
34851 dennj
author:dennj
feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization: - `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i` - `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x` - `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i` These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). t-data new-contributor 22/0 Mathlib/Data/Matrix/Mul.lean 1 5 ['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] TwoFX
assignee:TwoFX
7-81527
7 days ago
54-10661
54 days ago
54-10426
54 days
34875 banrovegrie
author:banrovegrie
feat(LinearAlgebra/Matrix): add Sherman-Morrison formula Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap. - Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}` - Add `Matrix.inv_sub_vecMulVec`: subtraction variant - Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses ## Test plan - [x] `lake build` passes - [x] Lines within 100 char limit - [x] All declarations have docstrings t-algebra new-contributor
label:t-algebra$
135/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean 2 11 ['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] eric-wieser
assignee:eric-wieser
7-81526
7 days ago
53-29893
53 days ago
53-29658
53 days
35597 BryceT233
author:BryceT233
feat(AdicTopology): add lemmas about adic topology This PR adds APIs to transport topological and uniform properties of adic topologies across ring equivalences, By upgrading an ideal-preserving ring equivalence to a `UniformEquiv`, we provide natural congruence lemmas for adic completeness, precompleteness, and Hausdorffness, which serve as necessary topological preliminaries for the ongoing formalization of the Cohen Structure Theorem. Co-authored-by: @Thmoas-Guan --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] PatrickMassot
assignee:PatrickMassot
7-81520
7 days ago
34-72944
34 days ago
37-60069
37 days
36787 hommmmm
author:hommmmm
feat(RingTheory/LocalRing): Krull dimension results for maximal ideal of local ring ## Summary This PR adds two results connecting the Krull dimension of a local ring to its maximal ideal: * `IsLocalRing.ringKrullDim_eq_zero_of_maximalIdeal_eq_bot`: A local ring whose maximal ideal is `⊥` has Krull dimension zero. * `IsLocalRing.exists_mem_maximalIdeal_not_mem_sq`: In a Noetherian local ring of positive Krull dimension, there exists an element in the maximal ideal that is not in its square. The second result follows from Nakayama's lemma: if every element of the maximal ideal `𝔪` were in `𝔪²`, then `𝔪 = 𝔪²`, and Nakayama gives `𝔪 = ⊥`, contradicting positive dimension. ## New file * `Mathlib/RingTheory/LocalRing/MaximalIdeal/KrullDimension.lean` ## Acknowledgements Thanks to Dora Kassabova and Leopold Mayer for edit suggestions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-ring-theory 57/0 Mathlib.lean,Mathlib/RingTheory/LocalRing/MaximalIdeal/KrullDimension.lean 2 10 ['NoahW314', 'github-actions', 'hommmmm', 'tb65536', 'wwylele'] chrisflav
assignee:chrisflav
7-81510
7 days ago
12-12434
12 days ago
12-74374
12 days
36788 hommmmm
author:hommmmm
feat(RingTheory): height of span of a prime element is one ## Summary - Add `Ideal.height_span_singleton_eq_one_of_prime`: in a Noetherian integral domain, the ideal generated by a prime element has height one. ## Notes The new theorem follows directly from `height_le_one_of_isPrincipal_of_mem_minimalPrimes` (upper bound) and the fact that `span {p} ≠ ⊥` for `p` prime (lower bound). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 12/1 Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean 1 2 ['github-actions'] mattrobball
assignee:mattrobball
7-81509
7 days ago
12-73838
12 days ago
12-73603
12 days
36789 hommmmm
author:hommmmm
feat(RingTheory/Ideal/Height): prime ideal determined by height among overideals ## Summary - Add `Ideal.eq_of_le_of_height_eq`: a prime ideal of finite height is equal to any ideal of the same height that contains it. ## Notes This is a direct consequence of `Ideal.height_strict_mono_of_is_prime`: if `I` were strictly contained in `J`, their heights would differ. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 10/0 Mathlib/RingTheory/Ideal/Height.lean 1 7 ['github-actions', 'hommmmm', 'tb65536'] erdOne
assignee:erdOne
7-81509
7 days ago
12-73546
12 days ago
12-73311
12 days
36813 AlexeyMilovanov
author:AlexeyMilovanov
feat(Computability.Encoding): add self-delimiting unary and pair encodings Adds `unaryPrefix` (a self-delimiting $1^n 0$ code) and `prefixPair` to `Mathlib.Computability.Encoding`. **Key changes:** * **`unaryPrefix`**: A prefix-free unary encoding for $\mathbb{N}$, distinct from the existing `unaryEncodeNat`. * **`unaryPrefix_append_inj`**: A basic cancellation lemma that allows unique extraction of a unary prefix from a concatenated list. * **`prefixPair`**: A self-delimiting pairing function for boolean lists, defined as $\text{unaryPrefix } |x| \frown x \frown y$. * **`prefixPair_inj`**: A concise proof of pair injectivity leveraging the new prefix lemmas. t-computability new-contributor 56/1 Mathlib/Computability/Encoding.lean 1 2 ['github-actions'] Komyyy
assignee:Komyyy
7-81508
7 days ago
12-28243
12 days ago
12-28008
12 days
36896 PieterCuijpers
author:PieterCuijpers
feat (Algebra/Order/Quantale): isMulIdempotent, isMulLeftsided, isMulRightsided, isMulTwosided and strict versions * Adding definitions of quantale elements being idempotent, leftsided, rightsided, and twosided, and strict versions I'd value some discussion on whether especially the definition of isMulIdempotent would belong here, since it applies to semigroups in general. I only see definitions of IdempotentOp in the library so far, focussing on operators that are fully idempotent, while in the study of Quantales it seems that subquantales of elements that are idempotent in the original are also interesting. This argues the need for having definitions on separate elements. Also, should we include these definitions in the main Algebra/Order/Quantale.lean file, or start a separate file for them? And I have a few basic theorems I would like to include, but invite suggestions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
105/1 Mathlib/Algebra/Order/Quantale.lean 1 4 ['NoahW314', 'github-actions'] kim-em
assignee:kim-em
7-81507
7 days ago
10-47262
10 days ago
10-47027
10 days
36968 NoahW314
author:NoahW314
feat: add missing IndiscreteTopology instances Add several instances for the IndiscreteTopology. These instances are chosen as they have short proofs and imply many of the more common instances like `NormalSpace` and `LocPathConnectedSpace`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-topology 21/0 Mathlib/Topology/AlexandrovDiscrete.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Irreducible.lean,Mathlib/Topology/Metrizable/Basic.lean 4 2 ['github-actions'] PatrickMassot
assignee:PatrickMassot
7-81503
7 days ago
8-79899
8 days ago
8-79664
8 days
34191 IlPreteRosso
author:IlPreteRosso
feat(Topology/Algebra/InfiniteSum): Discrete Convolution API 1st PR Defines the very basics of the discrete convolution API. In analogy with [MeasureTheory.Convolution](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Convolution.html#MeasureTheory.convolution). Main definitions include - `mulFiber`, `convolution`, `ConvolutionExists`, `ConvolutionExists.add_distrib`, `ConvolutionExistsAt.smul_convolution`, `mulFiber_swapEquiv`, `convolution_comm` RM: - The main docstring is *as is* - Next step is triple sum intrastrcutre + `assoc` theorems for convolution (long) Continues the work from #33411 and #33410 (splitting into shorter PRs, carries over the modifications from previous reviews) t-topology new-contributor 277/0 Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/DiscreteConvolution.lean 2 18 ['IlPreteRosso', 'github-actions', 'j-loreaux'] ocfnash
assignee:ocfnash
6-81598
6 days ago
54-24152
54 days ago
63-25600
63 days
34477 spanning-tree
author:spanning-tree
refactor(Order): make CompletePartialOrder extend OrderBot Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly. Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor. See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 15/1 Mathlib/Order/CompletePartialOrder.lean 1 3 ['Citronhat', 'github-actions', 'mathlib-merge-conflicts'] bryangingechen
assignee:bryangingechen
6-81596
6 days ago
29-34495
29 days ago
50-9417
50 days
36720 YanYablonovskiy
author:YanYablonovskiy
feat(Order): `OrderType.lift` and more order type API Adding the universe lifting operation to `OrderType` , addresses a 'TODO' . --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 41/2 Mathlib/Order/Types/Defs.lean 1 23 ['YaelDillies', 'YanYablonovskiy', 'github-actions', 'vihdzp'] bryangingechen
assignee:bryangingechen
6-81586
6 days ago
7-51075
7 days ago
9-14396
9 days
37109 zeekmartin
author:zeekmartin
feat(SimpleGraph): card of common neighbors equals card of triangles containing edge Adds `SimpleGraph.card_commonNeighbors_eq_card_triangles_containing_edge` to `Mathlib/Combinatorics/SimpleGraph/Clique.lean`. For adjacent vertices `u v` in a finite simple graph, establishes the bijection between common neighbors and 3-cliques containing the edge `{u, v}`: ```lean theorem card_commonNeighbors_eq_card_triangles_containing_edge {u v : α} (huv : G.Adj u v) : (G.commonNeighbors u v).toFinset.card = ((G.cliqueFinset 3).filter fun s => {u, v} ⊆ s).card ``` This connects `commonNeighbors` (defined in `Basic.lean`) with `cliqueFinset` — a gap not previously covered in `Clique.lean`. **AI disclosure**: Claude (Anthropic) was used as an assistant during the development of this proof. It helped with the initial proof structure and tactic suggestions. The proof was reviewed and validated step by step by the author, who can vouch for all the content. The mathematical idea originates from the author's prior Lean 4 work on spectral graph theory (github.com/zeekmartin/topostability-lean4). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics LLM-generated new-contributor 61/0 Mathlib/Combinatorics/SimpleGraph/Clique.lean 1 7 ['SnirBroshi', 'github-actions', 'zeekmartin'] nobody
6-20617
6 days ago
6-27776
6 days ago
6-27541
6 days
35402 samueloettl
author:samueloettl
feat(Dynamics/BirkhoffSum): birkhoffAverage const --- I think this is useful and one of these should be a simp lemma. I'm not really sure if I got the naming of the theorems correct. When generalizing to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-dynamics new-contributor 22/0 Mathlib/Dynamics/BirkhoffSum/Average.lean 1 2 ['github-actions'] ADedecker
assignee:ADedecker
5-81582
5 days ago
36-4855
36 days ago
42-37908
42 days
36667 NoneMore
author:NoneMore
feat(ModelTheory): add `exClosure` definition for first-order formulas Prepare for moving realizations between elementarily equivalent structures. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 37/0 Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean 2 2 ['github-actions'] awainverse
assignee:awainverse
5-56112
5 days ago
15-65812
15 days ago
15-65577
15 days
32744 NoneMore
author:NoneMore
feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas. The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable. There are also some tool lemmas derived by the preimage lemma. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 147/0 Mathlib/ModelTheory/Definability.lean 1 60 ['NoneMore', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'staroperator'] nobody
5-53987
5 days ago
5-53968
5 days ago
101-11967
101 days
36850 whocares-abt
author:whocares-abt
feat(Combinatorics/SimpleGraph/Acyclic): add delete leaf from tree gives tree Added theorem stating Deleting a leaf from a tree produces a tree. t-combinatorics new-contributor 5/0 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean 1 7 ['github-actions', 'vlad902'] nobody
5-33758
5 days ago
9-58746
9 days ago
11-41367
11 days
36837 nielstron
author:nielstron
feat(Computability/ContextFreeGrammar): Closure properties --- This PR is a rewrite of the closure property proofs of CFGs from scratch. The proof follows the approach by Ullman and Hopcroft in "Introduction to Automata Theory, Languages and Computation". It should make #33601 #33592 and #33599 superfluous. The main proof was created assisted by Aristotle, and then read and restructured by me. Update: I noticed the same proof strategy would lend itself to show closure properties of regular languages, if there is interest in that. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-computability LLM-generated 1598/0 Mathlib.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/ContextFreeGrammarClosure.lean,Mathlib/Computability/Language.lean,Mathlib/Data/List/Lemmas.lean 5 3 ['github-actions', 'nielstron'] nobody
5-20797
5 days ago
5-20847
5 days ago
10-31112
10 days
35600 yisiox
author:yisiox
feat(Computability): add Kleene's algorithm to prove regular languages have regex matching This PR adds a proof that every regular language has some regular expression matching it. This was achieved by the following constructions and proofs of their correctness - Define `toSingleεNFA` to transform any epsilon-NFA to an equivalent one with only a single start and accept state (and the type is `ExtendedState`) - Define a bijection between `ExtendedState` and `Fin (FinEnum.card (ExtendedState σ))` to index the states - Define `pathRegex` which implements Kleene's algorithm - Define `toRegex` which takes an epsilon-NFA, applies `toSingleεNFA` on it, and computes the corresponding regex using `pathRegex` The proofs of correctness chain together to yield `(toRegex M).matches' = M.accepts` which asserts the direction of Kleene's theorem required. --- As in [#mathlib4 > Regular languages: the review queue @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/near/573958148), this overlaps with #15654, which uses GNFA instead but has been inactive. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor 492/0 Mathlib/Computability/EpsilonNFA.lean 1 15 ['YaelDillies', 'github-actions', 'yisiox'] YaelDillies
assignee:YaelDillies
4-57618
4 days ago
6-38782
6 days ago
25-40730
25 days
33520 NoneMore
author:NoneMore
feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic new-contributor 91/0 Mathlib/ModelTheory/ElementarySubstructures.lean 1 3 ['Citronhat', 'NoneMore', 'github-actions'] fpvandoorn
assignee:fpvandoorn
4-50171
4 days ago
4-50235
4 days ago
86-42015
86 days
35394 HugLycan
author: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 does not depend `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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-meta 611/322 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 23 ['HugLycan', 'JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster'] JovanGerb
assignee:JovanGerb
4-48225
4 days ago
11-51962
11 days ago
11-54845
11 days
36955 NoneMore
author:NoneMore
chore(ModelTheory/Types): expose `T` in `typesWith` and move it to `Theory` Make the `T : L.Theory` argument explicit in `typesWith` and place the definition in `FirstOrder.Language.Theory` to enable dot notation. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic new-contributor 24/19 Mathlib/ModelTheory/Topology/Types.lean,Mathlib/ModelTheory/Types.lean 2 2 ['github-actions'] nobody
4-37401
4 days ago
9-27766
9 days ago
9-27531
9 days
37190 cjrl
author:cjrl
feat(Combinatorics): Set-Valued Pigeonhole Principle This PR contributes two theorems to combinatorics: - `exists_lt_card_cover_of_card_biUnion_lt_card` is a set-valued version of the pigeonhole principle. - `sum_card_eq_sum_card_cover_biUnion` is a set theoretic corollary of a double counting result proved for bipartite graphs (`Finset.sum_card_bipartiteAbove_eq_sum_card_bipartiteBelow`). This was needed to prove the above pigeonhole principle. The motivation for these results is our Latin Square PR #36698. These results were proved in less general terms in that PR, but are independent of Latin Square considerations and so we have generalized and moved them into more relevant files. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 66/0 Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean 2 3 ['cjrl', 'github-actions'] nobody
3-83882
3 days ago
4-78601
4 days ago
4-78374
4 days
35329 BryceT233
author:BryceT233
feat(Data/Finsupp): add computational lemmas for cons and single This PR introduces `cons_eq_single_zero_iff` and `cons_eq_single_succ_iff`, which are helper lemmas designed to facilitate calculations (or simplification) of equalities involving `Finsupp.cons` and `Finsupp.single`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 25/0 Mathlib/Data/Finsupp/Fin.lean 1 2 ['github-actions'] joneugster
assignee:joneugster
3-81454
3 days ago
28-1716
28 days ago
43-57149
43 days
36889 KryptosAI
author:KryptosAI
feat(LinearAlgebra/Matrix/MoorePenrose): define the Moore-Penrose pseudo-inverse Defines `IsMoorePenroseInverse` and constructs the Moore-Penrose pseudo-inverse for matrices over `RCLike` fields. Closes #24787. `Defs.lean` defines the predicate using the heterogeneous four-condition characterization from the issue, plus uniqueness for semigroups with `StarMul`. `Basic.lean` constructs the inverse via orthogonal projection and `ker(f)ᗮ ≃ₗ range(f)`, then proves: ```lean theorem exists_isMoorePenroseInverse (A : Matrix m n 𝕜) : ∃ (As : Matrix n m 𝕜), IsMoorePenroseInverse A As def moorePenroseInverse (A : Matrix m n 𝕜) : Matrix n m 𝕜 lemma moorePenroseInverse_conjTranspose : moorePenroseInverse (Aᴴ) = (moorePenroseInverse A)ᴴ lemma moorePenroseInverse_eq_nonsing_inv (hA : IsUnit A) : moorePenroseInverse A = A⁻¹ ``` ### AI disclosure - **Gemini 2.5 Pro**: proof planning, initial code, edits - **Claude Code (Opus 4.6)**: debugging, compilation, type-checking against mathlib4 I reviewed and directed all changes. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor LLM-generated
label:t-algebra$
399/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/MoorePenrose/Basic.lean,Mathlib/LinearAlgebra/Matrix/MoorePenrose/Defs.lean 3 25 ['KryptosAI', 'github-actions', 'vihdzp'] dagurtomas
assignee:dagurtomas
3-81446
3 days ago
9-24787
9 days ago
9-25694
9 days
36917 iarnoldy
author:iarnoldy
feat(LinearAlgebra/CliffordAlgebra): bivector Lie subalgebra Define the submodule of grade-n elements (n-vectors) in a Clifford algebra and show that bivectors (n = 2) form a `LieSubalgebra` under the commutator bracket. This gives the standard construction of so(Q) from Cl(Q). Main definitions: * `CliffordAlgebra.nvector` — grade-n submodule, spanned by n-fold products of ι * `CliffordAlgebra.bivector` — nvector 2 Q, the bivector submodule * `CliffordAlgebra.bivectorLieSubalgebra` — LieSubalgebra of bivectors Main results: * `CliffordAlgebra.lie_ι_mul_ι` — explicit commutator formula for bivector generators * `CliffordAlgebra.lie_mem_bivector` — bracket closure of the bivector submodule * `CliffordAlgebra.bivector_le_evenOdd_zero` — bivectors lie in the even part The `LieModule` instance for `CliffordAlgebra Q` acting on itself is provided explicitly (`instLieModuleSelf`) because automatic synthesis exceeds the default heartbeat limit. AI disclosure: This code was generated with AI assistance (Claude, Anthropic). The submitter directed the construction and QA but is not a Lean programmer. The mathematical content is classical (Doran & Lasenby, Ch. 3). Extra review scrutiny is welcomed. Co-authored-by: Claude --- Open design questions for reviewers: 1. **Naming**: Is `nvector` the right name? Eric Wieser suggested generalizing to n-vectors. Alternatives: `ιProd`, `grade`, or following the `exteriorPower` pattern via `equivExterior` pullback. 2. **Scalar contamination**: The spanning set `{ι m₁ * ι m₂}` includes `ι m * ι m = Q(m)` (scalars). Eric suggested pulling back `exteriorPower` through `equivExterior` for pure grades (requires `Invertible (2 : R)`). Happy to rework if that's preferred. 3. **instLieModuleSelf**: Should this be an upstream issue rather than a local workaround? @ocfnash 4. **ι_mul_ι_comm'**: This may duplicate existing API (`ι_mul_ι_comm b a` plus `polar_comm`). Happy to inline if reviewers prefer. Discussed on Zulip: https://leanprover.zulipchat.com (Is there code for X? thread) new-contributor t-algebra LLM-generated
label:t-algebra$
338/0 Mathlib.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Bivector.lean 2 2 ['github-actions'] dagurtomas
assignee:dagurtomas
3-81445
3 days ago
10-1502
10 days ago
10-2492
10 days
37000 Qulinecier
author:Qulinecier
feat: generalize rank_submatrix_le to arbitrary column maps This PR generalizes `rank_submatrix_le` to allow an arbitrary function on columns instead of requiring an `Equiv`. The previous version required `e : m₀ ≃ m` and `[Fintype m]`, while this version only requires `c : n₀ → n` and `[Fintype n₀]`. The previous version can be recovered as a special case of the new one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
16/6 Mathlib/LinearAlgebra/Matrix/Rank.lean 1 4 ['Qulinecier', 'github-actions', 'themathqueen'] dagurtomas
assignee:dagurtomas
3-81440
3 days ago
8-13418
8 days ago
8-13183
8 days
37193 JJYYY-JJY
author:JJYYY-JJY
docs(metric): add Main results sections for metric spaces Add Main results sections to metric-space definition modules This PR improves discoverability in the metric-space definition modules by adding curated Main results sections and by fixing a stale internal file reference. Add a Main results section to the pseudo-metric definitions module, highlighting key constructions and foundational lemmas. Add a Main results section to the metric-space definitions module, highlighting core constructions and distance-based characterization lemmas. Update the implementation note to point to the current pseudo-metric definitions path, clarifying where elementary pseudometric facts live. This is a docstring-only change: No declarations, theorem names, imports, instances, or proofs are changed; only module docstrings in the two metric-space definition files are edited. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 25/3 Mathlib/Topology/MetricSpace/Defs.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 2 4 ['copilot-pull-request-reviewer', 'github-actions'] j-loreaux
assignee:j-loreaux
3-81436
3 days ago
4-78285
4 days ago
4-78050
4 days
37076 ertwro
author:ertwro
feat(Combinatorics/SimpleGraph/Hasse): Hasse diagram is triangle-free Add `SimpleGraph.hasse_cliqueFree_three`: the Hasse diagram of a preorder is triangle-free (`CliqueFree 3`). This is the graph-theoretic formulation of `not_covBy_of_lt_of_lt`: if `a ⋖ b` and `b ⋖ c`, then `¬ a ⋖ c`, so no three elements can be pairwise adjacent in the Hasse diagram. The proof extracts three vertices from a hypothetical 3-clique, case-splits on the covering directions (8 cases), and closes each by `not_covBy_of_lt_of_lt` (6 transitive cases) or `lt_asymm` (2 cyclic cases). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 13/1 Mathlib/Combinatorics/SimpleGraph/Hasse.lean 1 11 ['SnirBroshi', 'ertwro', 'github-actions'] nobody
3-71318
3 days ago
6-60080
6 days ago
6-59845
6 days
35906 scp020
author:scp020
feat(Combinatorics/SimpleGraph/Walks): chords of walks Define `Walk.IsChord` and `Walk.IsChordless` predicates in a new file `SimpleGraph/Walks/Chord.lean`. See "chord" in https://en.wikipedia.org/wiki/Glossary_of_graph_theory --- [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Walk.2EIsChordless.20live.20in.20mathlib.3F/with/575277309) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 69/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Chord.lean 2 53 ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'scp020'] YaelDillies
assignee:YaelDillies
3-62668
3 days ago
3-81814
3 days ago
22-49981
22 days
35287 arnoudvanderleer
author: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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology new-contributor infinity-cosmos 343/3 Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CoherentIso.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/CategoryTheory/CodiscreteCategory.lean 5 80 ['arnoudvanderleer', 'github-actions', 'joelriou', 'robin-carlier'] robin-carlier
assignee:robin-carlier
3-47418
3 days ago
3-53109
3 days ago
9-37350
9 days
37027 mike1729
author:mike1729
refactor(LocallyConvex,Topology): split WeakDual/WeakSpace and rename WeakBilin Reorganize the weak topology files for cleaner dependencies: 1. **Rename** `Analysis.LocallyConvex.WeakDual` → `Analysis.LocallyConvex.WeakBilin`: This file contains only general `WeakBilin` infrastructure (`LinearMap.toSeminormFamily`, `weakBilin_withSeminorms`, `WeakBilin.locallyConvexSpace`, etc.) with no reference to `WeakDual`. The name now reflects the content. 2. **Split** `Topology.Algebra.Module.WeakDual` into `WeakDual` and `WeakSpace`: The `WeakSpace` type, its instances, and `toWeakSpace`/`toWeakSpaceCLM` move to a new `Topology.Algebra.Module.WeakSpace`. This allows downstream files about weak spaces to avoid depending on `WeakDual`. 3. **Add** `WeakSpace.seminormFamily` and `WeakSpace.withSeminorms` to `Analysis.LocallyConvex.WeakSpace`: The weak topology on `WeakSpace 𝕜 E` is generated by the seminorm family `fun f x ↦ ‖f x‖` indexed by `StrongDual 𝕜 E`, via the general `LinearMap.weakBilin_withSeminorms` applied to the flipped `topDualPairing`. Moves: - Mathlib.Analysis.LocallyConvex.WeakDual -> Mathlib.Analysis.LocallyConvex.WeakBilin - WeakSpace -> Mathlib.Topology.Algebra.Module.WeakSpace - toWeakSpace -> Mathlib.Topology.Algebra.Module.WeakSpace - toWeakSpaceCLM -> Mathlib.Topology.Algebra.Module.WeakSpace CC @j-loreaux new-contributor file-removed 192/114 Mathlib.lean,Mathlib/Analysis/LocallyConvex/WeakBilin.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/WeakSpace.lean 6 3 ['github-actions', 'mathlib-merge-conflicts'] nobody
3-20473
3 days ago
5-50070
5 days ago
7-48509
7 days
35317 mkaratarakis
author:mkaratarakis
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 5/5) If a function `R : ℂ → ℂ` factors as `R z = (z - z₀) ^ r * R₁ z`, where `R₁` is analytic everywhere, then for any `k ≤ r`, there exists an everywhere analytic function `R₂ : ℂ → ℂ` such that the `k`-th iterated derivative of `R` is given by `deriv^[k] R z = (z - z₀) ^ (r - k) * (r! / (r - k)! * R₁ z + (z - z₀) * R₂ z)`. This lemma is necessary for the proof of the Gelfond-Schneider theorem in subsequent PRs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory new-contributor t-analysis 57/0 Mathlib/Analysis/Complex/CauchyIntegral.lean 1 16 ['MichaelStollBayreuth', 'github-actions', 'mkaratarakis'] nobody
3-15235
3 days ago
3-15235
3 days ago
25-11833
25 days
34138 pfaffelh
author:pfaffelh
feat(MeasureTheory): Introduce `MassFunction α` giving rise to a `Measure α ⊤` Define `MassFunction α := α → ℝ≥0∞` Define `toMeasure (w : MassFunction α) : @Measure α ⊤` as a sum of diracs Show properties of the resulting objects This PR intends to start a more userfriendly interaction with probability mass functions (`PMF`). There are two main differences between `MassFunction` and `PMF`: * `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `MassFunction`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.) * The `toMeasure` function of `MassFunction` directly defines the measure as a sum of diracs, which immediately makes computations possible. Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change) - depends on: #37060 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability new-contributor 252/1 Mathlib.lean,Mathlib/Algebra/Group/Indicator.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/MassFunction.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean 6 15 ['DavidLedvinka', 'github-actions', 'metakunt', 'ocfnash', 'pfaffelh'] kex-y and ocfnash
assignee:ocfnash assignee:kex-y
3-6363
3 days ago
7-6181
7 days ago
70-9062
70 days
36324 psinary-sketch
author:psinary-sketch
feat(NumberTheory/LSeries): Schwarz reflection for completedRiemannZeta₀ --- Three new theorems about `completedRiemannZeta₀`: - `completedRiemannZeta₀_conj`: Schwarz reflection `Λ₀(conj s) = conj(Λ₀(s))` - `completedRiemannZeta₀_im_eq_zero_on_half`: the completed zeta function is real-valued on the critical line - `completedRiemannZeta₀_conj_eq_self_on_half`: equivalent fixed-point formulation The Schwarz reflection follows from the Mellin representation: the kernel is real-valued, so the integral commutes with conjugation via `integral_conj`. The critical-line results compose this with the functional equation. AI disclosure: Lean code developed with Claude (Anthropic) assistance in workflow. Mathematical content and proof strategies are original. All code verified locally with lake env lean before submission. t-number-theory new-contributor LLM-generated 147/0 Mathlib.lean,Mathlib/NumberTheory/LSeries/SchwarzReflection.lean 2 13 ['SnirBroshi', 'github-actions', 'psinary-sketch'] alexjbest
assignee:alexjbest
3-2880
3 days ago
9-29734
9 days ago
18-79709
18 days
36937 Yaohua-Leo
author:Yaohua-Leo
feat(Algebra/Jordan): add first linearization lemmas for IsCommJordan [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) AI assistance disclosure: I used AI assistance for CI/debugging and module-structure fixes in this PR. The mathematical content and main lemmas were written by me, with help from @pelicanhere. This PR adds a new file `Mathlib/Algebra/Jordan/Linearization.lean` containing linearization lemmas for the commutative Jordan identity. Main declarations: * `IsCommJordan.four_nsmul_associator_mul_add` * `IsCommJordan.associator_mul_add` These lemmas formalize a first linearization of the commutative Jordan identity using `associator`, following McCrimmon, Proposition 1.8.5. --- I put these lemmas in a separate file because I expect follow-up linearization lemmas to belong naturally in the same place. I am also happy to rename declarations or move the file if reviewers would prefer. t-algebra new-contributor
label:t-algebra$
60/0 Mathlib.lean,Mathlib/Algebra/Jordan/Linearization.lean 2 4 ['Yaohua-Leo', 'github-actions', 'grunweg'] dagurtomas
assignee:dagurtomas
2-86328
2 days ago
9-55027
9 days ago
9-55420
9 days
32807 WilliamCoram
author:WilliamCoram
feat: Define the Gauss norm for MvPowerSeries We adjust the current definition for Gauss norm on power series to work for multivariate power series. If this seems acceptable I can refactor the single variable case. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] erdOne and jcommelin
assignee:jcommelin assignee:erdOne
2-81583
2 days ago
45-35507
45 days ago
58-43134
58 days
35707 BryceT233
author:BryceT233
feat(RingTheory/MvPowerSeries): introduce `truncTotal` This PR introduces the total degree truncation of multivariate formal power series when the index is finite, and uses it to establish the algebraic equivalence between `MvPowerSeries` and the adic completion of `MvPolynomial` with respect to the ideal spanned by all variables `idealOfVars`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-ring-theory 213/2 Mathlib.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean 4 7 ['BryceT233', 'github-actions', 'joneugster', 'mathlib-bors', 'wwylele'] erdOne, jcommelin, riccardobrasca
assignee:jcommelin assignee:riccardobrasca assignee:erdOne
2-81579
2 days ago
25-75374
25 days ago
34-58030
34 days
36386 SnkXyx
author:SnkXyx
feat(Algebra/MvPolynomial/Degrees): add some lemmas about `degreeOf` These lemmas are used in #36103 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
79/0 Mathlib/Algebra/MvPolynomial/Degrees.lean 1 12 ['Hagb', 'SnkXyx', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts'] dagurtomas
assignee:dagurtomas
2-75835
2 days ago
2-75835
2 days ago
20-38240
20 days
36849 mike1729
author:mike1729
feat(Analysis/Normed/Module/SchauderBasis): basic sequences and Grünblum criterium This PR introduces the theory of basic sequences in Banach spaces, following Albiac–Kalton. Defines basic sequences in normed spaces, and prove the classical Grünblum criterium for recognizing them. New definitions (in BasicSequence.lean) - `BasicSequence`: a bundled ℕ-indexed sequence forming a Schauder basis for its algebraic span, with finite projection bound. - `SatisfiesGrunblumCondition`: partial sums over initial segments are bounded by a constant times the full sum. Main results - `SatisfiesGrunblumCondition.basicSequence`: a nonzero sequence satisfying the Grünblum condition is a basic sequence. - `SatisfiesGrunblumCondition.linearIndependent`: nonzero sequences satisfying that condition are linearly independent. --- - [x] follow up to : #34209 - [ ] blocks : #35473 The next planned PRs: - general selection principle for basic sequences - characterization when a set contains a basic sequence in terms of weak closure and compactness - Eberlein–Šmulian theorem - weakly compact subsets of a Banach space are Fréchet–Urysohn spaces [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-analysis new-contributor 253/1 Mathlib.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Basic.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequence.lean 3 2 ['github-actions'] sgouezel
assignee:sgouezel
2-58574
2 days ago
3-8455
3 days ago
11-44362
11 days
35753 Vilin97
author:Vilin97
feat(Topology/Algebra/Order): regular grid helpers and piecewise linear interpolation Make API for piecewise linear interpolation on regular grids. I need these to for ODE time-stepping methods, like forward Euler, and later Runge–Kutta methods. Follow-up PR: #35755 (forward Euler method convergence). I don't know if these numerical analysis ODE-solving methods even belong in mathlib. If someone could advise me on it, I would appreciate it. --- The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code. t-topology new-contributor LLM-generated 269/0 Mathlib.lean,Mathlib/Topology/Algebra/Order/Floor.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean 3 8 ['Vilin97', 'copilot-pull-request-reviewer', 'dagurtomas', 'github-actions', 'wwylele'] PatrickMassot
assignee:PatrickMassot
2-26076
2 days ago
3-26942
3 days ago
11-56788
11 days
34599 cameronfreer
author:cameronfreer
feat(Logic/Equiv/Fintype): generalize toCompl and exists_extending_pair to finite source Generalize the Equiv subtype-extension API so it only needs finiteness of the source subtype, then use that to drastically simplify `Equiv.Perm.isMultiplyPretransitive`. ### Changes to `Logic/Equiv/Fintype.lean` * **`Equiv.toCompl`**: generalize from `[Finite α]` to `[Finite {x | p x}]`. New proof (due to tb65536) uses finset symmetric differences to avoid needing finiteness of the ambient type. * **`Equiv.extendSubtype`** and related lemmas: adapt to `[Finite {x | p x}]`. * **`Equiv.Perm.exists_extending_pair`**: strengthen from `[Finite β]` to `[Finite α]`. Given two injective functions `f, g : α → β` where `α` is finite, there exists `σ : Perm β` with `σ ∘ f = g`. The target `β` can now be infinite. ### Changes to `MultipleTransitivity.lean` * **`Equiv.Perm.isMultiplyPretransitive`**: replace ~70-line manual bijectivity construction with a two-line proof via `exists_smul_eq_embedding`. * **`exists_smul_eq_embedding`**: rewire to use `exists_extending_pair` directly (removing the old cardinal-arithmetic proof `exists_extending_pair_of_finite_source`). ### Application Used in formalizing de Finetti's theorem (exchangeability ⇒ contractability): https://github.com/cameronfreer/exchangeability/blob/03a854a2/Exchangeability/Contractability.lean#L459 Co-authored-by: tb65536 t-group-theory new-contributor 51/79 Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/Logic/Equiv/Fintype.lean 2 26 ['LLaurance', 'cameronfreer', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] nobody
1-81594
1 day ago
23-13573
23 days ago
44-34312
44 days
35976 Phelixh
author:Phelixh
feat: add add Liu's uncertainty theory foundations (core/distribution/process modules) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 2374/0 Mathlib.lean,Mathlib/Uncertainty/Base.lean,Mathlib/Uncertainty/BaseCore.lean,Mathlib/Uncertainty/BaseDistribution.lean,Mathlib/Uncertainty/BaseProcess.lean,Mathlib/Uncertainty/Uncertainty.lean 6 26 ['Phelixh', 'copilot-pull-request-reviewer', 'github-actions'] nobody
1-34018
1 day ago
1-34085
1 day ago
1-39147
1 day
35569 goliath-klein
author:goliath-klein
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): deprecate `injectiveSeminorm` This PR: * Deprecates `PiTensorProduct.injectiveSeminorm` and supporting lemmas. * Moves the theory of `liftEquiv` from InjectiveSeminorm.lean to ProjectiveSeminorm.lean. No changes are introduced beyond adding deprecation notices, adapting docstrings, and moving material between files. The PR leaves InjectiveSeminorm.lean almost empty. A new implementation of `injectiveSeminorm`, one which reflects the common mathematical definition, is to be done. This is the third in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633). --- - [ ] depends on: #35567 - [ ] depends on: #35568 Deprecations: - injectiveSeminorm - dualSeminorms_bounded - injectiveSeminorm_apply - norm_eval_le_injectiveSeminorm - injectiveSeminorm_le_projectiveSeminorm - injectiveSeminorm_tprod_le Preliminary work toward a reimplementation is at #33969. I've added Davood and myself to the "Authors" field, as we have now significantly refactored this module. Co-authored-by: Davood H. T. Tehrani [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 221/232 Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean 2 5 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
1-28915
1 day ago
1-28939
1 day ago
2-60920
2 days
36871 psinary-sketch
author:psinary-sketch
feat(Analysis/Analytic): nonvanishing in punctured neighborhood from derivative Add AnalyticAt.eventually_ne_nhdsWithin_of_deriv_ne_zero: if f is analytic at x and f'(x) ≠ 0, then f(w) ≠ f(x) in a punctured neighborhood of x. No hypothesis on f(x) needed — stronger than the version in #36778. Placed in Order.lean per review feedback from @wwylele. Split from #36778 (2 of 3). AI disclosure: Lean code developed with Claude (Anthropic) assistance in workflow. Mathematical content and proof strategies are original. All code verified locally with lake env lean before submission. t-analysis new-contributor LLM-generated 13/1 Mathlib/Analysis/Analytic/Order.lean 1 4 ['github-actions', 'mathlib-merge-conflicts'] j-loreaux
assignee:j-loreaux
1-17601
1 day ago
3-2722
3 days ago
10-33369
10 days
35069 A-M-Berns
author:A-M-Berns
feat(Geometry/Polygon): simple polygons and boundary map This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution. - [x] depends on: #34598 --- new-contributor t-euclidean-geometry LLM-generated 360/0 Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean 4 30 ['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'jsm28', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] jsm28
assignee:jsm28
1-11486
1 day ago
33-21049
33 days ago
35-55100
35 days
37006 hakii6
author:hakii6
feat(LinearAlgebra/Matrix/Block, Analysis/Normed/Algebra/MatrixExponential): add BlockTriangular.pow and BlockTriangular.exp # Summary Add BlockTriangular.pow and BlockTriangular.exp for proving "det (exp A) = exp (trace A)" # Which part using LLM The part I used LLM is for 1. Searching duplicated theorems and lemmas I may missed (I already search them myself first). 2. Help me handle the "variables and signatures", the "letI" part, some of lemmas and theorems trivial but hard to find the true one. 3. After I finished, let them helped me check the structure match the disciplines of mathlib. 4. Check the steps PR match the disciplines of mathlib Most things above are done by me first, then let them to make sure I'm not missing something. # More context More context can be found in a topic in "# new member" in Zulip [#new members > (Matrix and NormedSpace.exp) | det (exp A) = exp (trace A)](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/.28Matrix.20and.20NormedSpace.2Eexp.29.20.7C.20det.20.28exp.20A.29.20.3D.20exp.20.28trace.20A.29/with/580964688) new-contributor LLM-generated 54/1 Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/Topology/Instances/Matrix.lean 3 59 ['SnirBroshi', 'eric-wieser', 'github-actions', 'hakii6', 'wwylele'] nobody
1-1015
1 day ago
3-3983
3 days ago
7-81373
7 days
31662 edwin1729
author:edwin1729
feat(Topology/Order): topological basis of scott topology on Complete… …PartialOrder --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) for this PR. (1/2) PRs in domain theory, proving that scott topologies over Algebraic DCPOs (`CompletePartialOrder`) are sober. The main reference is [Renata, Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf). But the statements can also be found in the canonical text [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf) This first PR proves two prerequisites, namely: - the specialization order induced by the scott topology corresponds to the existing order of the DCPO. Prop 3.1.5 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.2(1) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf) - the upward closures of compact elements of the DCPO form a topological basis for the Scott Topology. Prop 3.5.2 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.6(2) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf) - [x] depends on: #33061 **The next PR is here:** #31670 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 239/1 Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib 4 66 ['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] urkud
assignee:urkud
0-81356
22 hours ago
23-36333
23 days ago
30-2415
30 days
37299 XC0R
author:XC0R
feat(NumberTheory): Chebyshev's lower bound on primorial ## Summary Prove `primorial(n) ≥ 2^(n/2)` for all `n ≥ 2` (Chebyshev's 1852 lower bound). This is the lower bound complement to `primorial_le_four_pow`. Addresses the TODO at `Chebyshev.lean` line 50: "Prove Chebyshev's lower bound." ### New file: `Mathlib/NumberTheory/PrimorialLowerBound.lean` **Main theorems:** - `two_pow_le_primorial`: `2 ^ n ≤ primorial (2 * n)` for `n ≥ 29` - `two_pow_div_two_le_primorial`: `2 ^ (n / 2) ≤ primorial n` for `n ≥ 2` **Key intermediates:** - `centralBinom_le_pow_mul_primorial`: `C(2n,n) ≤ (2n)^{π(√(2n)+1)} * primorial(2n)` - `eight_mul_sq_add_le_two_pow`: `8u² + 16u + 8 ≤ 2^u` for `u ≥ 10` ### Proof technique Central binomial decomposition: from `four_pow_lt_mul_centralBinom` and `factorization_choose_le_log`, bound `C(2n,n)` above by `(2n)^{π(√(2n)+1)} * primorial(2n)`. Rearranging gives `primorial(2n) ≥ 2^n` for `n ≥ 29`. Base cases by `norm_num` + `decide`, large `n` analytically via `√n` factoring. ### AI disclosure Claude (Anthropic) was used as a coding assistant for Lean tactic exploration, file structuring, and CI debugging. All proof strategy, mathematical content, and final code have been reviewed and are understood by the author. t-number-theory new-contributor 234/0 Mathlib.lean,Mathlib/NumberTheory/PrimorialLowerBound.lean,Mathlib/NumberTheory/SmoothNumbers.lean 3 21 ['MichaelStollBayreuth', 'Parcly-Taxel', 'XC0R', 'github-actions', 'wwylele'] MichaelStollBayreuth
assignee:MichaelStollBayreuth
0-77026
21 hours ago
2-78923
2 days ago
2-78803
2 days
37010 pion2024
author:pion2024
`Sl2`update: add theorem `finrank_weightSpace_eq_one_of_isIrreducible` # Background: I am a 2nd year undergrad student in mathematics currently self-teaching Lie algebra and representation theory. Before starting the formalization, I searched for related keywords on Zulip and in the GitHub issues and commits. As far as I could tell, there were no existing results or ongoing attempts before I started. All feedback is welcome. Even a quick check on the statement design/an idea on the generalization (cf Limitations below) would be incredibly helpful. # Overview In this PR, I added the new section `IsAlgClosedIrreducible` which formalizes the well-known theorem `finrank_weightSpace_eq_one_of_isIrreducible` for the Lie algebra $\mathfrak{sl}_2$ step by step. It proves that for a finite-dimensional irreducible representation of $\mathfrak{sl}_2$ over an algebraically closed field $K$ of characteristic zero, every non-trivial weight space has a dimension of exactly 1. # Formalization Structure : Instead of relying on explicit finite sums (`Finset.sum`) and manipulating coefficients, I heavily leverage Mathlib's abstractions in Submodule Lattice Theory and Coordinate-free Linear Algebra. The formalization proceeds in the following logic: 1. Existence of a Primitive Vector (`exists_primitiveVector`): I construct a primitive (highest-weight) vector by showing that repeated applications of the raising operator $e$ must eventually yield zero due to the finite-dimensionality of $M$ and the linear independence of eigenvectors corresponding to distinct eigenvalues. 2. The span of $f$-Tower as a Lie Submodule equals to the whole space (`fTowerLieSubmodule_eq_top`): I define the $f$-tower submodule as the $K$-span of $\{f^k m \mid k \in \mathbb{N}\}$. By proving its closure under the action of $f, h$, and $e$, I establish it as a Lie submodule. Since $M$ is irreducible, this submodule must be the entire space ($\top$). 3. Submodule Lattice Operations (`exists_mem_fTower_of_weightSpace_ne_bot`): To prove that every weight in $M$ is of the form $\mu_0 - 2k$, I use lattice operations (iSup, inf, and Disjoint) to avoid element-wise tracking. Since the $f$-tower spans $M$, the supremum of its weight spaces is $\top$. By leveraging `Module.End.eigenspaces_iSupIndep`, I show that any arbitrary non-trivial weight space would have a trivial intersection with $\top$ if its weight didn't belong to the sequence, yielding a contradiction. 4. Dimension Calculation via Basis Equivalence (`finrank_weightSpace_eq_one_of_isIrreducible`): Finally, I construct a basis from the non-zero elements of the $f$-tower. To show the weight space is 1-dimensional, I use `Basis.equivFun` to compare coefficients algebraically. This avoids heavy manual indexing and index-shifting, proving that any vector in the weight space $\mu_0 - 2k$ is merely a scalar multiple of $f^k m$. # Use of AI: I used Gemini 3.1 Pro for tactics, theorems, improvement suggestions, and error explanations. I fully understand and can vouch for all the modifications I have made to the file. # Limitations: I only managed to formalize the finite-dimensional version, although the theorem also holds in the infinite-dimensional case. In the infinite case the existence of a primitive vector is not guaranteed. A quick search suggests that we might need heavy tools like Casimir operators and the universal enveloping algebra, which are totally beyond my current level. I am looking into it, but since there is a significant mathematical gap, I thought it would be best to get this finite-dimensional version merged first. new-contributor t-algebra large-import
label:t-algebra$
354/0 Mathlib/Algebra/Lie/Sl2.lean 1 4 ['github-actions', 'mathlib-bors'] nobody
0-32084
8 hours ago
0-84468
23 hours ago
0-85545
23 hours
36491 aditya-ramabadran
author:aditya-ramabadran
feat(Analysis/Distribution): define Dirac delta distribution Defines Dirac delta distribution (classical) Closes #36464 * Note: Used `continuous_eval_const` in defining Delta in Distribution.lean, rather than the way it's done in TemperedDistribution.lean (which could also work) * Also chose to define for $x \in \Omega$ rather than all $x \in E$, can make the other way if that's better? --- **Testing**: ```lean example (x : E) : Continuous fun φ : 𝓓^{n}(Ω, F) => φ x := continuous_eval_const x ``` Lean builds successfully [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 32/0 Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/Distribution.lean,Mathlib/Analysis/Distribution/TestFunction.lean 3 12 ['ADedecker', 'aditya-ramabadran', 'github-actions'] j-loreaux
assignee:j-loreaux
0-25184
6 hours ago
0-25201
6 hours ago
6-8260
6 days
36698 ghseeli
author:ghseeli
feat(Combinatorics/Enumerative): Latin squares This PR defines Latin rectangles and Latin squares and proves an extension theorem using Hall's Marriage Theorem. ## Main results - `group_to_cayley_table`: every finite group `G` yields a `LatinSquare G G`. - `latin_rectangle_extends_one_row`: a (non-square) `LatinRectangle` extends to a `LatinRectangle` with one more row. This is an application of **Hall's Marriage Theorem**, `hallMatchingsOn.nonempty`. - `latin_rectangle_extends_to_latin_square`: a `LatinRectangle` extends to a `LatinSquare`. This is included in a new file `Combinatorics/Enumerative/LatinSquare.lean`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 688/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/LatinSquare.lean,docs/references.bib 3 73 ['SnirBroshi', 'cjrl', 'eric-wieser', 'ghseeli', 'github-actions', 'vlad902'] nobody
0-21926
6 hours ago
2-77670
2 days ago
12-61364
12 days
37375 NoneMore
author:NoneMore
feat(SetTheory/Ordinal/FixedPointApproximants): add zero and limit lemmas for approximants Add helper lemmas `lfpApprox_zero`, `lfpApprox_limit`, and the corresponding `gfpApprox` lemmas by duality. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory new-contributor 26/0 Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean 1 7 ['github-actions', 'vihdzp'] nobody
0-20043
5 hours ago
0-32325
8 hours ago
0-32090
8 hours
37374 NoneMore
author:NoneMore
feat(Topology/DerivedSet): add relative derived set lemmas Add `relDerivedSet`, `relDerivedSet_subset`, and `IsClosed.relDerivedSet_eq`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 12/0 Mathlib/Topology/DerivedSet.lean 1 3 ['github-actions', 'vihdzp'] nobody
0-19808
5 hours ago
0-32371
8 hours ago
0-32136
8 hours
37322 gw90
author:gw90
chore: minor edits to GNS construction files --- Fixing a typo in a docstring and making some edits for concision. No API changes. new-contributor 26/23 Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean,Mathlib/Topology/Algebra/LinearMapCompletion.lean 2 5 ['github-actions', 'themathqueen'] nobody
0-19462
5 hours ago
0-75655
20 hours ago
2-6965
2 days
36478 TJHeeringa
author:TJHeeringa
feat(Analysis/Matrix): Added Schur's product Added Schur's product, i.e. the Hadamard product of two finite positive semi-definite matrices is again a positive semi-definite matrix. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 32/0 Mathlib/Analysis/Matrix/Order.lean,Mathlib/LinearAlgebra/Matrix/Hermitian.lean 2 16 ['TJHeeringa', 'eric-wieser', 'github-actions', 'j-loreaux', 'themathqueen'] urkud
assignee:urkud
0-13021
3 hours ago
0-57978
16 hours ago
2-38979
2 days
37319 PrParadoxy
author:PrParadoxy
feat(Algebra/Field/Power): weaken assumptions of Odd.neg_zpow The lemmas `Even.neg_zpow` and `Even.neg_one_zpow` are stated assuming `[DivisionMonoid α] [HasDistribNeg α]`. However, `Odd.neg_zpow` and `Odd.neg_one_zpow` currently assume the stronger `[DivisionRing α]`. This PR weakens the assumption of the `Odd` lemmas to match their `Even` counterparts. --- According to the docstring, the purpose of `Mathlib.Algebra.Field.Power` is to define `Field` with minimal imports. But after this PR, Power.lean does not rely on `Mathlib.Algebra.Field.Defs` any more. Arguably, it could be deprecated. The two results in the file could be stated in `Mathlib.Algebra.Ring.Int.Parity` without any extra imports. Should we implement this in the current or an additional PR? Examples: ``` -- these all work: example (z : ℤ) (h : Even z) : (-1 : ℂ)^z = 1 := Even.neg_one_zpow h example (z : ℤ) (h : Even z) : (-1 : unitary ℂ)^z = 1 := Even.neg_one_zpow h example (z : ℤ) (h : Odd z) : (-1 : ℂ)^z = -1 := Odd.neg_one_zpow h -- but this fails without the PR: example (z : ℤ) (h : Odd z) : (-1 : unitary ℂ)^z = -1 := Odd.neg_one_zpow h ``` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 16/10 Mathlib/Algebra/Field/Power.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean 2 6 ['eric-wieser', 'github-actions', 'goliath-klein'] nobody
0-12468
3 hours ago
2-18242
2 days ago
2-20806
2 days
36752 Ljon4ik4
author:Ljon4ik4
feat: Alternative definition of a tensor product for an algebra Let $A$ be an $R$-algebra and $M$ and $N$ $A$-modules. Then the tensor product $M\otimes_A N$ can be constructed as a quotient of $M\otimes_R N$ by the submodule generated by elements of the shape $am\otimes n - m\otimes an$. This PR realizes this construction and shows that it is isomorphic to the general definition of $M\otimes_A N$. As one consequence we obtain a description of the kernel of `mapOfCompatibleSMul'` as a span of elements of the shape $am\otimes n - m\otimes an$. * I wasn't sure where exactly to put it: Currently it is in `Algebra.TensorProduct`, which I think could be a place for more results of tensor products over algebras in the long term, but maybe some file inside `Mathlib.LinearAlgebra.TensorProduct` could also make sense. * I am not sure if it is very nice to mention 'variable (R A M N)' everywhere, they could also be defined as explicit in the top of the document, and explicitly omitted where unneeded. * The `omit [IsScalarTower R A N] in` was suggested by the linter, I am not sure I understand why * Since the relations contain negation, this procedure only works if some of the ingredients admit negation, one could imagine alternative versions (e.g. when $N$ admits negations and not $M$) but this seemed the most intuitive one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
60/0 Mathlib.lean,Mathlib/Algebra/Algebra/TensorProduct.lean 2 9 ['Ljon4ik4', 'github-actions', 'mathlib-bors', 'ocfnash'] ocfnash
assignee:ocfnash
0-9522
2 hours ago
0-20623
5 hours ago
10-65598
10 days
37061 tannerduve
author:tannerduve
feat(Computability): rename RecursiveIn to Nat.RecursiveIn and generalize to Primcodable types Rename `RecursiveIn` to `Nat.RecursiveIn` (protected) for the `ℕ →. ℕ` version, and introduce a new `RecursiveIn` that lifts `Nat.RecursiveIn` to partial functions between `Primcodable` types via `liftPrim`. Also adds: - `Nat.PrimrecIn`: primitive recursion relative to oracles - `liftPrim` / `liftPrimrec`: encode typed functions as `ℕ →. ℕ` / `ℕ → ℕ` - `RecursiveIn₂`, `ComputableIn`, `ComputableIn₂`, `PrimrecIn'` - Basic API: `of_eq`, `of_eq_tot`, `subst`, `mono`, `partrec_of_zero`, `partrec_of_none`, `partrec_iff_forall_recursiveIn`, etc. To be merged before #37062 t-computability new-contributor maintainer-merge 235/61 Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean 2 39 ['Komyyy', 'eric-wieser', 'github-actions', 'tannerduve'] nobody
0-7539
2 hours ago
6-25705
6 days ago
7-4933
7 days
36731 michael-novak-math
author:michael-novak-math
feat: add a few basic definitions and classical results about differential geometry of plane curves We define the curvature function, normal vector function and the Frénet moving frame and we prove the Frénet equations for plane curves and the fundamental theorem of plane curves. new-contributor t-differential-geometry t-analysis 635/0 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean,Mathlib/Geometry/PlaneCurves.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,docs/references.bib 5 31 ['Ruben-VandeVelde', 'github-actions', 'grunweg', 'michael-novak-math'] nobody
0-5687
1 hour ago
8-6411
8 days ago
10-78302
10 days
37189 Brian-Nugent
author:Brian-Nugent
feat(AlgebraicGeometry): The pushforward of a quasi-coherent sheaf between affines is quasi-coherent To be more precise, we show that if `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` is an isomorphism then the same holds for the pushforward. This will show that being quasicoherent is stable under pushforward for affine morphisms once it is shown that `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` being an isomorphism is equivalent to being quasicoherent. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 173/1 Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 3 2 ['github-actions'] nobody
0-5084
1 hour ago
0-5111
1 hour ago
0-4876
1 hour

PRs on the review queue labelled 'easy'

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
37078 vihdzp
author:vihdzp
chore(LinearAlgebra/ExteriorPower/Basis): avoid use of IsWellFounded.wellOrderExtension This file formerly used `IsWellFounded.wellOrderExtension` on an empty relation to create a linear order extending it, i.e. an arbitrary linear order. But we can accomplish this directly via the well-ordering principle. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy
label:t-algebra$
4/4 Mathlib/LinearAlgebra/ExteriorPower/Basis.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
2-81569
2 days ago
6-55352
6 days ago
6-55117
6 days
37305 eric-wieser
author:eric-wieser
feat: `Matrix.hadamard_kronecker_hadamard` This is the earliest file that imports both operators. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy
label:t-algebra$
10/0 Mathlib/LinearAlgebra/Matrix/Vec.lean 1 4 ['eric-wieser', 'github-actions', 'themathqueen'] dagurtomas
assignee:dagurtomas
0-81351
22 hours ago
2-58966
2 days ago
2-58731
2 days
37306 eric-wieser
author:eric-wieser
chore: generalize `Matrix.dotProduct_vecMul_hadamard` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) easy t-algebra
label:t-algebra$
1/1 Mathlib/LinearAlgebra/Matrix/Hadamard.lean 1 2 ['github-actions', 'themathqueen'] dagurtomas
assignee:dagurtomas
0-81351
22 hours ago
2-58609
2 days ago
2-58374
2 days
37390 SnirBroshi
author:SnirBroshi
feat(RingTheory/Int/Basic): `IsCoprime 2 m ↔ Odd m` Matches existing `Nat.Prime` lemmas. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory easy 8/0 Mathlib/RingTheory/Int/Basic.lean 1 1 ['github-actions'] nobody
0-4862
1 hour ago
0-4937
1 hour ago
0-4702
1 hour

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

Number Author Title Description Labels +/- Modified files (first 100) 📝 💬 All users who commented or reviewed Assignee(s) Updated Last status change total time in review
37177 JovanGerb
author:JovanGerb
perf(Analysis/Normed/Module/Ball/Action): add `SMul` shortcut instances There was an unexpected slowdown after I cleaned up the instances on `UnitDisc`. This PR gets the file back up to speed by adding some shortcut instances. I tried to generalize this solution to other instances, but sadly it had no significant benefits there. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt t-analysis 16/6 Mathlib/Analysis/Normed/Module/Ball/Action.lean 1 6 ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-bors'] nobody
0-34168
9 hours ago
5-4172
5 days ago
5-3956
5 days
37391 grunweg
author:grunweg
wip(create_deprecated_modules): fix some deprecation warnings related… … to the string api Once complete, this PR will make the file build again; it previously failed because it had not been updated for the String API change. TODO in a future PR: add CI which ensures this script builds! (Future future: can we test that we tested all .lean scripts? Or have a test which builds all .lean files in scripts?) One universe error remains (which causes a second error further below). A number of deprecation warnings would require further API changes (and it's unclear to me how much they are worth it). Let us postpone them for now; I'd be happy to disable the deprecation warnings. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt CI 11/9 scripts/create_deprecated_modules.lean 1 2 ['github-actions'] nobody
0-4340
1 hour ago
0-4488
1 hour ago
0-4253
1 hour
37395 Komyyy
author:Komyyy
chore: transparency-defeq of `Primcodable (Fin n)` Found by @JovanGerb 's linter. ([Zulip Link](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/linter.20for.20instance.20diamonds/near/582554439)) The cause of this defeq issue is not `def` of a type, but a type is inferred as `{ i : ℕ // id i < n }` instead of `{ i : ℕ // i < n }`, so the fix is straightforward. This change does not decrease the number of `respectTransparency`, as confirmed by running `python3 ./scripts/rm_set_option.py --files Mathlib/Computability/**`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability tech debt 6/2 Mathlib/Computability/Primrec/Basic.lean 1 0 [] nobody
0-462
7 minutes ago
0-462
3 minutes ago
0-227
3 minutes