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: May 11, 2026 at 19: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
29744 espottesmith
author:espottesmith
feat(Combinatorics): define directed hypergraphs This PR defines directed hypergraphs: ``` @[ext] structure DiHypergraph (α : Type*) where /-- The vertex set -/ vertexSet : Set α /-- The edge set -/ edgeSet : Set ((Set α) × (Set α)) /-- Each edge is a pair (s, d), where s ⊆ vertexSet and d ⊆ vertexSet -/ edge_src_dst_isSubset_vertexSet' : ∀ ⦃e⦄, e ∈ edgeSet → e.1 ⊆ vertexSet ∧ e.2 ⊆ vertexSet ``` Additional definitions: - tail/head stars and negative/positive stars - some special cases (B-Graph, F-Graph, BF-Graph, and what I'm calling a "non-endless" dihypergraph, where neither the source/tail nor the destination/head are empty) - Vertex and (hyper)edge adjacency - isolated vertices - empty and nonempty dihypergraphs The design employed here is based off of #28613, but this PR does not depend on that one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 391/0 Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean 2 2 ['github-actions', 'mathlib4-merge-conflict-bot'] YaelDillies
assignee:YaelDillies
154-24886
5 months ago
38-36529
38 days ago
96-23001
96 days
35619 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Clique): intersection and union of cliques Plus a couple of lemmas. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 29/0 Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Data/Set/Pairwise/Basic.lean 1 13 ['SnirBroshi', 'YaelDillies', 'github-actions'] nobody
78-68496
2 months ago
18-8498
18 days ago
39-70769
39 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 26 ['Maldooor', 'github-actions', 'lua-vr', 'mcdoll', 'samueloettl'] mcdoll
assignee:mcdoll
74-67131
2 months ago
12-20093
12 days ago
78-18451
78 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 53/31 Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,MathlibTest/fun_prop_dev.lean 4 15 ['gasparattila', 'github-actions', 'grunweg', 'joneugster', 'lecopivo', 'mathlib-merge-conflicts'] joneugster
assignee:joneugster
73-67134
2 months ago
2-13333
2 days ago
75-75529
75 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 13 ['IvanRenison', 'chrisflav', 'github-actions', 'robin-carlier', 'wwylele'] eric-wieser
assignee:eric-wieser
72-67149
2 months ago
9-77175
9 days ago
75-21636
75 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/Algebra/BigOperators/Finprod.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean 3 200 ['Rida-Hamadani', 'github-actions', 'grunweg', 'idontgetoutmuch'] fpvandoorn
assignee:fpvandoorn
71-13180
2 months ago
22-20293
22 days ago
67-26898
67 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 maintainer-merge 323/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean 2 19 ['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'mitchell-horner', 'robin-carlier'] b-mehta
assignee:b-mehta
70-46620
2 months ago
7-67282
7 days ago
67-75870
67 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 653/0 Mathlib.lean,Mathlib/NumberTheory/AKSPrimality.lean 2 52 ['MichaelStollBayreuth', 'github-actions', 'jcommelin', 'kim-em', 'metakunt', 'qawbecrdtey', 'tb65536', 'vihdzp'] tb65536
assignee:tb65536
67-57318
2 months ago
43-47910
43 days ago
73-37899
73 days
35504 JoaBjo
author:JoaBjo
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property Add the main analytic results for the exponential distribution: - moment-generating function `mgf id (expMeasure r) t = r / (r - t)` for `t < r` - mean `∫ x, x ∂(expMeasure r) = r⁻¹` - variance `Var[id; expMeasure r] = r⁻¹ ^ 2` - `ℒp` membership for all `p` - tail probability `P(X > x) = exp (-(r * x))` - memoryless property `P(X > s + t | X > s) = P(X > t)` The MGF is computed by reducing to the known improper integral `∫ exp(c * x)` on `Ioi`, and integrability is deduced by contradiction from the positive closed-form value. The mean and variance are computed via the Gamma function integral `∫₀^∞ x^(n-1) exp(-r x) dx = Γ(n) / rⁿ`. The memoryless property follows from the exponential identity `exp(-(r(s+t))) = exp(-rt) * exp(-rs)`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 200/0 Mathlib/Probability/Distributions/Exponential.lean 1 6 ['JoaBjo', 'Timeroot', 'github-actions'] kex-y
assignee:kex-y
66-2575
2 months ago
16-30865
16 days ago
32-29684
32 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 11 ['Multramate', 'Ruben-VandeVelde', 'github-actions', 'smmercuri'] mattrobball
assignee:mattrobball
65-85718
2 months ago
20-37335
20 days ago
66-21705
66 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. --- - [x] depends on: #30436 - [x] depends on: #38179 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
427/1 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Pentagonal.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml 4 59 ['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib-dependent-issues', 'tb65536', 'urkud', 'vihdzp', 'wwylele'] chrisflav
assignee:chrisflav
64-82127
2 months ago
9-68568
9 days ago
119-80271
119 days
35892 vlad902
author:vlad902
feat(Data): lemmas for `List.bagInter` Basic API lemmas for `List.bagInter` and correct a few misnamed lemmas. Co-authored-by: Aristotle (Harmonic) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 60/5 Mathlib/Data/List/Lattice.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/Multiset/UnionInter.lean 3 13 ['Vierkantor', 'github-actions', 'vlad902'] Vierkantor
assignee:Vierkantor
63-67136
2 months ago
17-37004
17 days ago
17-58058
17 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'] eric-wieser
assignee:eric-wieser
63-55253
2 months ago
75-6599
75 days ago
77-40731
77 days
36219 gasparattila
author:gasparattila
chore(Order/SupClosed): use `to_dual` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 86/217 Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/SupClosed.lean 6 6 ['github-actions', 'mathlib-merge-conflicts'] bryangingechen
assignee:bryangingechen
62-28557
2 months ago
26-8878
26 days ago
30-12935
30 days
36439 xgenereux
author:xgenereux
feat(Algebra/Adjoin): CoeDep instances for Algebra.adjoin on singletons It is a common occurrence that I need to consider an element `x` or some polynomial evaluated in `x`, `p.eval x` as an element of `Algebra.adjoin R {x}`. This makes it so that we can write - `(x : adjoin R {x})` instead of `⟨x, self_mem_adjoin_singleton A x⟩` - `(p.eval x : adjoin R {x})` instead of `⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩` This is particularly useful when we need to write the type anyways, so that we need not to write `(⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩ : adjoin R {x})` anymore. Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
9/3 Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean 2 17 ['Vierkantor', 'chrisflav', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'xgenereux'] jcommelin
assignee:jcommelin
62-18311
2 months ago
13-16572
13 days ago
48-53727
48 days
35316 mkaratarakis
author:mkaratarakis
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 4/5) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory new-contributor large-import 86/0 Mathlib/Analysis/Analytic/Order.lean 1 29 ['MichaelStollBayreuth', 'SnirBroshi', 'github-actions', 'kebekus', 'mathlib-dependent-issues', 'mkaratarakis'] MichaelStollBayreuth
assignee:MichaelStollBayreuth
62-15523
2 months ago
4-72649
4 days ago
28-20043
28 days
36451 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Matching): `edgeSet` is injective and strictly monotonic on matchings, and more API --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 45/11 Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 3 13 ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] b-mehta
assignee:b-mehta
62-2870
2 months ago
18-9170
18 days ago
46-47870
46 days
36155 grunweg
author:grunweg
feat: custom elaborators for TangentSpace and tangentMap(Within) And use these to golf the differential geometry files a bit further. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry t-meta 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,MathlibTest/DifferentialGeometry/Notation/Basic.lean 7 7 ['JovanGerb', 'github-actions', 'grunweg', 'mathlib-merge-conflicts', 'ocfnash'] JovanGerb
assignee:JovanGerb
61-67135
2 months ago
28-25969
28 days ago
66-34273
66 days
30526 SnirBroshi
author:SnirBroshi
chore(Logic/Relation): use `≤` to spell subrelation Replace every `∀ x y, r x y → r' x y` with `r ≤ r'` --- NOTE: this PR began as an effort to use `Subrelation` since `≤` wasn't available in this file, but it was agreed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2330526.20use.20Subrelation.20in.20Mathlib.2ELogic.2ERelation/with/546572676) to instead make `≤` available there. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 161/136 Mathlib.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/ConnectedComponents.lean,Mathlib/CategoryTheory/Filtered/Connected.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean,Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Defs/Prop.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/Topology/Gluing.lean 25 21 ['SnirBroshi', 'Vierkantor', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] Vierkantor
assignee:Vierkantor
61-49154
2 months ago
17-69455
17 days ago
79-51075
79 days
36169 SnirBroshi
author:SnirBroshi
feat(Order/ConditionallyCompleteLattice/Indexed): `iSup` of `sup`s vs `sup` of `iSup`s `ciSup_sup_eq`/`ciInf_inf_eq` match `CompleteLattice`'s `iSup_sup_eq`/`iInf_inf_eq`, and in a `ConditionallyCompleteLinearOrder` we get an inequality without any bounded assumptions. `Finset.ciSup_union` for `ConditionallyCompleteLinearOrderBot` matches `CompleteLattice`'s `Finset.iSup_union`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 39/0 Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean 2 11 ['SnirBroshi', 'Vierkantor', 'github-actions', 'vihdzp'] Vierkantor
assignee:Vierkantor
60-67155
1 month ago
11-67221
11 days ago
33-19927
33 days
32555 ksenono
author:ksenono
feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 127/0 Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean 2 39 ['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] nobody
60-57645
1 month ago
24-16877
24 days ago
123-84712
123 days
28546 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`. Summary of additions: - **Full shift and shift action** - `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type). - Right shift `shift g x` with convention `(shift g x) h = x (h * g)`. - **Cylinders and topology** - `cylinder U x : Set (G → A)` for finite `U : Finset G`. - Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed. - Equality with dependent products: `cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API. - **Patterns, occurrences, and subshifts** - `Pattern A G` with finite `support : Finset G` and `data : support → A`. - `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law. - `forbids F` and `Subshift A G` (closed, shift-invariant subsets). - `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness. - **Language on finite shapes and counting** - `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`. - **Entropy along a shape sequence** - `limsupAtTop` (as an `sInf` of eventual upper bounds). - `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)` for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`). - **Specializations** - `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`. - `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`. Mathematical remarks: - The API is **shape-parametric**: entropy is defined along user-provided finite shapes. - On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss). This PR does not assume amenability; the family of shapes is an explicit input. Motivation: Provide a clean, reusable base for symbolic dynamics on groups in mathlib. Future work: - Add a Følner predicate and prove shape-independence / limit existence on amenable groups. - Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors). - Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch). t-dynamics new-contributor 746/0 Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean 3 187 ['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] urkud
assignee:urkud
60-46797
1 month ago
12-56007
12 days ago
167-6620
167 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 85/72 .github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean 2 4 ['github-actions', 'mathlib-merge-conflicts'] nobody
59-67137
1 month ago
43-27746
43 days ago
75-68430
75 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'] YaelDillies
assignee:YaelDillies
59-56985
1 month ago
117-84251
117 days ago
117-84097
117 days
34045 smmercuri
author:smmercuri
feat: `algebraMap K L` is uniform continuous with respect to adic topologies, when the ideal `w` of `L` lies above `v` - `A` is a Dedekind domain with field of fractions `K`. - `B` is a Dedekind domain with field of fractions `L`. - `L` is a field extension of `K`. - `v` is a height one prime ideal of `A`. - `w` is a height one prime ideal of `B` lying over `v`. Then respective valuations are related via the ramification index, and `algebraMap (WithVal (v.valuation K)) (WithVal (w.valuation L))` is uniform continuous. --- - [x] depends on: #34049 - [x] depends on: #35972 - [x] depends on: #36144 - [x] depends on: #36310 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) FLT t-algebra t-number-theory
label:t-algebra$
164/4 Mathlib.lean,Mathlib/Algebra/Order/Hom/Units.lean,Mathlib/NumberTheory/RamificationInertia/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean 5 10 ['dagurtomas', 'github-actions', 'jjdishere', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smmercuri'] alreadydone
assignee:alreadydone
59-38511
1 month ago
14-20693
14 days ago
32-15079
32 days
36376 jessealama
author:jessealama
feat(SimpleGraph): hamiltonian cycle from cyclic permutation This PR provides `IsHamiltonian.of_perm`, a bridge from `Equiv.Perm.IsCycle` to `SimpleGraph.IsHamiltonian`: if σ is a permutation that is a single cycle with full support on at least 3 elements, and each step `v → σ v` is an edge of `G`, then `G` is Hamiltonian. ### New definitions and lemmas **`Mathlib/Data/List/Chain.lean`**: - `IsChain.iterate`: `List.iterate f a n` is a chain under `r` whenever `r a (f a)` holds for all `a` **`Mathlib/Data/List/Iterate.lean`**: - `getLast_iterate`: the last element of `List.iterate f a n` is `f^[n - 1] a` **`Mathlib/Combinatorics/SimpleGraph/Walk/Iterate.lean`** (new file): - `Walk.iterate`: builds a walk of length `n` from `x` to `f^[n] x` for any function `f` with `G.Adj x (f x)` for all `x`, defined via `Walk.ofSupport` - `Walk.length_iterate`, `Walk.support_iterate`, `Walk.edges_iterate`: basic API **`Mathlib/GroupTheory/Perm/Cycle/Basic.lean`**: - `IsCycleOn.injOn_pow_apply`: the map `n ↦ (f ^ n) a` is injective on `Finset.range #s` **`Mathlib/GroupTheory/Perm/Cycle/Concrete.lean`**: - `IsCycleOn.injOn_sym2_pow_apply`: the unordered-pair edge map `k ↦ s((f ^ k) a, (f ^ (k + 1)) a)` is injective on `[0, #s)` when `#s ≠ 2` - `IsCycleOn.sym2_pow_apply_ne`: edge distinctness for cycle-on permutations — `s((f ^ k) a, (f ^ (k + 1)) a) ≠ s(a, f a)` when `k ≠ 0`, `k < #s`, and `#s ≠ 2` - `Perm.toList_eq_range_map_pow`: expresses `toList` as a range map over powers **`Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean`**: - `cons_isHamiltonianCycle_iff`: a Hamiltonian path closed by an edge outside its support is a Hamiltonian cycle, and conversely - `IsHamiltonian.of_perm`: the main theorem --- - [x] depends on: #36307 t-combinatorics maintainer-merge large-import 158/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian/Perm.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Iterate.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Iterate.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean 5 75 ['SnirBroshi', 'YaelDillies', 'github-actions', 'jessealama', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
59-30684
1 month ago
5-34690
5 days ago
43-39598
43 days
35865 vihdzp
author:vihdzp
chore: review `Cardinal.ord` API This PR does the following: - Mark `Cardinal.ord` as no expose. - Prove the defining property `gciOrdCard` earlier. - Deprecate the unused `ord.orderEmbedding` (it simply restates that the function is strictly monotonic). - Rename `ord_nat` → `ord_natCast`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 45/39 Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean 4 6 ['github-actions', 'mathlib-merge-conflicts'] b-mehta
assignee:b-mehta
59-5578
1 month ago
32-76251
32 days ago
68-20379
68 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 59/57 Mathlib/SetTheory/Ordinal/CantorNormalForm.lean 1 16 ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] nobody
58-46063
1 month ago
47-36913
47 days ago
66-28733
66 days
33506 Rida-Hamadani
author:Rida-Hamadani
feat(SimpleGraph): construct a cycle of two distinct paths with same start and end Co-authored-by: Vlad Tsyrklevich Co-authored-by: Snir Broshi <26556598+SnirBroshi@users.noreply.github.com> --- - [x] depends on: #33249 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 109/1 Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Nodup.lean 4 60 ['Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vlad902'] nobody
58-26093
1 month ago
3-58747
3 days ago
21-32613
21 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/) documentation 131/116 Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/DepRewrite.lean,Mathlib/Tactic/Finiteness.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/SimpIntro.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Widget/InteractiveUnfold.lean 17 1 ['Multramate', 'github-actions'] nobody
38-21472
1 month ago
45-71405
45 days ago
45-76948
45 days
37624 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Maps): add theorems about composition --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 25/4 Mathlib/Combinatorics/SimpleGraph/Maps.lean 1 1 ['github-actions'] nobody
37-73169
1 month ago
37-73243
37 days ago
37-73089
37 days
37690 yuanyi-350
author:yuanyi-350
feat(Combinatorics/Enumerative/Bell): sum over partition shapes ## Summary - add multiplicative lemmas relating `Multiset.bell` when inserting a part - prove `Nat.bell` as a sum of `Multiset.bell` over partition shapes - Kill TODO in `Mathlib/Combinatorics/Enumerative/Bell.lean` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 153/16 Mathlib/Combinatorics/Enumerative/Bell.lean 1 1 ['github-actions'] nobody
34-41434
1 month ago
35-40059
35 days ago
35-39905
35 days
37642 SnirBroshi
author:SnirBroshi
chore(Combinatorics/SimpleGraph): tidy various files --- Concept inspired by @Ruben-VandeVelde :) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 89/72 Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean,Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Subwalks.lean 8 2 ['SnirBroshi', 'github-actions'] nobody
34-5393
1 month ago
34-5453
34 days ago
36-21936
36 days
37697 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Clique): add theorems about cliques and induced graphs --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 22/0 Mathlib/Combinatorics/SimpleGraph/Clique.lean 1 9 ['Rida-Hamadani', 'SnirBroshi', 'github-actions'] nobody
31-79961
1 month ago
35-18006
35 days ago
35-17852
35 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/) 11/41 Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/Seq/Parallel.lean,Mathlib/Data/Sigma/Basic.lean 6 13 ['chenson2018', 'euprunin', 'github-actions', 'mathlib-merge-conflicts'] nobody
30-44252
1 month ago
30-44312
30 days ago
55-15937
55 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/) 10/29 Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Tactic/NormNum/DivMod.lean 4 11 ['chenson2018', 'euprunin', 'github-actions'] nobody
30-41892
1 month ago
30-41953
30 days ago
48-39383
48 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/10 Mathlib/GroupTheory/Perm/Support.lean 1 4 ['artie2000', 'chenson2018', 'euprunin', 'github-actions'] nobody
30-41856
1 month ago
56-84424
56 days ago
56-84270
56 days
37700 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Maps): add `Iso.induceIso` Similar to `induceHom` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 29/0 Mathlib/Combinatorics/SimpleGraph/Maps.lean 1 3 ['github-actions', 'vlad902'] nobody
30-805
1 month ago
30-863
30 days ago
35-13026
35 days
37720 cjrl
author:cjrl
feat(Data/Fintype/Card): existsUnique_notMem_image_of_injective_of_card_succ This pull requests adds a small theorem `existsUnique_notMem_image_of_injective_of_card_succ` to `Mathlib/Data/Fintype/Card` that says given an injective map f : α → β such that β has cardinality one more than α, there exists a unique element of β not in the image of f. This can be viewed as going in the opposite direction of `card_lt_of_injective_of_notMem`. This little fact is needed for our Latin Square PR #36698. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor t-set-theory 15/0 Mathlib/Data/Fintype/Card.lean 1 6 ['IvanRenison', 'cjrl', 'github-actions'] nobody
29-1145
29 days ago
29-1203
29 days ago
34-54900
34 days
37053 artie2000
author:artie2000
refactor(Analysis/Convex/Cone): use `PointedCone` in Riesz extension theorem Change the statement of the Riesz extension theorem to take a `PointedCone` rather than a `ConvexCone`. This PR is part of a series replacing `ConvexCone` with `PointedCone`. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Replacing.20.60ConvexCone.60.20with.20.60PointedCone.60/near/581184307 --- [![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 8 ['YaelDillies', 'artie2000', 'github-actions', 'mathlib-merge-conflicts', 'ocfnash'] nobody
27-22138
27 days ago
27-22166
27 days ago
46-63449
46 days
37865 Jun2M
author:Jun2M
feat(Combinatorics/Graph): Edge cut of `Graph` This PR introduces - `edgeCut`: A function on set of vertices that returns the set of edges with exactly one end in the set. - `IsEdgeCut`: A predicate for set of edges that promises it is `edgeCut` of some set. - `IsBridge`: An edge `e` is a bridge iff it is a singleton edge cut. - `IsBond`: An edge Set `B` is bond iff it is minimal nonempty edge cut. --- - [x] depends on: #35879 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 194/0 Mathlib/Combinatorics/Graph/Connected/EdgeCut.Lean,Mathlib/Combinatorics/Graph/Subgraph.lean 2 2 ['github-actions', 'mathlib-dependent-issues'] nobody
25-85021
25 days ago
26-16278
26 days ago
26-16562
26 days
37420 artie2000
author:artie2000
refactor: change definitions to avoid `ConvexCone` Change the definitions of `PointedCone.positive` and `PointedCone.closure` to avoid mentioning `ConvexCone`. This PR is part of a series deprecating `ConvexCone`: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Replacing.20.60ConvexCone.60.20with.20.60PointedCone.60/with/582738985 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry maintainer-merge 10/4 Mathlib/Analysis/Convex/Cone/Closure.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean 2 3 ['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'ooovi', 'vihdzp'] nobody
25-28190
25 days ago
25-28154
25 days ago
40-48563
40 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 2 ['artie2000', 'euprunin', 'github-actions'] nobody
25-461
25 days ago
55-8987
55 days ago
55-8833
55 days
38141 Jun2M
author:Jun2M
feat(Order/Partition): Partition induced by symmetric, transitive relation We introduce a constructor for Partition from a symmetric, transitive relation, with `copy` function baked into the definition. Co-authored-by: Peter Nelson --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 41/7 Mathlib/Order/Partition/Basic.lean 1 1 ['github-actions'] nobody
24-63970
24 days ago
24-64037
24 days ago
24-63883
24 days
38185 Jun2M
author:Jun2M
feat(Order/Partition): operations over Frame This PR introduces: * `Partition.induce`: The induce of a partition by a frame element. * `Partition.disjUnion`: The disjoint union of two partitions. * `Partition.bind`: The finer partition obtained by family of partitions for each part of the original partition. Co-authored-by: Peter Nelson --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 89/11 Mathlib/Order/Partition/Basic.lean,Mathlib/Order/SupIndep.lean 2 1 ['github-actions'] nobody
23-81356
23 days ago
23-81428
23 days ago
23-81274
23 days
38200 Parcly-Taxel
author:Parcly-Taxel
feat: Turán numbers and their strict monotonicity `strictMonoOn_turanNumber` and `sum_mul_le_twice_turanNumber` were initially proved by @Aristotle-Harmonic, then hand-polished. Co-authored-by: Aristotle (Harmonic) t-combinatorics 55/20 Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean 1 1 ['github-actions'] nobody
23-38000
23 days ago
23-39427
23 days ago
23-39273
23 days
38245 RemyDegenne
author:RemyDegenne
feat: CountableSupClosed Define the property for a set of being closed by countable supremum (resp. infimum). The new file is adapted from the `SupClosed` file, which describes sets closed by binary supremum. Also use `to_dual` on `SupClosed`. `CountableInfClosed` will be used in measure theory, for developments related to compact systems used for Kolmogorov's extension theorem and Choquet's capacitability theorem. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order brownian 308/66 Mathlib.lean,Mathlib/Order/CountableSupClosed.lean,Mathlib/Order/SupClosed.lean 3 14 ['RemyDegenne', 'b-mehta', 'github-actions', 'vihdzp'] nobody
22-12742
22 days ago
22-26992
22 days ago
22-31562
22 days
32282 jsm28
author:jsm28
feat(Geometry/Euclidean/Angle/Incenter): unoriented angle bisection Add lemmas giving unoriented angles involving the incenter and excenters of a triangle as expressions involving dividing angles of the triangle by 2, deduced from oriented bisection lemmas. --- - [ ] depends on: #30981 - [ ] depends on: #30982 - [ ] depends on: #31205 - [ ] depends on: #32019 - [ ] depends on: #32021 - [ ] depends on: #32259 - [ ] depends on: #32260 - [ ] depends on: #32270 - [ ] depends on: #32273 - [ ] depends on: #32278 [![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'] nobody
21-67145
21 days ago
45-4697
45 days ago
45-5279
45 days
37523 matthewjasper
author:matthewjasper
feat: elements of Dedekind domain approximate elements of valuation ring Algebra part of showing that `R` is dense in `O_v` which is used to show that `R / v` is isomorphic to the residue field of `O_v` and construct the base change isomorphism for finite adeles. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 87/11 Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean 2 2 ['github-actions', 'mathlib-merge-conflicts'] mariainesdff
assignee:mariainesdff
21-66629
21 days ago
23-22304
23 days ago
38-37922
38 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 290/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/MapSimp.lean 5 11 ['adamtopaz', 'dagurtomas', 'github-actions', 'joelriou'] adamtopaz
assignee:adamtopaz
20-54001
20 days ago
20-54059
20 days ago
46-51099
46 days
38036 JovanGerb
author:JovanGerb
feat: `NSMul`/`NPow` type class This PR is adds `NSMul`, `NPow`, `ZSMul` and `ZPow` classes for the `nsmul`, `npow`, `zsmul`, `zpow` data fields. This has a few advantages: - If you first declare a `SMul` instance, then you don't need to manually write `nsmul := (· • ·)` and `zsmul := (· • ·)` . For `Pow`, the extra benefit is that inferring the instance is preferred over the default field `npowRecAuto`. So this helps avoid accidental diamonds. - If you first declare a `SMul` instance on a type synonym, then `inferInstanceAs` will infer the `nsmul` field from the `SMul` instance. This makes it easier to avoid diamonds on type synonyms like `Matrix` and `MonoidAlgebra`. - The not-yet-merged instance diamond linter will be able to detect cases where the `NSMul` and `SMul` classes do not agree. In the process of making this PR, I have identified two existing `NPow` diamonds: - In `Mathlib.Algebra.Order.Positive.Field`, there were two conflicting `NPow` instances. - For `Fin`, there are two conflicting `NPow` instances. I have overwritten the one in core lean with the one from mathlib that is more computationally efficient. TODO: the same for `QSMul` and `NNQSMul`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 276/273 Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/Algebra/Group/Action/Opposite.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Opposite.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Positive/Field.lean,Mathlib/Algebra/Order/Ring/Archimedean.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Ring/MinimalAxioms.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/CategoryTheory/Triangulated/Basic.lean,Mathlib/Data/BitVec.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/ZMod/Defs.lean,Mathlib/Data/ZMod/IntUnitsPower.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/LinearAlgebra/Matrix/Defs.lean,Mathlib/LinearAlgebra/Matrix/ZPow.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/RingTheory/PolynomialLaw/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,MathlibTest/instance_diamonds.lean 41 16 ['JovanGerb', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-radar', 'vihdzp'] nobody
20-20348
20 days ago
20-21240
20 days ago
20-21376
20 days
38337 Jun2M
author:Jun2M
feat(Combinatorics/Graph): supremum This PR introduces the union of `Graph`, as `sup`. Due to compatibility issue, in general, `sup` is not very well-behaved: `SemilatticeSup` is not true. In the case of incompatible edge, unlike `inf` which simply removed such edge, we include it following its incidence in the left graph. This has the benefit of associativity being true in general at the cost of commutativity. Assuming compatibility or existence of mutual supergraph, which are shown to be equivalent in this PR, everything behaves nicely. Co-authored-by: Peter Nelson --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 86/1 Mathlib/Combinatorics/Graph/Lattice.lean 1 2 ['github-actions', 'vihdzp'] nobody
19-79496
19 days ago
20-17869
20 days ago
20-17715
20 days
38356 SnirBroshi
author:SnirBroshi
feat(Order/ConditionallyCompleteLattice/Finset): `sSup s ≠ ⊤` in a `CompleteLinearOrder` for a finite set without `⊤` --- btw `to_dual` here is blocked on #35213 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 20/0 Mathlib/Order/ConditionallyCompleteLattice/Finset.lean 1 1 ['github-actions'] nobody
19-64214
19 days ago
19-64289
19 days ago
19-64135
19 days
37939 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Order/Completion): embed a linear order into a dense and complete linear order The aim of the PR is to prove the following theorem that will be used as an input to [Sion.DMCompletion.exists_isSaddlePointOn](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sion.html#Sion.DMCompletion.exists_isSaddlePointOn) : *If `β` is any linear order, then there exists a complete and dense linear order `γ` together with a continuous embedding `ι : β ↪o γ` (for the order topologies on `β` and `γ`).* Meanwhile, the PR also records various instances about dense orders and lemmas regarding the Dedekind MacNeille completion and lexicographic orders. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 206/3 Mathlib.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Order/Completion.lean,Mathlib/Topology/Order/Completion.lean,Mathlib/Topology/Sion.lean 5 52 ['ADedecker', 'AntoineChambert-Loir', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] vihdzp
assignee:vihdzp
18-79266
18 days ago
19-13597
19 days ago
22-13142
22 days
38325 Jun2M
author:Jun2M
feat(Combinatorics/Graph): EndPoint function This PR introduces `endPoints`: `Set` of incident vertices, given an edge (in the case of non-edge, return empty). **Import change**: `Graph/Basic` now imports `Data/Set/Card` to allow reasoning about card of `endPoints`. [Relavent Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/New.20graph.20definitions/with/588616269) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics large-import 83/3 Mathlib/Combinatorics/Graph/Basic.lean 1 9 ['Jun2M', 'SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib-bors'] nobody
18-71212
18 days ago
18-80042
18 days ago
20-49831
20 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 17/0 Mathlib/Topology/DerivedSet.lean 1 6 ['NoneMore', 'github-actions', 'plp127', 'vihdzp'] urkud
assignee:urkud
18-66537
18 days ago
41-15193
41 days ago
41-68453
41 days
38393 staroperator
author:staroperator
refactor(ModelTheory): add typeclasses for algebraic symbols `Language.ring` and `Language.presburger` share the same symbols `0`, `1` and `+` and have duplicated instances on `Term` and `realize` simp lemmas. This PR makes these symbols certain typeclasses (similar to [`Language.IsOrdered`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/ModelTheory/Order.html#FirstOrder.Language.IsOrdered)) and removes the duplication. It also adds certain definability lemmas that `fun_prop` can use. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 332/201 Mathlib.lean,Mathlib/ModelTheory/Algebra/Classes.lean,Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean,Mathlib/ModelTheory/Algebra/Ring/Basic.lean,Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Basic.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Definability.lean 7 1 ['github-actions'] nobody
18-58906
18 days ago
18-58964
18 days ago
18-60362
18 days
38406 plp127
author:plp127
chore(ModelTheory/Skolem): remove unnecessary `[Nonempty M]` assumption Removes a `[Nonempty M]` assumption by slightly modifying two proofs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 7/1 Mathlib/ModelTheory/Skolem.lean 1 1 ['github-actions'] nobody
18-32763
18 days ago
18-32834
18 days ago
18-32680
18 days
38055 felixpernegger
author:felixpernegger
feat(Topology/EMetricSpace): add r-variation Redoing #37007 (I had accidently deleted my fork which nuked the PR). See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/p-variation for discussion. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology t-analysis 408/0 Mathlib.lean,Mathlib/Topology/EMetricSpace/RVariation.lean 2 2 ['felixpernegger', 'github-actions'] j-loreaux
assignee:j-loreaux
17-66534
17 days ago
25-37723
25 days ago
25-37963
25 days
38114 javgomzar
author:javgomzar
feat(FinitelyPresentedGroup): add finite groups instance Add IsFinitelyPresented instance for finite groups. Co-authored-by: Hang Lu Su , Thomas Browning --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory new-contributor large-import 32/3 Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean 2 32 ['github-actions', 'javgomzar', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536', 'vihdzp'] mattrobball
assignee:mattrobball
17-66531
17 days ago
19-72570
19 days ago
22-75957
22 days
38422 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Maps): `G →g G.map f` The existing `SimpleGraph.Embedding.map` takes an embedding and lifts it to a graph embedding `G ↪g G.map f`. #36130 generalized `SimpleGraph.map` from embeddings to functions, so now we can get a graph homomorphism `G →g G.map f` without requiring that `f` is injective, although we still have to require that it is injective on adjacent vertices (aka a valid coloring). This adds `Coloring.homMap`, and `Hom.map` which is identical but avoids coloring terminology/spelling. --- I'd love for suggestions to improve the docstring of `Coloring.homMap`, I'm not sure about it :) Are the two versions a good idea, or should we just have the coloring one? (we have `{Hom,Embedding,Iso}.comap` but only `{Embedding,Iso}.map`) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 16/0 Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean 2 4 ['SnirBroshi', 'eric-wieser', 'github-actions'] nobody
17-61503
17 days ago
18-10280
18 days ago
18-10183
18 days
38424 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Coloring/VertexColoring): `chromaticNumber ⊤` and other small lemmas - Golf `isEmpty_of_colorable_zero` and rename to `Colorable.isEmpty` - `colorable_one_iff`: `G.Colorable 1 ↔ G = ⊥` - Combine `chromaticNumber_eq_zero_of_isEmpty`/`isEmpty_of_chromaticNumber_eq_zero` into `chromaticNumber_eq_zero_iff : G.chromaticNumber = 0 ↔ IsEmpty V` and deprecate the `→` side - `chromaticNumber_top_eq_enat_card`: `chromaticNumber ⊤ = ENat.card V` - Tag `chromaticNumber_top_eq_top_of_infinite`/`chromaticNumber_eq_zero_of_isEmpty` as `simp` - Golf `chromaticNumber_eq_one_iff` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 33/26 Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean 1 3 ['SnirBroshi', 'github-actions', 'vlad902'] nobody
16-84689
16 days ago
18-6403
18 days ago
18-6687
18 days
38498 SnirBroshi
author:SnirBroshi
feat(Order/RelIso/Basic): lift a function to an order morphism into `Relation.Map` or from `Function.onFun` For an `α`-relation `r` we have: ``` mapRelHom (f : α → β) : r →r Relation.Map r f f mapRelEmbedding (f : α ↪ β) : r ↪r Relation.Map r f f mapRelIso (f : α ≃ β) : r ≃r Relation.Map r f f ``` For a `β`-relation `r` we have: ``` onFunRelHom (f : α → β) : r.onFun f →r r onFunRelEmbedding (f : α ↪ β) : r.onFun f ↪r r onFunRelIso (f : α ≃ β) : r.onFun f ≃r r ``` --- These are pretty similar to `SimpleGraph.{Embedding/Iso}.map` and `SimpleGraph.{Hom/Embedding/Iso}.comap`, as [`comap`](https://github.com/leanprover-community/mathlib4/blob/9268b22206b0425419498769f780a91dee03bcf3/Mathlib/Combinatorics/SimpleGraph/Maps.lean#L117-L118) on graphs is a wrapper around `onFun`, and [`map`](https://github.com/leanprover-community/mathlib4/blob/9268b22206b0425419498769f780a91dee03bcf3/Mathlib/Combinatorics/SimpleGraph/Maps.lean#L57-L58) on graphs is *almost* a wrapper around `Relation.Map`. btw `@[simps]` is angry at me when I try to use it on the structures that use spread syntax. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 42/0 Mathlib/Order/RelIso/Basic.lean 1 1 ['github-actions'] nobody
16-54856
16 days ago
16-54931
16 days ago
16-54777
16 days
38344 robo7179
author:robo7179
feat(SimpleGraph/Coloring/VertexColoring): Matching is 2 colorable --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 51/0 Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean 1 5 ['SnirBroshi', 'github-actions', 'vlad902'] nobody
16-30779
16 days ago
19-84723
19 days ago
19-84955
19 days
38222 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Girth): add lemmas about isomorphism and girth --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 19/1 Mathlib/Combinatorics/SimpleGraph/Girth.lean 1 6 ['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] nobody
16-14401
16 days ago
22-75714
22 days ago
22-75560
22 days
38528 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Paths): some cycle lemmas are true for circuits Add `IsCircuit.{not_of_nil,ne_bot,three_le_length}` by using their corresponding `IsCycle` proofs. Also golfs a bit. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 17/9 Mathlib/Combinatorics/SimpleGraph/Paths.lean 1 1 ['github-actions'] nobody
16-13305
16 days ago
16-13375
16 days ago
16-13221
16 days
37541 EtienneC30
author:EtienneC30
feat: another version of the cardinality of the difference In mathlib there is `Set.ncard_diff` which states that `(t \ s).ncard = t.ncard - s.ncard` when `s ⊆ t` and `s` is finite. But one way to prove that `s` is finite is by showing that `t` is finite and using the `s ⊆ t` hypothesis, so this PR adds `Set.ncard_diff'` which assumes that `t` is finite instead of `s`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 5/0 Mathlib/Data/Set/Card.lean 1 1 ['github-actions'] TwoFX
assignee:TwoFX
15-66459
15 days ago
39-22503
39 days ago
39-22349
39 days
38531 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Paths): `Walk.map` preserves more properties Adds some missing theorems about how `Walk.map` behaves with `IsTrail`/`IsPath`/`IsCircuit`/`IsCycle`. Summary of what we have now, with the 8 new theorems and 2 renames marked: ``` IsTrail.of_map : (p.map f).IsTrail → p.IsTrail -- new map_isTrail_iff_of_injective : f.Injective → (p.map f).IsTrail ↔ p.IsTrail IsTrail.map : f.Injective → p.IsTrail → (p.map f).IsTrail -- renamed from map_isTrail_of_injective IsPath.of_map : (p.map f).IsPath → p.IsPath map_isPath_iff_of_injective : f.Injective → (p.map f).IsPath ↔ p.IsPath IsPath.map : f.Injective f → p.IsPath → (p.map f).IsPath -- renamed from map_isPath_of_injective IsCircuit.of_map : (p.map f).IsCircuit → p.IsCircuit -- new map_isCircuit_iff_of_injective : f.Injective → (p.map f).IsCircuit ↔ p.IsCircuit -- new IsCircuit.map : f.Injective → p.IsCircuit → (p.map f).IsCircuit -- new IsCycle.of_map : (p.map f).IsCycle → p.IsCycle -- new map_isCycle_iff_of_injective : f.Injective → (p.map f).IsCycle ↔ p.IsCycle IsCycle.map : f.Injective → p.IsCycle → (p.map f).IsCycle mapLe_isTrail : G ≤ G' → (p.mapLe h).IsTrail ↔ p.IsTrail IsTrail.of_mapLe : G ≤ G' → (p.mapLe h).IsTrail → p.IsTrail IsTrail.mapLe : G ≤ G' → p.IsTrail → (p.mapLe h).IsTrail mapLe_isPath : G ≤ G' → (p.mapLe h).IsPath ↔ p.IsPath IsPath.of_mapLe : G ≤ G' → (p.mapLe h).IsPath → p.IsPath IsPath.mapLe : G ≤ G' → p.IsPath → (p.mapLe h).IsPath mapLe_isCircuit : G ≤ G' → (p.mapLe h).IsCircuit ↔ p.IsCircuit -- new IsCircuit.of_mapLe : G ≤ G' → (p.mapLe h).IsCircuit → p.IsCircuit -- new IsCircuit.mapLe : G ≤ G' → p.IsCircuit → (p.mapLe h).IsCircuit -- new mapLe_isCycle : G ≤ G' → (p.mapLe h).IsCycle ↔ p.IsCycle IsCycle.of_mapLe : G ≤ G' → (p.mapLe h).IsCycle → p.IsCycle IsCycle.mapLe : G ≤ G' → p.IsCycle → (p.mapLe h).IsCycle ``` --- Also golfs `map_isPath_of_injective`/`IsPath.of_map`/`map_isTrail_iff_of_injective`, they don't need induction. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 47/31 Mathlib/Combinatorics/SimpleGraph/Paths.lean 1 1 ['github-actions'] nobody
15-21963
15 days ago
15-82443
15 days ago
15-82289
15 days
38549 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Copy): `Is(Ind)Contained` `completeGraph` lemmas - `G ⊑ completeGraph V` - `G ⊑ completeGraph W ↔ Nonempty (V ↪ W)` - `completeGraph V ⊴ completeGraph W ↔ Nonempty (V ↪ W)` - `G ⊴ completeGraph W → G = ⊤` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 12/0 Mathlib/Combinatorics/SimpleGraph/Copy.lean 1 1 ['github-actions'] nobody
15-19880
15 days ago
15-19949
15 days ago
15-19795
15 days
38529 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Girth): `egirth ⊤ = 3` when there are at least 3 vertices Since `Nontrivial` is not enough, we use the condition `3 ≤ ENat.card α`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 17/0 Mathlib/Combinatorics/SimpleGraph/Girth.lean 1 5 ['SnirBroshi', 'github-actions', 'vlad902'] nobody
15-19823
15 days ago
16-10540
16 days ago
16-10386
16 days
38548 adomasbaliuka
author:adomasbaliuka
feat(Algebra/Ring/BooleanRing): definitional lemmas for `Bool` ring operations Mathlib defines a ring structure on `Bool` but is missing definitional lemmas for the arithmetic operations. --- Discussed on Zulip ([#Is there code for X? > `Bool.xor` same as `+` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Bool.2Exor.60.20same.20as.20.60.2B.60/near/590927417)), in particular, it's not immediately intuitive to everyone what the operations do. Note that the parentheses around `^^` and `&&` are needed due to operator precedence w.r.t. `=`, see also https://github.com/leanprover-community/mathlib4/pull/38539. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
12/0 Mathlib/Algebra/Ring/BooleanRing.lean 1 1 ['github-actions'] nobody
15-19331
15 days ago
15-19331
15 days ago
15-19177
15 days
37835 YaelDillies
author:YaelDillies
doc(Algebra/Order): update mentions of `OrderedSemiring` and friends As of #20676, it was replaced by `IsOrderedRing`. Not all docs were straightforward to update. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-order
label:t-algebra$
123/280 Counterexamples/HomogeneousPrimeNotPrime.lean,Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean,Mathlib/Algebra/Group/Subgroup/Order.lean,Mathlib/Algebra/Group/ULift.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Group/Cyclic.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval/Set/Monoid.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Algebra/Order/Ring/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Algebra/Order/Sub/WithTop.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Order/WithTop/Untop0.lean,Mathlib/Combinatorics/Pigeonhole.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Cast/Order/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean,Mathlib/Order/Filter/Germ/OrderedMonoid.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Valuation.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/Tactic/NormNum/Ineq.lean 37 9 ['NoahW314', 'SnirBroshi', 'github-actions', 'mathlib-merge-conflicts'] nobody
15-11759
15 days ago
15-11784
15 days ago
30-6764
30 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 44/31 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean 8 8 ['SnirBroshi', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] b-mehta
assignee:b-mehta
14-66429
14 days ago
38-36549
38 days ago
52-20223
52 days
37722 SabrinaJewson
author:SabrinaJewson
feat(Order/Cover): intervals equal singletons iff To complement `Set.Icc_eq_singleton_iff`, this introduces: - `Set.Ioc_eq_singleton_iff` - `Set.Ico_eq_singleton_iff` - `Set.Ioi_eq_singleton_iff` - `Set.Iio_eq_singleton_iff` - `Set.Ioo_eq_singleton_iff` Unforunately because of the order of the ands, the last cannot be made self-dual. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 39/0 Mathlib/Order/Cover.lean 1 3 ['github-actions', 'mathlib-merge-conflicts'] Komyyy and bryangingechen
assignee:bryangingechen assignee:Komyyy
14-66425
14 days ago
32-68864
32 days ago
34-55472
34 days
38568 SnirBroshi
author:SnirBroshi
feat(SimpleGraph/Connectivity/Subgraph): `w.toSubgraph.IsInduced ↔ w.IsChordless` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 6/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean 1 1 ['github-actions'] nobody
14-53131
14 days ago
14-53201
14 days ago
14-53047
14 days
38554 YaelDillies
author:YaelDillies
chore(Combinatorics/SimpleGraph): use the auto-param in `loopless` more --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 5/13 Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Order/Cover.lean 8 6 ['SnirBroshi', 'YaelDillies', 'github-actions'] nobody
14-379
14 days ago
14-32720
14 days ago
14-34635
14 days
38359 mcdoll
author:mcdoll
feat: custom `simp` sets for translating between `Equiv` and algebraic notation --- The names for the simpsets are not great, I did ask on zulip, but no suggestions. [#mathlib4 > simpsets for moving between group and equiv](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/simpsets.20for.20moving.20between.20group.20and.20equiv/with/590381093) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-meta
label:t-algebra$
38/15 Mathlib/Algebra/Group/End.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/GroupTheory/Perm/Fin.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Tactic/Attr/Register.lean 5 4 ['Vierkantor', 'github-actions', 'mcdoll'] Vierkantor
assignee:Vierkantor
13-60063
13 days ago
13-60065
13 days ago
14-75220
14 days
38027 8e7
author:8e7
feat(Combinatorics/SimpleGraph/Star): define star graphs Add a new definition `starGraph` and several key lemmas. Star graphs are a trivial class of tree, often used in constructive proofs regarding trees. An example use case is shown in #38334. --- All lemmas are hand written first, then golfed with the help of Claude Code. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 85/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean 2 39 ['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] nobody
13-58772
13 days ago
25-58718
25 days ago
27-56829
27 days
38205 jcommelin
author:jcommelin
chore: reduce technical debt in FreimanHom This PR reduces technical debt related to the `CommRing` instance on `Fin (n + 1)`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics large-import 65/27 Mathlib/Combinatorics/Additive/FreimanHom.lean 1 9 ['Vierkantor', 'YaelDillies', 'github-actions', 'jcommelin'] nobody
13-35462
13 days ago
14-21267
14 days ago
18-35533
18 days
36709 kim-em
author:kim-em
feat(DefEqAbuse): suggest minimal @[implicit_reducible] workaround This PR extends `#defeq_abuse` to suggest a minimal set of `@[implicit_reducible]` annotations that would make the failing tactic or command succeed with `backward.isDefEq.respectTransparency true`. When `#defeq_abuse` detects a failure, it now runs a greedy minimisation over semireducible definitions reachable from the goal/command, finding a (possibly non-unique) minimal subset that, when temporarily marked `@[implicit_reducible]`, fixes the issue. The result is reported as an `info` message: ``` info: Workaround: the following @[implicit_reducible] annotations (a possibly non-unique minimal set) would paper over this problem, but the real issue is likely a leaky instance somewhere. set_option allowUnsafeReducibility true attribute [implicit_reducible] MyPred ``` This is a workaround, not a fix — the real cause is usually a leaky instance (which `#check_instance` from https://github.com/leanprover-community/mathlib4/pull/36706 can diagnose). But it can be useful for quick debugging. New helpers: `collectCandidates`, `markImplicitReducible`, `withTempImplicitReducible`, `withTempImplicitReducibleCmd`, `suggestAnnotationsTac`, `suggestAnnotationsCmd`, `formatAnnotations`, `logAnnotationSuggestions`. 🤖 Prepared with Claude Code t-meta LLM-generated 187/17 Mathlib/Tactic/DefEqAbuse.lean,MathlibTest/DefEqAbuse.lean 2 6 ['github-actions', 'kim-em', 'mathlib-merge-conflicts', 'thorimur'] dwrensha and thorimur
assignee:dwrensha assignee:thorimur
13-31537
13 days ago
13-31582
13 days ago
30-29639
30 days
38592 SnirBroshi
author:SnirBroshi
feat(Logic/Embedding/Basic): `refl_trans`/`trans_refl`/`trans_assoc` - `(.refl α).trans f = f` - `f.trans (.refl β) = f` - `(f.trans g).trans h = f.trans (g.trans h)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 12/0 Mathlib/Logic/Embedding/Basic.lean 1 1 ['github-actions', 'vihdzp'] nobody
13-16060
13 days ago
13-70396
13 days ago
13-70242
13 days
37951 martinwintermath
author:martinwintermath
chore(Geometry/Convex/Cone): rework `PointedCone.dual` to take a cone as input in place of a set Rework `PointedCone.dual` to take as input a cone instead of a set. This is done to untangle the functionality of `PointedCone.dual` from `PointedCone.hull` and to align it with the signature of its submodule analogue `Submodule.orthogonalBilin` (partially, with proposed functionality from #34007). See also the discussion here: [#mathlib4 > Reorganizing bilinearity and orthogonality?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Reorganizing.20bilinearity.20and.20orthogonality.3F/with/583882414). Main changes: * change signature `dual (s : Set M)` to `dual (C : PointedCone R M)`. * deprecate `dual_hull` since now obsolete in this form, instead add `mem_dual_hull` in addition to `mem_dual`. * deprecate all of `dual_empty`, `dual_zero` and `dual_singleton_zero` in favor of only `dual_bot`. * deprecate `dual_univ` in favor of `dual_top`. * add notation `R ∙₊ x` in analogy to submodule version `R ∙ x`, for use in new lemma `dual_hull_singleton`. * deprecate `dual_insert` since now obsolete (use `Submodule.span_insert` instead). * deprecate `dual_union`, `dual_iUnion` and `dual_sUnion` in favor of `dual_sup`, `dual_sSup` and `dual_iSup`. * remove `dual_sup` since now obsolete and name has been reused (see above). * add `dual_sup_ker` and `dual_univ_eq_ker` to align with (proposed) submodule analogue for `Submodule.orthogonalBilin`. * deprecate `dual_image` in favor of `dual_map` * add `hull_eq` (cone version of `span_eq`) since used in `basis_coord_mem_dual`. * adjust doc-strings Numerous changes to other files have been necessary. The dual-variants for proper cones or inner product spaces have not yet been adapted to cone-inputs, though this should happen eventually. The definition of `DualFG` has been changed to "duals of `FG`-cones" instead of "duals of finite sets" (also getting rid of `Finset` as previously requested). --- - [x] depends on: #37950 - [x] depends on: #37542 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 226/129 Mathlib/Analysis/Convex/Cone/Dual.lean,Mathlib/Analysis/Convex/Cone/InnerDual.lean,Mathlib/Analysis/Convex/Cone/TensorProduct.lean,Mathlib/Geometry/Convex/Cone/Dual.lean,Mathlib/Geometry/Convex/Cone/DualFinite.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean,Mathlib/Geometry/Convex/Cone/TensorProduct.lean 7 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
12-84501
12 days ago
12-84503
12 days ago
12-84349
12 days
38364 openendings
author:openendings
feat: create Order/DirectedCompletePartialOrder/Defs.lean Define DirectedCompletePartialOrder and its interaction with iSup and sSup. --- A DirectedCompletePartialOrder is equivalently: - a partial order with LUBs of nonempty directed sets; - what happens when you remove ⊥ from a CompletePartialOrder; or - a ConditionallyCompletePartialOrder in which every directed set is BddAbove. Like CPOs, DCPOs are commonly studied in denotational semantics. Potential applications: - [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/590070848) -- defining infinite sums in an DCPO-enriched `AddCommMonoidWithTop` such as `ENat` or `ENNReal`. - [#Is there code for X? > Scott Induction](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Scott.20Induction/with/590112858) -- fixpoint theorems similar to `OmegaCompletePartialOrder`, generalised to arbitrary cardinalities. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 123/0 Mathlib.lean,Mathlib/Order/DirectedCompletePartialOrder/Defs.lean,docs/references.bib 3 4 ['SnirBroshi', 'github-actions', 'openendings'] nobody
12-75035
12 days ago
18-65155
18 days ago
19-39827
19 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/) t-meta 54/2 Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Condensed/TopCatAdjunction.lean,Mathlib/Topology/Continuous.lean,MathlibTest/Continuity.lean 5 1 ['github-actions'] thorimur
assignee:thorimur
12-66221
12 days ago
54-18477
54 days ago
54-18331
54 days
37501 xgenereux
author:xgenereux
feat(DedekindDomain/AdicValuation): `intValuation` on uniformizers is `exp (-1)` This PR add the lemma `intValuation_val_uniformizer_eq` which is an application of #37497. Note that I've had to reorganize the files a little bit: 1. I wanted to import `Valuation.Discrete.Basic` in `AdicValuation` but this was not possible since there was a dependency in the other direction (`Valuation.Discrete.Basic` depended on `AdicValuation`). I don't think this makes sense - we want to have access to basic definitions on general valuation in an application file like `AdicValuation`. ~~The reorganization consist of moving the `IsDiscreteValuationRing` of `Valuation.Discrete.Basic` to `AdicValuation`.~~ The reorganization consist of moving the `IsDiscreteValuationRing` section to a new file. 2. I moved some lemmas out of `Mathlib.RingTheory.Valuation.Discrete.RankOne` to the parent file `Mathlib.RingTheory.Valuation.Discrete.Basic.`. These lemmas do not need the richer imports from `RankOne` and are needed in my application. Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- - [ ] depends on: #37497 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 203/167 Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/OrderOfVanishing/Noetherian.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean,Mathlib/RingTheory/Valuation/Discrete/IsDiscreteValuationRing.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean 8 4 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] mattrobball
assignee:mattrobball
12-66218
12 days ago
23-43368
23 days ago
31-35071
31 days
37747 JovanGerb
author:JovanGerb
chore(Order/Filter/AtTopBot/Basic): use `to_dual` This PR uses `to_dual` for `atTop`/`atBot`. A lot of theorems that have been tagged contain the expression `∀ a ≥ b, ...`, which means that their dual will be `∀ a, b ≥ a → ...`, which is obviourly undesirable. Hence, I would like to ask the reviewers to reconsider the possibility of merging #32985. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 56/164 Mathlib/Order/Filter/AtTopBot/Basic.lean 1 1 ['github-actions'] bryangingechen
assignee:bryangingechen
12-66217
12 days ago
34-18908
34 days ago
34-18754
34 days
37752 JovanGerb
author:JovanGerb
chore(Order/CompleteLattice/Lemmas): use `to_dual` Use `to_dual` for lemmas about `CompleteLattice`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 27/56 Mathlib/Order/CompleteLattice/Lemmas.lean 1 1 ['github-actions', 'vihdzp'] bryangingechen
assignee:bryangingechen
12-66216
12 days ago
34-17584
34 days ago
34-17430
34 days
37753 JovanGerb
author:JovanGerb
chore(Order/Filter/Basic): use `to_dual` for `≤ᶠ` Use `to_dual` on lemmas about `EventuallyLE`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 19/6 Mathlib/Order/Filter/Basic.lean 1 2 ['github-actions', 'vihdzp'] bryangingechen
assignee:bryangingechen
12-66215
12 days ago
34-17449
34 days ago
34-17295
34 days
38551 TTony2019
author:TTony2019
feat(Analysis/Convex/Intrinsic): add `affineSpan_prod_eq` and `intrinsicInterior_prod_eq` ### Summary We prove that the affine span of a product set equals the product of the affine spans, and that the intrinsic interior of a product set equals the product of the intrinsic interiors. - `affineSpan_prod_eq`: for `s : Set P₁` and `t : Set P₂`, `affineSpan k (s ×ˢ t) = (affineSpan k s) ×ˢ (affineSpan k t)` as sets. - `intrinsicInterior_prod_eq`: for `s : Set P` and `t : Set Q`, `intrinsicInterior 𝕜 (s ×ˢ t) = intrinsicInterior 𝕜 s ×ˢ intrinsicInterior 𝕜 t`. These two theorems are added to `Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean` and `Mathlib/Analysis/Convex/Intrinsic.lean`. ### Collaboration Co-authored-by: @imathwy new-contributor 144/0 Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean,Mathlib/LinearAlgebra/Prod.lean 5 21 ['TTony2019', 'github-actions', 'wwylele'] nobody
12-61439
12 days ago
12-61503
12 days ago
15-5222
15 days
37073 kim-em
author:kim-em
feat: add wrap_instance% using core's wrapInstance This PR adds a new `wrap_instance%` term elaborator that delegates to Lean core's `wrapInstance` (from https://github.com/leanprover/lean4/pull/12897), and replaces ~53 `fast_instance%` call sites where the replacement is safe. `wrap_instance%` is a thin wrapper (~15 lines) around `Lean.Meta.wrapInstance`. Like `fast_instance%`, it reduces instances to constructor applications and reuses canonical sub-instances. Unlike `fast_instance%`, it works at `instances` transparency and delegates all normalization logic to core. The replaced sites cover: - Equiv/type-alias transfers (WithAbs, WithConv, WithVal, WithLp, TransferInstance) - Surjective constructors (Con, RingCon quotients, module congruences) - DFunLike leaf instances (MultilinearMap, ContinuousMultilinearMap, AlternatingMap, Intertwining) - Quotient instances (LinearAlgebra/Quotient/Defs) - inferInstanceAs% sites (StandardPart, Presentation/Core) - Miscellaneous (InfiniteAdeleRing, ZMod) This PR *doesn't* attempt to replace all `fast_instance%`; it gets more complicated! 🤖 Prepared with Claude Code 88/59 Mathlib/Algebra/Algebra/TransferInstance.lean,Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/Algebra/WithConv.lean,Mathlib/Analysis/Normed/Lp/WithLp.lean,Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/LinearAlgebra/Alternating/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean,Mathlib/RepresentationTheory/Intertwining.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/Tactic/FastInstance.lean,Mathlib/Topology/Algebra/Module/Alternating/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean 16 7 ['JovanGerb', 'github-actions', 'kim-em', 'leanprover-radar', 'mathlib-merge-conflicts'] nobody
12-59296
12 days ago
12-59323
12 days ago
15-46277
15 days
38432 SnirBroshi
author:SnirBroshi
feat(Logic/Relation): `Map r f g ≤ s ↔ r ≤ s.bicompl f g` and the dual `s ≤ Relation.Map r f g ↔ s.bicompl f g ≤ r` which requires `f` and `g` to be bijective. Adds `Galois{Connection/Insertion/Coinsertion}` for the dual. The theorems are specialized to `onFun` instead of `bicompl` for when `f = g`. The `≤` theorems are spelled using `Subrelation` since `≤` is not yet available in this file, and `∀` for the `bicompl` theorems since `Subrelation` only supports homogeneous relations. A `GaloisConnection` for the iff in the title requires `f`/`g` to be bijective, but then we can get an `OrderIso` which is stronger (see #38499). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 119/28 Mathlib/Logic/Relation.lean,Mathlib/Order/GaloisConnection/Basic.lean 2 3 ['SnirBroshi', 'github-actions', 'plp127'] nobody
12-46043
12 days ago
16-53256
16 days ago
17-74524
17 days
38612 SnirBroshi
author:SnirBroshi
feat(Order/SuccPred/CompleteLinearOrder): `sSup s < x` iff theorems when we know if `x` is a successor pre-limit or not Adds the following theorems (along with their duals and indexed versions): ```lean sSup_lt_iff_of_not_isSuccPrelimit : ¬IsSuccPrelimit x → sSup s < x ↔ ∀ a ∈ s, a < x le_sSup_iff_of_not_isSuccPrelimit : ¬IsSuccPrelimit x → x ≤ sSup s ↔ ∃ a ∈ s, x ≤ a Order.IsSuccPrelimit.sSup_lt_iff : IsSuccPrelimit x → sSup s < x ↔ ∃ a < x, ∀ b ∈ s, b < a Order.IsSuccPrelimit.le_sSup_iff : IsSuccPrelimit x → x ≤ sSup s ↔ ∀ a < x, ∃ b ∈ s, a ≤ b ``` They are similar to these existing theorems, but not the same: ```lean sSup_lt_iff : sSup s < x ↔ ∃ a < x, ∀ b ∈ s, b ≤ a le_sSup_iff_forall_lt : x ≤ sSup s ↔ ∀ a < x, ∃ b ∈ s, a < b ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 43/0 Mathlib/Order/SuccPred/CompleteLinearOrder.lean 1 6 ['SnirBroshi', 'github-actions', 'vihdzp'] nobody
12-45844
12 days ago
13-42758
13 days ago
13-42604
13 days
38707 tb65536
author:tb65536
feat(Algebra/Polynomial/Lifts): add `natDegree` verison of `exists_natDegree_eq_of_mem_lifts` This PR adds a `natDegree` version of `exists_degree_eq_of_mem_lifts`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
4/0 Mathlib/Algebra/Polynomial/Lifts.lean 1 1 ['github-actions'] nobody
12-24669
12 days ago
12-24669
12 days ago
12-24516
12 days
38708 tb65536
author:tb65536
feat(Algebra/Polynomial/Lifts): every polynomial lifts along a surjective ring homomorphism This PR adds a lemma stating that every polynomial lifts along a surjective ring homomorphism (this could also be phrased as `lifts_eq_top`, but in practice it's membership in lifts that unlocks all of the API for `lifts`). --- [![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/Polynomial/Lifts.lean 1 1 ['github-actions'] nobody
12-24420
12 days ago
12-24420
12 days ago
12-24268
12 days
37389 martinwintermath
author:martinwintermath
chore(LinearAlgebra/SesquilinearForm): generalize `orthogonalBilin` in order to simplify definition of `orthogonal` - generalize `Submodule.orthogonalBilin` to `CommSemiring` and `AddCommMonoid`, and to general sesquilinear forms with inputs from different modules. This enables subsequent changes. - redefine `BilinForm.orthogonal` in terms of `orthogonalBilin`. - reorder arguments of `Submodule.orthogonalBilin` to match other instances of duality across mathlib. For comparison Before ```lean4 Submodule.orthogonalBilin.{u_1, u_2, u_5, u_6} {R : Type u_1} {R₁ : Type u_2} {M : Type u_5} {M₁ : Type u_6} [CommRing R] [CommRing R₁] [AddCommGroup M₁] [Module R₁ M₁] [AddCommGroup M] [Module R M] {I₁ I₂ : R₁ →+* R} (N : Submodule R₁ M₁) (B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M) : Submodule R₁ M₁ ``` After ```lean4 Submodule.orthogonalBilin.{u_1, u_2, u_3, u_5, u_6, u_7} {R : Type u_1} {R₁ : Type u_2} {R₂ : Type u_3} {M : Type u_5} {M₁ : Type u_6} {M₂ : Type u_7} [CommSemiring R] [CommSemiring R₁] [CommSemiring R₂] [AddCommMonoid M] [Module R M] [AddCommMonoid M₁] [Module R₁ M₁] [AddCommMonoid M₂] [Module R₂ M₂] {I₁ : R₁ →+* R} {I₂ : R₂ →+* R} (B : M₁ →ₛₗ[I₁] M₂ →ₛₗ[I₂] M) (N : Submodule R₁ M₁) : Submodule R₂ M₂ ``` A few fixes in other files have been necessary as well. This is an extract from #37381. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
28/21 Mathlib/Algebra/Lie/InvariantForm.lean,Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean 5 8 ['eric-wieser', 'github-actions', 'martinwintermath', 'themathqueen', 'vihdzp'] ocfnash
assignee:ocfnash
12-24104
12 days ago
12-24012
12 days ago
41-79067
41 days
38269 b-mehta
author:b-mehta
feat(Combinatorics/Additive): link Freiman homs and Freiman isos tighter --- Some work I had lying around in a forgotten branch, recently resurrected. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 118/76 Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Combinatorics/Additive/AP/Three/Defs.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean 3 15 ['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts'] nobody
12-23201
12 days ago
12-23201
12 days ago
13-23365
13 days
38709 tb65536
author:tb65536
feat(Algebra/Polynomial/Roots): roots of `p(-X)` This PR proves that the roots of `p(-X)` are just the negatives of the roots of `p`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
21/0 Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/Roots.lean 2 1 ['github-actions'] nobody
12-23101
12 days ago
12-23101
12 days ago
12-22948
12 days
38622 mariainesdff
author:mariainesdff
feat(RingTheory/PowerSeries/ExponentialModule): add exponential module Let `R` be a commutative ring. The exponential module of `R` is the set of all power series `f : R⟦X⟧` that are of exponential type : `f (X + Y) = f X * f Y` where `X` and `Y` are two indeterminates. It is an abelian group under multiplication, and an `R`-module under rescaling. Co-authored by: @AntoineChambert-Loir --- - [ ] depends on: #38615 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 425/0 Mathlib.lean,Mathlib/Algebra/BigOperators/Finsupp/Fin.lean,Mathlib/Data/Nat/Choose/Sum.lean,Mathlib/RingTheory/PowerSeries/ExponentialModule.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean 5 2 ['github-actions', 'mathlib-dependent-issues'] nobody
12-21529
12 days ago
12-21594
12 days ago
12-22537
12 days
38684 yuanyi-350
author:yuanyi-350
chore(LinearAlgebra/CliffordAlgebra/EvenEquiv): remove erws - rewrites the `toEven` and `toEven_ι` proofs through `even_toSubmodule`, replacing the `erw` steps with `simp` and `rw` Extracted from #38415 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-algebra
label:t-algebra$
5/8 Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean 1 2 ['github-actions', 'jcommelin', 'yuanyi-350'] nobody
12-12609
12 days ago
12-69495
12 days ago
12-69341
12 days
38719 tb65536
author:tb65536
feat(GroupTheory/QuotientGroup/Basic): `(G × H) / (A.prod B) ≃ (G / A) × (H / B)` This PR proves the isomorphism `(G × H) ⧸ (A.prod B) ≃* (G ⧸ A) × H ⧸ B` and uses it to golf `Subgroup.index_prod`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
20/3 Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean 2 1 ['github-actions'] nobody
12-9322
12 days ago
12-9322
12 days ago
12-9170
12 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$
555/0 Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean 5 12 ['AntoineChambert-Loir', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] joelriou
assignee:joelriou
12-868
12 days ago
12-897
12 days ago
42-47100
42 days
38426 SnirBroshi
author:SnirBroshi
feat(Data/Set/Card): `Fintype.card s = s.ncard` We have `↑(Fintype.card s) = s.encard` but we don't yet have a theorem relating `Fintype.card` and `Set.ncard`. This adds `Fintype.card s = s.ncard` for `Fintype s`, and also `s.ncard = s.encard` for `Finite s`. --- ~~(tagging `simp` is problematic since the aforementioned theorem (`Set.coe_fintypeCard`) is `simp`, and I'm not sure we should untag it)~~ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 8/0 Mathlib/Data/Set/Card.lean 1 4 ['SnirBroshi', 'Vierkantor', 'b-mehta', 'github-actions'] Vierkantor
assignee:Vierkantor
11-76125
11 days ago
12-58858
12 days ago
16-52389
16 days
38349 SnirBroshi
author:SnirBroshi
chore(Combinatorics/SimpleGraph/Coloring/VertexColoring): rename to `Vertex.lean` After #37525 moved `Coloring.lean` to `Coloring/VertexColoring.lean`, a [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500) poll decided to avoid duplicating the word "Coloring", so this renames `Coloring/VertexColoring.lean` to `Coloring/Vertex.lean`. --- I planned to make this move in #33313 but it isn't moving along, so I think it's best to split the renaming. #37546 adds module deprecation [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-combinatorics 6/6 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Constructions.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Vertex.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Partition.lean,Mathlib/Combinatorics/SimpleGraph/Sum.lean 7 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
11-66902
11 days ago
11-66928
11 days ago
19-66920
19 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'] fpvandoorn
assignee:fpvandoorn
11-66277
11 days ago
57-51362
57 days ago
57-51208
57 days
37682 SabrinaJewson
author:SabrinaJewson
refactor(Order/OrdContinuous): redefine left and right order continuity to not require preserving ⊥/⊤ `LeftOrdContinuous` currently requires that `f ⊥ = ⊥`, but this means that many functions that are perhaps intuitively left-continuous (like `f x = x + 1` on `ℝ≥0`) are not. In particular, this change means that functions between conditionally complete lattices are `LeftOrdContinuous` iff they are monotone and topologically left continuous (see `MonotoneOn.map_csSup_of_continuousWithinAt` for the reverse direction). If one wants the concept that existed before, one can either accept the `f ⊥ = ⊥` hypothesis separately or, if the function is between complete lattices, use the left side of a `GaloisConnection` (which is equivalent, although I think this is not yet in Mathlib). This removes the definitional equality of the type in favour of a structure. Since most of the time users will be working with the `sSup` versions and not with `IsLUB`, I think this is justified. As a consequence, this removes the definitional equality between `LeftOrdContinuous` and `RightOrdContinuous` of the dual – the latter could be redefined to re-add this, but we do have conversion functions. `LeftOrdContinuous.continuousWithinAt_Iic` is rewritten to accomodate these changes; the superfluous `DenselyOrdered` assumption is also removed. [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/LeftOrdContinuous.20requires.20f.28.E2.8A.A5.29.20.3D.20.E2.8A.A5/near/582932491) --- - [x] depends on: #37735 - [x] depends on: #37772 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-order 52/38 Mathlib/Order/OrdContinuous.lean,Mathlib/Order/SemiconjSup.lean,Mathlib/Topology/Order/Basic.lean 3 10 ['SabrinaJewson', 'astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] bryangingechen
assignee:bryangingechen
11-66271
11 days ago
31-75169
31 days ago
33-72124
33 days
38428 tb65536
author:tb65536
refactor(RepresentationTheory/Coinvariants): use `IntertwiningMap` in `Coinvariants.map` Currently `Coinvariants.map` has the intertwining condition as as a separatel hypothesis. This PR switches over to the bundled `IntertwiningMap`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
16/20 Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/Resolution.lean,Mathlib/RepresentationTheory/Induced.lean,Mathlib/RepresentationTheory/Rep/Basic.lean 6 1 ['Whysoserioushah', 'github-actions'] riccardobrasca
assignee:riccardobrasca
11-66264
11 days ago
17-82618
17 days ago
17-82466
17 days
38748 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Basic): `G.edgeSet ⊆ s.sym2 ↔ G.support ⊆ s` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 19/4 Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean 2 1 ['github-actions'] nobody
11-61306
11 days ago
11-61378
11 days ago
11-61224
11 days
38097 NoahW314
author:NoahW314
feat: add `IndiscreteTopology` instances --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 24/0 Mathlib/Topology/Homotopy/Contractible.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Separation/Connected.lean 4 5 ['NoahW314', 'github-actions', 'scholzhannah', 'vihdzp'] PatrickMassot
assignee:PatrickMassot
11-59015
11 days ago
25-23621
25 days ago
25-42506
25 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 11/0 Mathlib/Combinatorics/SimpleGraph/Hasse.lean 1 21 ['Rida-Hamadani', 'SnirBroshi', 'ertwro', 'github-actions', 'vlad902'] nobody
11-58205
11 days ago
22-55690
22 days ago
30-65316
30 days
37930 vlad902
author:vlad902
chore(SimpleGraph): move `cycleGraph` to its own file PR #34797 re-defined `cycleGraph` independent of `circulantGraph`. Now move the definition of `cycleGraph` to its own file so that the definition can be used without importing the algebra hierarchy. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 173/148 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Cycle.lean 3 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
11-49813
11 days ago
11-49836
11 days ago
11-50069
11 days
38731 martinwintermath
author:martinwintermath
feat(LinearAlgebra/AffineSpace/AffineSubspace): using `AffineSubspace.direction` to reinterpret `AffineSubspace` as `Submodule` * add `AffineSubspace.vsub_self_of_zero_mem` that states `s -ᵥ s = s ` if `0 ∈ s` * add `AffineSubspace.direction_eq_self_of_zero_mem` that states that if `0 ∈ s`, then the directions coerce back to the affine subspace. * add corresponding `CanLift` instance. * modify doc-string of `AffineSubspace.direction` to state that this can be used for reinterpretation of an affine subspace as a submodule. * add `Coe` instance based on `Submodule.toAffineSubspace` and adds corresponding @[coe] attribute. The PR also performs a slight cleanup of the file: statements about `SetLike` or `Submodule.toAffineSubspace` have been moved closer to their respective definitions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
56/26 Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean 1 3 ['github-actions', 'wwylele'] nobody
11-42027
11 days ago
12-4662
12 days ago
12-5659
12 days
38753 tb65536
author:tb65536
chore(GroupTheory/Nilpotent): to_additivize file This PR to_additivizes `Nilpotent.lean`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
201/35 Mathlib/GroupTheory/Commutator/Finite.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/Subgroup/Center.lean 3 1 ['github-actions'] nobody
11-35599
11 days ago
11-35599
11 days ago
11-35446
11 days
37832 YaelDillies
author:YaelDillies
chore(Algebra/Order/GroupWithZero): flatten `Unbundled` folder The algebraic order classes are unbundled now. --- More thought is needed to do the same for `Algebra.Order.Monoid` since filenames conflict. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-algebra t-order
label:t-algebra$
20/20 Mathlib.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Pointwise.lean,Mathlib/Algebra/Order/GroupWithZero/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Bounds.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Defs.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/GroupWithZero/OrderIso.lean,Mathlib/Algebra/Order/GroupWithZero/Submonoid.lean,Mathlib/Algebra/Order/GroupWithZero/WithZero.lean,Mathlib/Algebra/Order/Nonneg/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean 19 3 ['github-actions', 'mathlib-merge-conflicts'] nobody
11-14698
11 days ago
11-14724
11 days ago
30-19687
30 days
38026 mrdouglasny
author:mrdouglasny
feat(Analysis/Calculus): define absolutely monotone functions ## Summary - Define `AbsolutelyMonotoneOn f s` for functions `f : ℝ → ℝ` that are smooth on `s` with all iterated derivatives within `s` nonneg - Prove closure under `add`, `smul`, `mul` - Show `exp`, `cosh`, constants, and powers are absolutely monotone on appropriate domains This is the first part of a split of #37879. Follow-up PRs will add: - Bernstein backward direction (nonneg coefficients → absolutely monotone) - Bernstein forward direction (absolutely monotone → analytic at 0) - Matrix applications (Schur product theorem for power series, entrywise exp) ## Test plan - [ ] CI passes (build + lint) - [ ] Verify `AbsolutelyMonotoneOn` structure and examples type-check 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.6 (1M context) t-analysis new-contributor LLM-generated 123/0 Mathlib.lean,Mathlib/Analysis/Calculus/AbsolutelyMonotone.lean,docs/references.bib 3 28 ['ADedecker', 'github-actions', 'j-loreaux', 'mrdouglasny', 'sgouezel', 'vihdzp', 'wwylele'] sgouezel
assignee:sgouezel
11-14443
11 days ago
11-14487
11 days ago
19-35469
19 days
37997 emlis42
author:emlis42
feat(Algebra/ContinuedFractions): generalize determinant formula to GenContFract Let $g$ be a `GenContFract K`. In this PR I generalize the determinant formula for continued fractions from the simple continued fraction case $$A_n B_{n+1} - B_n A_{n+1} = (-1)^n$$ to the generalized continued fraction product formula $$A_n B_{n+1} - B_n A_{n+1} = (-a_0) (-a_1) \dots (-a_n)$$ - The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API. - The use of `0` as the default partial numerator in `(g.partNums.get? i).getD 0` allows product formulation that remains valid when the fraction is terminated. t-algebra new-contributor large-import
label:t-algebra$
53/28 Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean 2 13 ['emlis42', 'github-actions', 'themathqueen', 'vihdzp'] ocfnash
assignee:ocfnash
11-270
11 days ago
14-14291
14 days ago
28-26354
28 days
38747 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Basic): more `neighborSet` and `IsIsolated` lemmas --- `neighborSet_mono` moved from `Maps.lean` to `Basic.lean` with a simpler proof [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 72/17 Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean 4 2 ['github-actions', 'vlad902'] nobody
10-71492
10 days ago
10-78448
10 days ago
11-46183
11 days
37623 IvanRenison
author:IvanRenison
feat(Order/RelIso): add theorems about `RelHom.comp` and `RelEmbedding.trans` Co-authored-by: SnirBroshi <26556598+SnirBroshi@users.noreply.github.com> --- Missing of this theorems noticed by @SnirBroshi in #37598 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 18/0 Mathlib/Order/RelIso/Basic.lean 1 6 ['IvanRenison', 'SnirBroshi', 'eric-wieser', 'github-actions'] nobody
10-67144
10 days ago
36-10115
36 days ago
37-33496
37 days
37347 JovanGerb
author:JovanGerb
feat: implementation of `@[use_set_notation_for_order]` This PR allows the use of `⊆` notation while the underlying constant is `≤`. Similarly for `⊂`/`<`, `⊇`/`≥` and `⊃`/`>`. - The idea is to later extend this feature to other set notation constants, such as union/intersection. - There are some types for which we cannot use `LE.le` as the underlying constant, such as `List` and `Multiset`. So, the elaborator for the `⊆` notation needs to make a decision which underlying constant to elaborate to, depending on the type. Sometimes the type is not known yet, which makes things awkward. Most of these cases are solved by delaying the elaboration until later when the type is known. - However, in some cases this doesn't work either, such as `simp_rw [and_comm (_ ⊆ _)]`, where it is impossible to tell the type when elaborating the term. So, some such cases need to be fixed by making it `simp_rw [and_comm ((_ : Set _) ⊆ _)]`. This is because `simp_rw`, unlike `rw`, fully elaborates the rewrite rules before using them. A linter warns you whever there is such an ambiguity. See also https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F/near/579333629 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta maintainer-merge 364/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SetNotationForOrder.lean,MathlibTest/SetNotationForOrder.lean 4 51 ['JovanGerb', 'Vierkantor', 'github-actions', 'thorimur'] alexjbest and dwrensha
assignee:dwrensha assignee:alexjbest
10-65970
10 days ago
28-72543
28 days ago
42-13476
42 days
37900 tb65536
author:tb65536
feat(RingTheory/Localization/FractionRing): add `IsFractionRing.ofAlgEquiv` and `IsFractionRing.ofAlgHom` This PR gives constructors for `IsFractionRing` from an `AlgEquiv` and from an `AlgHom`. The first is just a specialization of `IsLocalization.isLocalization_of_algEquiv`, but the second has a bit more content. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
9/0 Mathlib/RingTheory/Localization/FractionRing.lean 1 3 ['github-actions', 'tb65536'] alreadydone
assignee:alreadydone
10-65967
10 days ago
31-7411
31 days ago
31-7258
31 days
37870 Jun2M
author:Jun2M
feat(Combinatorics/Graph): `Simple` typeclass for `Graph` This PR introduces two type classes on `Graph`: `Loopless` and `Simple`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 93/0 Mathlib.lean,Mathlib/Combinatorics/Graph/Simple.lean 2 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
10-64031
10 days ago
10-64055
10 days ago
30-11934
30 days
38716 YaelDillies
author:YaelDillies
feat(Algebra/Order): `NNRat.cast_sub` From AddCombi --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
29/22 Mathlib/Algebra/Order/Field/Rat.lean,Mathlib/Algebra/Order/Ring/Rat.lean,Mathlib/Combinatorics/SetFamily/LYM.lean,Mathlib/Data/Finset/Density.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/NNRat/Floor.lean,Mathlib/Data/NNRat/Order.lean,Mathlib/Data/Rat/Star.lean,Mathlib/RingTheory/Binomial.lean,Mathlib/Topology/Instances/Rat.lean 10 1 ['github-actions'] nobody
10-45394
10 days ago
10-45458
10 days ago
10-49687
10 days
38795 YaelDillies
author:YaelDillies
feat(Algebra/Group/Action/Pointwise): `#(s ∩ (a • t)) = #{x ∈ s ×ˢ t | x.1 / x.2 = a}` The `Finset` lemma already exists. From AddCombi --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
37/18 Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean,Mathlib/Algebra/GroupWithZero/Action/Pointwise/Finset.lean 3 1 ['github-actions'] nobody
10-39187
10 days ago
10-39247
10 days ago
10-41311
10 days
38169 tb65536
author:tb65536
chore(GroupTheory/Finiteness): make `Subgroup.FG` a class This PR refactors `Subgroup.FG` to be a class to match `Group.FG`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
37/20 Mathlib/GroupTheory/Commutator/Finite.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/Rank.lean,Mathlib/GroupTheory/Schreier.lean 4 10 ['JovanGerb', 'github-actions', 'mathlib-bors', 'riccardobrasca', 'tb65536'] riccardobrasca
assignee:riccardobrasca
10-4174
10 days ago
10-18242
10 days ago
24-6247
24 days
38420 eliasjudin
author:eliasjudin
feat(Algebra/MvPolynomial): add coefficient lemma for uniqueAlgEquiv Adds `MvPolynomial.coeff_uniqueAlgEquiv` and `MvPolynomial.coeff_uniqueAlgEquiv_symm`, identifying coefficients under `MvPolynomial.uniqueAlgEquiv` in both directions. new-contributor t-algebra
label:t-algebra$
19/0 Mathlib/Algebra/MvPolynomial/Equiv.lean 1 5 ['eliasjudin', 'eric-wieser', 'github-actions'] kim-em
assignee:kim-em
9-81167
9 days ago
17-36619
17 days ago
18-10574
18 days
38825 tb65536
author:tb65536
feat(RingTheory/Spectrum/FreeLocus): rank of fiber over residue field This PR proves the formula `finrank p.ResidueField (p.Fiber M) = finrank R M`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
9/0 Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean 1 1 ['github-actions'] nobody
9-76568
9 days ago
9-76568
9 days ago
9-76416
9 days
38646 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Normed/Unbundled/SpectralNorm` - rewrites `spectralValue_eq_zero_iff` via `eq_X_pow_iff_natDegree_le_natTrailingDegree` and `spectralValueTerms_of_lt_natDegree` - rewrites `spectralNorm.eq_of_normalClosure'` as two applications of `spectralNorm.eq_of_tower` - tidies `spectralNorm_unique` by switching the local transported structures to `set`/`letI`/`haveI` with `inferInstanceAs` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 9/23 Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean 1 7 ['github-actions', 'leanprover-radar', 'sgouezel', 'themathqueen', 'yuanyi-350'] sgouezel
assignee:sgouezel
9-66653
9 days ago
10-12010
10 days ago
12-6883
12 days
37784 SnirBroshi
author:SnirBroshi
feat(Order/ConditionallyCompleteLattice/Basic): `ConditionallyCompleteLinearOrderBot (WithBot α)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 29/0 Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 1 1 ['github-actions'] bryangingechen
assignee:bryangingechen
9-66439
9 days ago
33-62809
33 days ago
33-62655
33 days
38821 Jun2M
author:Jun2M
feat(Data/List): rotation of sublist is sublist of rotation This PR proves `(∃ L₁ : List α, L ~r L₁ ∧ L₁ <+ L') ↔ (∃ L₂ : List α, L <+ L₂ ∧ L₂ ~r L')`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 10/0 Mathlib/Data/List/Rotate.lean 1 3 ['SnirBroshi', 'eric-wieser', 'github-actions'] nobody
9-61519
9 days ago
9-85460
9 days ago
9-85306
9 days
38092 SnirBroshi
author:SnirBroshi
chore(Order/Defs/Unbundled): deprecate `def Symmetric` in favor of `class Std.Symm` --- [Mathlib's `def Symmetric`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Symmetric) [Core's `class Std.Symm`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Std.Symm) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 468/412 Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Counterexamples/HeawoodUnitDistance.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/InnerProductSpace/Orthogonal.lean,Mathlib/Analysis/Normed/Operator/Compact/FredholmAlternative.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/IsConnected.lean,Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Graph/Basic.lean,Mathlib/Combinatorics/Graph/Delete.lean,Mathlib/Combinatorics/Graph/Lattice.lean,Mathlib/Combinatorics/Graph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Dart.lean,Mathlib/Combinatorics/SimpleGraph/Density.lean,Mathlib/Combinatorics/SimpleGraph/Hall.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/LineGraph.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Sum.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Data/Finset/Pairwise.lean,Mathlib/Data/Finsupp/BigOperators.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Data/Multiset/Bind.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/Data/Multiset/Pairwise.lean,Mathlib/Data/Multiset/Replicate.lean,Mathlib/Data/Nat/GCD/Basic.lean,Mathlib/Data/Rel/Separated.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/Data/Set/Pairwise/List.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/WSeq/Relation.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/MeasureTheory/Measure/AEDisjoint.lean,Mathlib/MeasureTheory/Measure/NullMeasurable.lean,Mathlib/ModelTheory/Graph.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/Order/Antichain.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/Preorder/Chain.lean,Mathlib/Order/PropInstances.lean,Mathlib/RingTheory/Coprime/Ideal.lean,Mathlib/RingTheory/Radical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Graph.lean,Mathlib/Topology/CompactOpen.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/MetricSpace/MetricSeparated.lean,Mathlib/Topology/Separation/Basic.lean,Mathlib/Topology/Separation/GDelta.lean 81 5 ['SnirBroshi', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] nobody
9-60851
9 days ago
9-60878
9 days ago
24-51755
24 days
38142 SnirBroshi
author:SnirBroshi
feat(Order/SuccPred/CompleteLinearOrder): generalize `csSup_mem_of_not_isSuccLimit` Given `s.Nonempty` and `BddAbove s` we can conclude `sSup s ∈ s` using either: - `csSup_mem_of_not_isSuccPrelimit`, given `ConditionallyCompleteLinearOrder` and `¬IsSuccPrelimit (sSup s)` - `csSup_mem_of_not_isSuccLimit`, given `ConditionallyCompleteLinearOrderBot` and `¬IsSuccLimit (sSup s)` We generalize both to a theorem that requires `ConditionallyCompleteLinearOrder` and `¬IsSuccLimit (sSup s)`. This creates 8 theorems that require `¬IsSuccPrelimit` but are now easily proved with the `¬IsSuccLimit` theorems, we replace `csSup_mem_of_not_isSuccPrelimit`/`exists_eq_ciSup_of_not_isSuccPrelimit` with their primed `ConditionallyCompleteLinearOrderBot` theorems, and deprecates the other 6. Tags a random `to_dual` (in `ConditionallyCompleteLattice/Basic.lean`) to let us `to_dual`ize the new lemmas. --- ~~Should we also deprecate the 8 theorems that require `¬IsSuccPrelimit` and now use `mt`?~~ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 55/42 Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/SuccPred/CompleteLinearOrder.lean,Mathlib/SetTheory/Cardinal/Order.lean 3 9 ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] nobody
9-60728
9 days ago
9-60752
9 days ago
24-59004
24 days
38841 SnirBroshi
author:SnirBroshi
feat(Mathlib/Order/SuccPred/Limit): more `WithTop` lemmas about `IsMin`/`CovBy`/`IsSuccLimit` --- Continues the work from #38244 We should probably also have such lemmas for `WithTopBot`/`WithBotTop`, but that's for another day [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 111/30 Mathlib/Order/Cover.lean,Mathlib/Order/SuccPred/Limit.lean,Mathlib/Order/WithBot.lean 3 1 ['github-actions'] nobody
9-30290
9 days ago
9-40806
9 days ago
9-41459
9 days
38830 Jun2M
author:Jun2M
feat(Data/List): Nodup and head & getLast lemmas Given a Nodup list: * If a prefix contains the last element, they are equal * If a suffix contains the first element, they are equal * If an infix contains the first element, it is a prefix * If an infix contains the last element, it is a suffix * If the first and the last element are the same, it is a singleton * `countP` is cardinality of the filter of `toFinset`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 29/0 Mathlib/Data/Finset/Card.lean,Mathlib/Data/List/Nodup.lean 2 6 ['SnirBroshi', 'github-actions'] nobody
9-22801
9 days ago
9-22811
9 days ago
9-56576
9 days
37618 WenrongZou
author:WenrongZou
feat(PowerSeries): rename a power series as multivariate power series --- In this PR, I define the `PowerSeries.toMvPowerSeries` which use `Polynomial.toMvPolynomial` as reference. Also there is some missing APIs in `MvPowerSeries/Equiv.lean` with respect to `MvPolynomial/Equiv.lean`. I will try to add them in next several PRs. - [x] depends on: #37576 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 80/1 Mathlib/RingTheory/MvPowerSeries/Equiv.lean 1 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
9-21445
9 days ago
9-41041
9 days ago
9-42619
9 days
38316 tannerduve
author:tannerduve
feat(Order/OmegaCompletePartialOrder): least fixed point and Scott induction Adds `ContinuousHom.lfp` for endomorphisms on an ωCPO with `⊥`, as the `ωSup` of the iterate chain from `⊥`, together with `map_lfp`, `isFixedPt_lfp`, `lfp_le_fixed`, `isLeast_lfp`, and the Scott induction theorem `lfp_induction` (specialized from a more general seed-based `ωSup_iterate_induction`). For `Part.fix`, adds: * `Part.exists_mem_approx_of_mem_fix`: if `y ∈ Part.fix g x`, some finite approximation of `g` already contains `y`. * `Part.Fix.approx_eq_iterate_bot` and `Part.Fix.approxChain_eq_iterateChain`: bridges between `Fix.approx`/`approxChain` and `f^[n] ⊥`/`iterateChain`. * `Part.fix_eq_lfp`: `Part.fix g = ContinuousHom.lfp (.ofFun g hc)` when `g` is ω-Scott continuous. * `Part.fix_scott_induction`: Scott induction specialized to `Part.fix`. * `Part.fix_induction_mem`: membership induction on `Part.fix`, derived from `fix_scott_induction`. new-contributor 114/0 Mathlib/Control/LawfulFix.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,docs/references.bib 3 2 ['github-actions'] nobody
9-5115
9 days ago
20-67617
20 days ago
20-67989
20 days
38018 matthewjasper
author:matthewjasper
feat(Algebra): expand Subalgebra.restrictScalars API Add an instance for the original algebra structure, the implied scalar tower instances, and the algebra equivalence with the original subalgebra. Use this to remove some `set_option backward.isDefEq.respectTransparency`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 53/14 Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean 4 2 ['eric-wieser', 'github-actions'] mariainesdff
assignee:mariainesdff
8-66097
8 days ago
27-79037
27 days ago
27-80500
27 days
38589 vlad902
author:vlad902
feat(SimpleGraph): add universal vertex predicate Add the predicate `G.IsUniversal v` to indicate that `v` is a universal vertex, i.e. connected to all other vertices in `G`. This matches the recently added `G.IsIsolated v` predicate for isolated vertices. Co-authored-by: Justin Lai --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 63/10 Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/Combinatorics/SimpleGraph/UniversalVerts.lean 5 4 ['8e7', 'github-actions', 'vlad902'] nobody
8-51235
8 days ago
13-83956
13 days ago
13-83802
13 days
38358 yuanyi-350
author:yuanyi-350
doc(1000.yaml): note more formalised theorems --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) documentation maintainer-merge 9/2 docs/1000.yaml 1 12 ['YaelDillies', 'github-actions', 'grunweg', 'vihdzp', 'yuanyi-350'] nobody
8-35192
8 days ago
8-35254
8 days ago
19-36756
19 days
38634 Maldooor
author:Maldooor
feat(MeasureTheory): `restrict_absolutelyContinuous_restrict` Adding three lemmas about absolute continuity of restrictions of measures to subsets. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 19/0 Mathlib/MeasureTheory/Measure/Restrict.lean 1 4 ['EtienneC30', 'Maldooor', 'github-actions'] EtienneC30
assignee:EtienneC30
8-34228
8 days ago
8-34228
8 days ago
10-65265
10 days
38823 matthewjasper
author:matthewjasper
chore(LinearAlgebra/TensorProduct): fix diamond in `AddCommGroup` instance The `SMul` instance for tensor products directly used `AddCon.lift`, so wasn't type correct at instance transparency. This caused a diamond with the `AddCommGroup` instance on tensor products because after unfolding some types didn't match, so I've wrapped the sMul function in a semireducible def to prevent this. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
30/23 Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean 2 5 ['github-actions', 'kbuzzard', 'leanprover-radar'] nobody
8-18299
8 days ago
9-79953
9 days ago
9-79799
9 days
37577 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Walk): upgrade subset theorems to sublist/prefix/suffix Upgrades theorems about `p.support ⊆ q.support` / `p.darts ⊆ q.darts` / `p.edges ⊆ q.edges` to `List.IsInfix`/`List.IsSuffix`/`List.Sublist`, which imply the subset versions. Also adds `cycleBypass` sublist lemmas that were missing, and golfs `length_bypass_le` and `bypass_eq_self_of_length_le` using the new sublist theorems. Co-authored-by: Iván Renison <85908989+IvanRenison@users.noreply.github.com> --- Except for a couple of `cycleBypass` ones, I did not add such theorems where there was no subset theorem to begin with (e.g. `(p.take n).darts <+: p.darts`), as they are usually not worth stating since they're trivial and simp proves them. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 108/79 Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean 4 1 ['github-actions'] nobody
7-78868
7 days ago
38-77043
38 days ago
38-76889
38 days
38890 SnirBroshi
author:SnirBroshi
feat(Order/ConditionallyCompleteLattice/Basic): more `WithTop` instances Adds the following instances: ``` CompleteLattice α → CompleteLattice (WithTop α) CompleteLinearOrder α → CompleteLinearOrder (WithBot α) ConditionallyCompleteLinearOrder α → ConditionallyCompleteLinearOrder (WithTop α) ConditionallyCompleteLinearOrder α → ConditionallyCompleteLinearOrderBot (WithBot α) ``` and some simp lemmas to help. --- These `#synth`s all succeed after this PR:
(code) ```lean variable {α : Type*} [Preorder α] #synth Preorder αᵒᵈ #synth Preorder <| WithTop α #synth Preorder <| WithBot α #synth Preorder <| WithTopBot α #synth Preorder <| WithBotTop α variable {α : Type*} [PartialOrder α] #synth PartialOrder αᵒᵈ #synth PartialOrder <| WithTop α #synth PartialOrder <| WithBot α #synth PartialOrder <| WithTopBot α #synth PartialOrder <| WithBotTop α variable {α : Type*} [LinearOrder α] #synth LinearOrder αᵒᵈ #synth LinearOrder <| WithTop α #synth LinearOrder <| WithBot α #synth LinearOrder <| WithTopBot α #synth LinearOrder <| WithBotTop α variable {α : Type*} [CompleteLattice α] #synth CompleteLattice αᵒᵈ #synth CompleteLattice <| WithTop α -- new #synth CompleteLattice <| WithBot α #synth CompleteLattice <| WithTopBot α #synth CompleteLattice <| WithBotTop α variable {α : Type*} [CompleteLinearOrder α] #synth CompleteLinearOrder αᵒᵈ #synth CompleteLinearOrder <| WithTop α #synth CompleteLinearOrder <| WithBot α -- new #synth CompleteLinearOrder <| WithTopBot α #synth CompleteLinearOrder <| WithBotTop α variable {α : Type*} [ConditionallyCompleteLattice α] #synth ConditionallyCompleteLattice αᵒᵈ #synth ConditionallyCompleteLattice <| WithTop α #synth ConditionallyCompleteLattice <| WithBot α #synth CompleteLattice <| WithTopBot α #synth CompleteLattice <| WithBotTop α variable {α : Type*} [ConditionallyCompleteLinearOrder α] #synth ConditionallyCompleteLinearOrder αᵒᵈ #synth ConditionallyCompleteLinearOrder <| WithTop α -- new #synth ConditionallyCompleteLinearOrderBot <| WithBot α -- new #synth CompleteLinearOrder <| WithTopBot α #synth CompleteLinearOrder <| WithBotTop α variable {α : Type*} [ConditionallyCompleteLinearOrderBot α] #synth ConditionallyCompleteLinearOrder αᵒᵈ #synth CompleteLinearOrder <| WithTop α #synth ConditionallyCompleteLinearOrderBot <| WithBot α -- new #synth CompleteLinearOrder <| WithTopBot α #synth CompleteLinearOrder <| WithBotTop α ```
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-order 63/9 Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 1 1 ['github-actions'] nobody
7-69914
7 days ago
7-69990
7 days ago
7-69836
7 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 18/0 Mathlib/Combinatorics/SimpleGraph/Sum.lean 1 3 ['WilliamCoram', 'github-actions'] b-mehta
assignee:b-mehta
7-66228
7 days ago
46-82038
46 days ago
46-81884
46 days
38872 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable` - replaces the `aeSeq`-based construction in `measurable_limit_of_tendsto_metrizable_ae` with a direct choice of the pointwise limit - proves a.e. measurability via `aemeasurable_of_tendsto_metrizable_ae` and then takes the measurable representative Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 11/19 Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean 1 2 ['github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
7-66219
7 days ago
8-24507
8 days ago
8-24353
8 days
38875 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Covering/Besicovitch` - shortens the proof of `r_t0` in `exists_closedBall_covering_tsum_measure_le` by turning the contradiction argument into a direct lambda - replaces the manual `simp only` proof with `mem_iUnion₂` and a final `simp [r, this]` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 3/8 Mathlib/MeasureTheory/Covering/Besicovitch.lean 1 2 ['github-actions', 'yuanyi-350'] RemyDegenne
assignee:RemyDegenne
7-66216
7 days ago
8-23350
8 days ago
8-23196
8 days
38876 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable` - rewrites `memLp_trim_of_mem_lpMeasSubgroup` to use `hf.mk f` instead of unpacking `hf.choose` - shortens the norm comparison to a direct rewrite with `eLpNorm_trim` and `hf.ae_eq_mk` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 3/8 Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean 1 2 ['github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
7-66215
7 days ago
8-23015
8 days ago
8-22861
8 days
38881 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic` - shortens `stronglyMeasurable_in_set` by inlining the restricted approximation sequence and folding the `hg_eq` / `hg_zero` helper lemmas into the two `by_cases` branches Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 7/13 Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 1 2 ['github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
7-66212
7 days ago
8-20958
8 days ago
8-20804
8 days
38882 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/AEMeasurableOrder` - replaces the manual `μ t = 0` to `ae` conversion with `measure_eq_zero_iff_ae_notMem` - rewrites the two density arguments in `aemeasurable_of_exist_almost_disjoint_supersets` using `s_dense.exists_between` and `mem_iUnion₂` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 7/18 Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean 1 2 ['github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
7-66211
7 days ago
8-20739
8 days ago
8-20585
8 days
38582 dennj
author:dennj
feat(LinearAlgebra/Matrix): add Hadamard matrices Introduce `Matrix.IsHadamard` over a general `Ring R`, with the basic theory: - `IsHadamard` and `IsComplexHadamard` predicates (Definitions 2.3.1 and 2.7.1 of de Launey–Flannery, *Algebraic Design Theory*). - `IsHadamard.det_sq`: the Hadamard determinant identity `(det A)² = n^n`. - `IsHadamard.det_ne_zero`: over an integral domain of characteristic zero. - `IsHadamard.transpose`: `Aᵀ` is Hadamard whenever `A` is (Theorem 2.3.6), proved over `[CommRing R] [IsDomain R] [CharZero R]` via the adjugate. - `IsHadamard.card_eq_sq_of_const_row_sum`: a Hadamard matrix with constant row sum `s` has order `s²` (slightly stronger than Theorem 2.3.7: the constant-column-sum hypothesis is implied by orthogonality). - `IsHadamard.kronecker`: the Sylvester (Kronecker product) construction. - `IsHadamard.four_dvd_card`: order of a Hadamard matrix of order > 2 is divisible by 4. `Matrix.mul_eq_smul_one_symm`: if `M * N = c • 1` and `det M ≠ 0` over an integral domain, then `N * M = c • 1`. Used here for the transpose proof, but generally useful, analogous to how `mul_eq_one_comm` works over stably finite rings, but covers the integral-domain case (e.g. `ℤ`, `ℤ[X]`) where matrix inverses don't exist. ## References Adds the de Launey–Flannery bibliography entry, cited from the new file. Human-made PR with LLM used for proof golfing and documentation t-algebra new-contributor
label:t-algebra$
155/0 Mathlib.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/LinearAlgebra/Matrix/HadamardMatrix.lean,docs/references.bib 5 14 ['JJYYY-JJY', 'dennj', 'eric-wieser', 'github-actions', 'themathqueen'] nobody
7-57749
7 days ago
14-16227
14 days ago
14-16073
14 days
38871 0xTerencePrime
author:0xTerencePrime
feat(Combinatorics/SimpleGraph): add parity lemmas for outer and inner vertices Adds three lemmas to `SimpleGraph.DegreeSum`: - `sum_degrees_option_zmod_two`: the handshaking lemma for `Option I` over ZMod 2 - `degree_none_zmod_two_eq_sum`: simp-normal form of the above - `card_degree_one_option_eq_outer_zmod_two`: under degree bound ≤ 2, count of degree-1 inner vertices equals outer vertex degree mod 2 t-combinatorics new-contributor 65/3 Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean 1 6 ['0xTerencePrime', 'SnirBroshi', 'github-actions'] nobody
7-54600
7 days ago
8-24828
8 days ago
8-24674
8 days
38897 0xTerencePrime
author:0xTerencePrime
feat(Combinatorics/SetFamily): formalize 1D Sperner's Lemma parity Formalizes the 1-dimensional Sperner's Lemma (parity version): given a coloring of the `n + 1` vertices of a subdivided line segment with two colors (`ZMod 2`), if the two endpoints have different colors, then the number of color-changing edges is odd. This is **distinct** from `IsAntichain.sperner` in `SetFamily.LYM`, which concerns antichains in a power set. This file formalizes the topological/combinatorial parity statement used as the base case in higher-dimensional Sperner arguments. ## Key declarations - `SpernerColoring`: type-safe coloring via `Fin (n + 1) → ZMod 2` - `edgeDiff`: color difference on adjacent vertices, computed in `ZMod 2` - `totalDiff`: telescoping sum of all edge differences - `diffEdges`: the `Finset` of bichromatic (color-changing) edges - `sperner_1d`: main theorem — `Odd (diffEdges c).card` ## Design notes - Using `Fin (n + 1) → ZMod 2` instead of `ℕ → ZMod 2` makes boundary conditions unrepresentable at the type level, eliminating out-of-bounds cases entirely. - The proof reduces to a telescoping sum in `ZMod 2`, using `CharTwo.add_self_eq_zero` to cancel all interior vertices, avoiding parity case splits. This is intended as the 1D base case, the approach generalizes to higher-dimensional Sperner's Lemma in future work. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 133/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/Sperner1D.lean 2 3 ['github-actions', 'grunweg'] nobody
7-45834
7 days ago
7-55984
7 days ago
7-55830
7 days
38723 xgenereux
author:xgenereux
feat(EuclideanDomain.Basic): RingEquiv.euclideanDomain Add `RingEquiv.euclideanDomain` similar to other `RingEquiv` transport lemmas. Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)> --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
26/1 Mathlib/Algebra/EuclideanDomain/Basic.lean 1 3 ['github-actions', 'wwylele'] nobody
7-43224
7 days ago
12-10675
12 days ago
12-10888
12 days
38912 yuanyi-350
author:yuanyi-350
chore(Algebra/Category/Grp/LeftExactFunctor): remove an erw - rewrites `unitIsoAux` by expanding the functorial unit and multiplication maps directly in the `rw` chain - replaces the final `erw`/manual simplification mix with a `simp only [types_tensorObj_def]` proof step Extracted from #38415 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 8/6 Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean 1 1 ['github-actions'] nobody
7-30948
7 days ago
7-31125
7 days ago
7-30971
7 days
38915 yuanyi-350
author:yuanyi-350
chore(Algebra/Category/ModuleCat/Presheaf/Sheafification): remove an erw - rewrites `homEquiv_naturality_left_symm` by expanding the composite passed to `toSheaf_map_sheafificationHomEquiv_symm` - replaces the `erw` step with a direct `rw`/`simp only [Functor.map_comp]` proof Extracted from #38415 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 3/4 Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean 1 1 ['github-actions'] nobody
7-30941
7 days ago
7-31119
7 days ago
7-30965
7 days
38916 yuanyi-350
author:yuanyi-350
chore(CategoryTheory/CatCommSq): remove an erw - rewrites `hInv_hInv` by using `conv_rhs` with `iso_hom_naturality` - removes the `rw`/`erw` pair around `Functor.comp_map` Extracted from #38415 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 3/2 Mathlib/CategoryTheory/CatCommSq.lean 1 1 ['github-actions'] nobody
7-30939
7 days ago
7-31075
7 days ago
7-30921
7 days
38917 yuanyi-350
author:yuanyi-350
chore(CategoryTheory/Comma/Basic): remove an erw - rewrites the `full_map` proof by pushing `Functor.comp_map` and the naturality equalities into a single `rw`/`simp only` chain - removes the `erw`-based transport of `α.naturality_assoc` and `β.naturality` Extracted from #38415 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 5/5 Mathlib/CategoryTheory/Comma/Basic.lean 1 1 ['github-actions'] nobody
7-30937
7 days ago
7-31073
7 days ago
7-30919
7 days
38127 riccardobrasca
author:riccardobrasca
feat: add ClassGroup.extendedHom --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-algebra t-ring-theory
label:t-algebra$
110/6 Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/RingTheory/ClassGroup/Basic.lean,Mathlib/RingTheory/ClassGroup/ExtendedHom.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/PicardGroup.lean,Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean 9 17 ['faenuccio', 'github-actions', 'mathlib-merge-conflicts', 'riccardobrasca'] mattrobball
assignee:mattrobball
7-21264
7 days ago
11-36700
11 days ago
24-56900
24 days
37295 wwylele
author:wwylele
feat(Analysis/InnerProductSpace): generalized determinant of a rectangle matrix / linear map This is the volume factor of a linear map --- I have encountered the expression `sqrt(det(T' * T))` a few times in various places but it doesn't look like it has a standard name and entry in mathlib, so this adds it. Zulip thread [#Is there code for X? > (norm of) "determinant" of map between inner product spaces](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.28norm.20of.29.20.22determinant.22.20of.20map.20between.20inner.20product.20spaces/with/581776873) One motivation to define this is to state volume formula under transformations. From *Measure theory and fine properties of functions*: - Lemma 3.1: for linear map $L : \mathbb{R}^n \to \mathbb{R}^m$, we have $\mathcal{H}^n(L(A)) = [ L ] \mathcal{L}^n(A)$. This is proved in this PR at `euclideanHausdorffMeasure_image_eq_normDet_mul_volume` - Theorem 3.8, for (not necessarily linear) $f : \mathbb{R}^n \to \mathbb{R}^m$ ($n \le m$) and $\mathcal{L}^n$-measurable set $A \subset \mathbb{R}^n$, we have $\int_A J f dx = \int_{\mathbb{R}^m} \mathcal{H}^0(A \cap f\^{-1}\{y\}) d\mathcal{H}^n(y)$, where $J f$ is the `normDet` of the rectangular Jacobian matrix AI usage disclosure: AI was used in the following parts - searching for related literature for an appropriate name - generate draft proofs for some lemma to verify their correctness, though the final code has been completely rewritten by me. - [ ] depends on: #37918 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis maintainer-merge 480/0 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/NormDet.lean,docs/references.bib 4 18 ['copilot-pull-request-reviewer', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'themathqueen', 'wwylele'] j-loreaux
assignee:j-loreaux
7-2883
7 days ago
7-2621
7 days ago
40-77029
40 days
38002 Raph-DG
author:Raph-DG
feat(Topology): Relating irreducible components of a space to codimension one points in non dense subsets In this PR we show that the coheight zero points of a sober space (in the specialization order) correspond to the irreducible components. Furthermore, we show that the coheight one points of any non dense subset p of X (in the specialization order on p) have coheight zero in the specialization order on X. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-topology 103/0 Mathlib/Order/Hom/Basic.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/Minimal.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Sober.lean 5 3 ['ADedecker', 'github-actions', 'mathlib-merge-conflicts'] urkud
assignee:urkud
7-2292
7 days ago
7-2329
7 days ago
23-67848
23 days
38816 tb65536
author:tb65536
refactor(GroupTheory/Finiteness): make duplicate definitions into abbrevs The definitions `Submonoid.FG`, `Group.FG`, and `Subgroup.FG` are all equivalent to `Monoid.FG`, so I've made them into abbrevs. In the future we might even want to consider deprecating all but one to avoid having four ways to write the same thing. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
140/122 Mathlib/Algebra/AffineMonoid/Irreducible.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/MonoidLocalization/Finite.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Defs.lean,Mathlib/RingTheory/Localization/InvSubmonoid.lean 9 5 ['eric-wieser', 'github-actions', 'j-loreaux', 'tb65536'] nobody
6-73764
6 days ago
10-2397
10 days ago
10-2244
10 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'] eric-wieser
assignee:eric-wieser
6-66446
6 days ago
45-4700
45 days ago
45-5336
45 days
37522 matthewjasper
author:matthewjasper
chore: adjust Module.Finite instance priority Make instances that are rarely going to be helpful lower priority. Increase the priority of `FiniteDimensional.complexToReal`, because it's more likely correct than the other priority 100 `Module.Finite` instances. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
6/4 Mathlib/LinearAlgebra/Complex/FiniteDimensional.lean,Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean 3 3 ['github-actions', 'grunweg', 'leanprover-radar'] themathqueen
assignee:themathqueen
6-66442
6 days ago
39-80222
39 days ago
39-80068
39 days
37984 loefflerd
author:loefflerd
feat: abstract theory of measures General foundations of non-archimedean measure theory (intended for applications to Iwasawa algebras) --- - [x] depends on: #38701 t-topology 458/0 Mathlib.lean,Mathlib/NumberTheory/Padics/Measure/Basic.lean,Mathlib/NumberTheory/Padics/Measure/Group.lean,Mathlib/NumberTheory/Padics/Measure/Topology.lean 4 2 ['github-actions', 'mathlib-dependent-issues'] PatrickMassot
assignee:PatrickMassot
6-66440
6 days ago
6-80830
6 days ago
6-81404
6 days
38049 WilliamCoram
author:WilliamCoram
feat: lemmas towards showing gaussNorm on MvPowerSeries is an absolute value We prove lemmas: ``gaussNorm_mul_le`` and ``gaussNorm_le_mul`` which will allow us to show it is an absolute value on Mv restricted power series. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 144/1 Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean 1 4 ['WilliamCoram', 'github-actions'] alreadydone
assignee:alreadydone
6-66439
6 days ago
27-9384
27 days ago
27-9230
27 days
38098 astrainfinita
author:astrainfinita
chore: make `SMul.comp.smul` `implicit_reducible` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
2/1 Mathlib/Algebra/Group/Action/Defs.lean 1 3 ['astrainfinita', 'github-actions', 'leanprover-radar'] themathqueen
assignee:themathqueen
6-66438
6 days ago
25-56897
25 days ago
25-56743
25 days
38880 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/LpSpace/Complete` - shortens `ae_tendsto_of_cauchy_eLpNorm'` by rewriting the telescoping partial sums in `hx.hasSum.tendsto_sum_nat` directly and concluding with `add_const`, instead of introducing an intermediate eventual `∃ l` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 4/20 Mathlib/MeasureTheory/Function/LpSpace/Complete.lean 1 2 ['Parcly-Taxel', 'github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
6-66433
6 days ago
8-21232
8 days ago
8-21078
8 days
38883 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/AEMeasurableSequence` - rewrites `iSup` by filtering directly along `aeSeq_eq_fun_ae hf hp`, instead of proving a subset statement about `aeSeqSet` and then using `measure_mono_null` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 2/6 Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean 1 2 ['github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
6-66432
6 days ago
8-20520
8 days ago
8-20366
8 days
38895 emlis42
author:emlis42
chore(Algebra/ContinuedFractions): golf This PR simplifies some proofs in `Algebra/ContinuedFractions` t-algebra new-contributor
label:t-algebra$
39/63 Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean,Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean 7 2 ['github-actions'] nobody
6-64950
6 days ago
6-70161
6 days ago
7-58310
7 days
37714 mortarsanjaya
author:mortarsanjaya
feat(Algebra/Order/Floor/Defs): `Nat.cast` is strictly monotone in `FloorSemiring` and `FloorRing` As title says, and without the `IsOrderedRing` assumption. Other than that, I removed the `IsOrderedRing` assumption from pretty much all the lemmas in `Algebra/Order/Floor/Defs` that could possibly have this assumption removed, and reduced some `IsStrictOrderedRing` assumptions to `IsOrderedRing` + `Nontrivial`. Due to strict monotonicity, we can also provide `CharZero` instance on `FloorSemiring` and `FloorRing`. Thus we can remove the `NeZero` and `Nontrivial` instances on them. The changes on `/Ring` and `/Semiring` are trivial changes due to some lemmas not requiring an `IsOrderedRing` instance anymore. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
96/39 Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean 5 24 ['dagurtomas', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mortarsanjaya'] eric-wieser
assignee:eric-wieser
6-50744
6 days ago
10-26515
10 days ago
34-25851
34 days
37062 tannerduve
author:tannerduve
feat(Computability): Turing join and semilattice structure on Turing degrees ## Summary - Add `Partrec.kronecker` (equality test) and `Partrec.join` (disjoint union by parity) in `Partrec.lean` - Prove `Nat.RecursiveIn` is closed under computable conditionals (`cond_const`, `cond`) - Show each component reduces to the join (`left_le_join`, `right_le_join`) and the join is the least upper bound (`join_le`) - Establish `SemilatticeSup` instance on `TuringDegree` t-computability new-contributor large-import 311/15 Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean 3 7 ['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'tannerduve'] Komyyy
assignee:Komyyy
6-50652
6 days ago
28-15646
28 days ago
28-77786
28 days
38906 lua-vr
author:lua-vr
feat(ConditionallyCompleteLattice/Indexed): add binary versions of lemmas Add binary versions of some of the lemmas. Those are useful when the domain is indexed over the members of a set. From the Carleson project. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order carleson 22/5 Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean 1 12 ['JovanGerb', 'SnirBroshi', 'github-actions', 'grunweg', 'lua-vr'] nobody
6-45944
6 days ago
7-18269
7 days ago
7-28962
7 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 256/0 Mathlib.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousMap.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Basic.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Separation/Regular.lean 6 27 ['ADedecker', 'EtienneC30', 'felixpernegger', 'github-actions', 'mathlib-merge-conflicts'] nobody
6-39947
6 days ago
6-39987
6 days ago
46-35183
46 days
38951 thomaskwaring
author:thomaskwaring
feat(Order/PrimeSeparator): remove unnecessary hypotheses In `mem_ideal_sup_principal`, boundedness and distributivity were unused, and in `prime_ideal_of_disjoint_filter_ideal`, boundedness was only used to produce an element of the filter `F`, which is already nonempty by definition. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 9/19 Mathlib/Order/PrimeSeparator.lean 1 2 ['github-actions'] nobody
6-38525
6 days ago
6-38612
6 days ago
6-38458
6 days
37975 Thmoas-Guan
author:Thmoas-Guan
feat(RingTheory): AdicCompletion of local ring is local In this PR, we proved that AdicCompletion of local ring wrt the maximal ideal is local ring with maximal ideal equal to the map of the original maximal ideal. Also, removing some old junk produced by myself. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 173/5 Mathlib/RingTheory/AdicCompletion/LocalRing.lean 1 15 ['BryceT233', 'Thmoas-Guan', 'github-actions'] alreadydone
assignee:alreadydone
6-25162
6 days ago
28-34324
28 days ago
28-45964
28 days
36954 FMLJohn
author:FMLJohn
feat(Topology/ClosedBases): `TopologicalSpace.IsClosedBasis` and `TopologicalSpace.IsClosedSubbasis s` In this pull request, I have defined closed bases and closed subbases of topologies, and proved some basic properties of them. ## Main definitions * `TopologicalSpace.IsClosedBasis s`: A closed basis of a topological space `α` is a collection of closed sets `s : Set (Set α)` such that every closed subset of `α` can be written as an intersection of elements of `s`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 117/0 Mathlib.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/ClosedBases.lean 3 19 ['github-actions', 'scholzhannah'] PatrickMassot
assignee:PatrickMassot
6-16262
6 days ago
18-27118
18 days ago
47-29290
47 days
38667 SnirBroshi
author:SnirBroshi
feat(Order/Hom/Basic): equivalences of `Order{Hom/Embedding/Iso}` - `OrderHom`s are equivalent to `RelHom`s of `LE` (unlike `OrderEmbedding`/`OrderIso` they aren't defined using it) - Congruence equivs for `OrderEmbedding`/`OrderIso` when the two sides are order-isomorphic. This already exists for `OrderHom`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 55/1 Mathlib/Order/Hom/Basic.lean 1 3 ['SnirBroshi', 'dagurtomas', 'github-actions'] nobody
5-75575
5 days ago
5-75575
5 days ago
12-72942
12 days
38975 ldct
author:ldct
feat(EReal): Add equations for EReal Add equational lemmas for the simplifier to simplify `[natural number literal] + ⊤` in `EReal`, and add a test file in `MathlibTest/EReal.lean`. Without these lemmas, `simp` fails to close many of the goals in `MathlibTest/EReal.lean`. I believe simp should close all of them. An alternative is to add something like this as a simp lemma, to allow `top_add_of_ne_bot` to make progress, but it's not clear to me that this is desirable as a simp lemma, since it's not equational ``` example {n : ℕ} [n.AtLeastTwo] : (ofNat(n) : EReal) ≠ ⊤ := by exact Ne.symm (not_eq_of_beq_eq_false rfl) ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 32/0 Mathlib/Data/EReal/Operations.lean,MathlibTest/EReal.lean 2 2 ['github-actions', 'vihdzp'] nobody
5-71342
5 days ago
5-74330
5 days ago
5-74176
5 days
37584 kennethgoodman
author:kennethgoodman
feat(Data/Nat/Fib): formalize Lamé's theorem ## Summary Formalize [Lamé's theorem](https://en.wikipedia.org/wiki/Lam%C3%A9%27s_theorem) (1844), the founding result of computational complexity theory. **Lamé's Theorem:** If the Euclidean algorithm on inputs `(a, b)` with `b ≤ a` takes `n + 1` division steps, then `b ≥ fib(n + 1)` and `a ≥ fib(n + 2)`. ### New definitions - `Nat.euclidSteps`: counts the number of division steps in the Euclidean algorithm on natural number inputs. ### New theorems - `Nat.fib_le_of_euclidSteps`: the main Lamé bound — Fibonacci lower bound on inputs given a step count. - `Nat.euclidSteps_le_of_lt_fib`: the contrapositive — step count upper bound given a Fibonacci bound on the smaller input. - `Nat.add_mod_le`: helper lemma that `b + a % b ≤ a` when `b ≤ a` and `0 < b`. ### Proof strategy Induction on `n`, tracking both elements of the pair. The key insight is that each Euclidean step replaces `(a, b)` with `(b, a % b)`, and since `a ≥ b + a % b` (because `a / b ≥ 1`), the Fibonacci recurrence `fib(n+3) = fib(n+2) + fib(n+1)` matches the structure of the algorithm. ### References - Gabriel Lamé, *Note sur la limite du nombre des divisions dans la recherche du plus grand commun diviseur entre deux nombres entiers*, Comptes rendus de l'Académie des sciences, 1844. --- ### AI usage disclosure Per the [Mathlib AI guidelines](https://leanprover-community.github.io/contribute/index.html#use-of-ai): Claude Code (Claude Opus 4.6) was used to assist with writing the Lean 4 proof code, fixing tactic errors, and drafting this PR description. The mathematical proof (induction on step count, tracking both pair elements through the Fibonacci recurrence) was designed by hand and verified on paper before formalization. I have reviewed and understand every line of the resulting Lean code and can explain all proof steps. --- - [x] builds cleanly (`lake build Mathlib.Data.Nat.Fib.Lame`) - [x] no `sorry` - [x] lines ≤ 100 characters, no trailing whitespace - [x] `autoImplicit false` - [x] docstrings on all public declarations new-contributor LLM-generated t-data 121/0 Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml 5 24 ['euprunin', 'github-actions', 'kennethgoodman', 'vihdzp', 'wwylele'] TwoFX
assignee:TwoFX
5-66460
5 days ago
30-23661
30 days ago
37-65872
37 days
38052 WenrongZou
author:WenrongZou
feat(FormalGroup): `F(X,0)=X` and `F(0,X)=X` In this PR, I prove that given a formal group law `F`, then `F(X,0) = X` and `F(0,X) = X`. And modify the definition of `FormalGroup.Point` to be a subtype. And prove that this subtype is a `AddZeroClass`. Eventually we will prove that this is a `AddGroup`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 257/33 Mathlib/RingTheory/FormalGroup/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Evaluation.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean 5 17 ['WenrongZou', 'eric-wieser', 'github-actions', 'mariainesdff'] mattrobball
assignee:mattrobball
5-66456
5 days ago
8-79445
8 days ago
26-77744
26 days
38231 NoneMore
author:NoneMore
feat(ModelTheory/Definablity): add syntax-to-definability bridge lemmas Add bridge lemmas from syntax to definability and refactor downstream proofs to use them. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 88/56 Mathlib/ModelTheory/Definability.lean,Mathlib/ModelTheory/ElementarySubstructures.lean 2 1 ['github-actions'] fpvandoorn
assignee:fpvandoorn
5-66455
5 days ago
22-51829
22 days ago
22-51675
22 days
38778 felixpernegger
author:felixpernegger
feat(Topology/EMetricSpace): instances of weak extended metric spaces Continuation of #38105. In particular, this makes `ENNReal` and `EReal` weak extended metric spaces. After this PR one can probably generalise various results/definition which use `(Pseudo)EMetricSpace` to use `Weak(Pseudo)EMetricSpace` (so that they in particular also hold for `ENNReal` and `EReal`) t-topology 247/0 Mathlib.lean,Mathlib/Topology/EMetricSpace/Weak.lean 2 1 ['github-actions'] PatrickMassot
assignee:PatrickMassot
5-66450
5 days ago
6-64354
6 days ago
6-65154
6 days
38815 dagurtomas
author:dagurtomas
feat(Tactic/CategoryTheory): extend `@[to_app]` to natural transformations This extends the `@[to_app]` attribute so it also generates componentwise lemmas from equalities of natural transformations between functors, while preserving the existing bicategory behavior. It also ensures generated component lemmas remain usable by dsimp when they are definitionally true. t-category-theory LLM-generated t-meta 148/22 Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Util/AddRelatedDecl.lean,MathlibTest/CategoryTheory/ToApp.lean 3 1 ['github-actions'] kim-em
assignee:kim-em
5-66449
5 days ago
10-6244
10 days ago
10-6144
10 days
37707 MavenRain
author:MavenRain
feat(Combinatorics/SimpleGraph): add IsMaximalClique/IsMaximalIndepSet, refactor IsMaximum* to MaximalFor Addresses #34962 new-contributor t-combinatorics 44/31 Mathlib/Combinatorics/SimpleGraph/Clique.lean 1 4 ['MavenRain', 'SnirBroshi', 'github-actions'] nobody
5-59425
5 days ago
5-60511
5 days ago
5-61997
5 days
38009 CBirkbeck
author:CBirkbeck
feat(RingTheory/Valuation): define the valuation spectrum and its topology ## Summary Define the valuation spectrum `Spv A` of a commutative ring and equip it with the topology generated by basic open sets, following Wedhorn's *Adic Spaces*. Also define the pullback (`comap`) of a `ValuativeRel` along a ring homomorphism. This is preparation for later defining adic spaces. Note the code was generated by claude code, but I have cleaned up and pre-reviewed the work. t-ring-theory LLM-generated 362/0 Mathlib.lean,Mathlib/RingTheory/Valuation/ValuationSpectrum.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Comap.lean 3 40 ['CBirkbeck', 'adamtopaz', 'chrisflav', 'dagurtomas', 'faenuccio', 'github-actions', 'jjdishere', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
5-45586
5 days ago
27-27503
27 days ago
27-27502
27 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 50/0 Mathlib/RingTheory/Localization/Away/Basic.lean 1 8 ['chrisflav', 'github-actions', 'hommmmm'] chrisflav
assignee:chrisflav
5-44656
5 days ago
5-44656
5 days ago
28-28643
28 days
38950 smmercuri
author:smmercuri
chore(Algebra): `coe_algHom` -> `coe_toAlgHom` --- There are also instances of `coe_ringHom`, `coe_linearMap` etc which I can fix in follow-up PRs [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 78/64 Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean,Mathlib/Algebra/Azumaya/Basic.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/AlgebraicGeometry/AffineSpace.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean,Mathlib/FieldTheory/Extension.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Isaacs.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/FieldTheory/LinearDisjoint.lean,Mathlib/FieldTheory/Minpoly/Field.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/LinearAlgebra/Charpoly/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean,Mathlib/NumberTheory/Cyclotomic/Gal.lean,Mathlib/RingTheory/Algebraic/MvPolynomial.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/DividedPowerAlgebra/Init.lean,Mathlib/RingTheory/Extension/Presentation/Basic.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/RingTheory/GradedAlgebra/AlgHom.lean,Mathlib/RingTheory/GradedAlgebra/TensorProduct.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean,Mathlib/RingTheory/NoetherNormalization.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Factorization.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Smooth/IntegralClosure.lean,Mathlib/RingTheory/TensorProduct/Maps.lean 33 2 ['github-actions'] nobody
5-40010
5 days ago
6-36534
6 days ago
6-38215
6 days
38557 SnirBroshi
author:SnirBroshi
feat(Order/Monotone/Defs): weaken `Preorder` to `LE`/`LT` `Monotone`/`Antitone`/`MonotoneOn`/`AntitoneOn` can use any `LE`, and `StrictMono`/`StrictAnti`/`StrictMonoOn`/`StrictAntiOn` can use any `LT`. This makes it necessary to add some explicit type params (e.g. `(α := α)`) in some places that use monotone-related theorems (e.g. `Function.monotone_eval`). --- Currently `OrderEmbedding` and `OrderIso` can use `LE` but `OrderHom` requires `Preorder` because it's defined using `Monotone`. Generalizing `Monotone` and friends will let us fix this oddity. This follows other basic definitions such as `IsMax`/`CovBy`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 21/15 Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Order/Interval/Lex.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean,Mathlib/Topology/Order/MonotoneConvergence.lean 7 2 ['JovanGerb', 'github-actions'] nobody
5-37772
5 days ago
14-67773
14 days ago
14-70450
14 days
38483 jessealama
author:jessealama
feat(Algebra/BigOperators): add `Antiperiodic.sum_Ico_shift` Three lemmas about `Finset` sums of `Function.Antiperiodic` functions: `sum_map_add_right` says that for `f` antiperiodic with antiperiod `c`, summing `f` over a `Finset` shifted by `c` (via `addRightEmbedding c`) negates the sum over the original; `sum_Ico_shift` is the half-open-interval specialization, immediate via `Finset.map_add_right_Ico`; and `sum_Ico_mul_add_sum_Ico_mul_shift_eq_zero` is a bilinear cancellation variant. Spun off from #29713 (Euler-Poincaré formula), where the bilinear form is used. t-algebra
label:t-algebra$
63/0 Mathlib.lean,Mathlib/Algebra/BigOperators/Periodic.lean 2 5 ['github-actions', 'j-loreaux', 'jessealama', 'wwylele'] nobody
5-31206
5 days ago
6-46745
6 days ago
16-19622
16 days
37310 CoolRmal
author:CoolRmal
feat(MeasureTheory): uniformly distributed outer regular measures in a second countable pseudometric space are unique up to a finite constant In this PR we define uniformly distributed measures and prove [Christensen's Lemma](https://en.wikipedia.org/wiki/Spherical_measure), which says that uniformly distributed outer regular measures in a second countable pseudometric space are unique up to a finite constant. A classical application of Christensen's Lemma is to show that the restriction of the `n - 1`-dimensional Hausdorff measure onto an `n`-dimensional sphere coincides with the spherical measure. This will be done in another PR. --- - [x] depends on: #37311 - [x] depends on: #37312 - [x] depends on: #37313 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 201/1 Mathlib.lean,Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/MeasureTheory/Measure/UniformlyDistributed.lean,Mathlib/Order/LiminfLimsup.lean 4 17 ['CoolRmal', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'wwylele'] RemyDegenne
assignee:RemyDegenne
5-25071
5 days ago
6-68185
6 days ago
10-11927
10 days
38989 grunweg
author:grunweg
chore: remove `(d)simp only []` Either remove them (when they were unnecessary), or replace by something more low-level. --- I'm happy to make them `simp only` instead, if that is preferred. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 10/17 Counterexamples/AharoniKorman.lean,Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean,Mathlib/CategoryTheory/Limits/Fubini.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RE.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Computability/TuringMachine/StackTuringMachine.lean,Mathlib/LinearAlgebra/Matrix/Basis.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/ModelTheory/Encoding.lean 11 4 ['b-mehta', 'github-actions', 'grunweg'] nobody
5-24614
5 days ago
5-39882
5 days ago
5-39728
5 days
37553 grunweg
author:grunweg
chore: golf using .ne and friends ne_of_gt -> .ne' ne_of_lt -> .ne le_of_lt -> .le Drive-by golfs using gcongr and positivity and been split into separate PRs. --- - [x] depends on: #37462 - [x] depends on: #37715 - [x] depends on: #37554 - [x] depends on: #37845 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 302/321 Archive/Imo/Imo1981Q3.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2019Q4.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Counterexamples/NowhereDifferentiable.lean,Counterexamples/TopologistsSineCurve.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/CharP/Defs.lean,Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Finite.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/Order/Antidiag/Nat.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Interval/Set/Instances.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Order/Round.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Polynomial/DenomsClearable.lean,Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/QuadraticDiscriminant.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Asymptotics/ExpGrowth.lean,Mathlib/Analysis/Asymptotics/LinearGrowth.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/DerivativeTest.lean,Mathlib/Analysis/Calculus/FDeriv/Extend.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/LHopital.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/OpenMapping.lean,Mathlib/Analysis/Complex/Poisson.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Convex/Caratheodory.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/Analysis/Convex/Radon.lean,Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/MellinInversion.lean,Mathlib/Analysis/MellinTransform.lean,Mathlib/Analysis/Normed/Field/Approximation.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean,Mathlib/Analysis/Normed/Ring/Units.lean,Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Analysis/Real/Hyperreal.lean,Mathlib/Analysis/Real/Pi/Bounds.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/PolarCoord.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Int/Interval.lean,Mathlib/Data/Int/ModEq.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Log.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Real/ConjExponents.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean 114 6 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
5-23656
5 days ago
5-36732
5 days ago
11-49995
11 days
38979 ldct
author:ldct
feat(EReal): simplify nat + ⊤ Alternative version of https://github.com/leanprover-community/mathlib4/pull/38975 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 28/2 Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/Operations.lean,MathlibTest/EReal.lean 3 6 ['SnirBroshi', 'eric-wieser', 'github-actions', 'ldct', 'leanprover-radar'] nobody
5-19457
5 days ago
5-19223
5 days ago
5-19199
5 days
39006 tb65536
author:tb65536
feat(Algebra/Field/Subfield/Basic): add definition of finitely generated fields This PR adds a definition of finitely generated fields with API relating this definition to the existing definitions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
18/0 Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean 3 1 ['github-actions'] nobody
5-13461
5 days ago
5-13461
5 days ago
5-13309
5 days
38884 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/Egorov` - shortens `tendstoUniformlyOn_diff_iUnionNotConvergentSeq` by extracting the needed distance bound from `hx` with a single `not_lt.mp` argument, instead of unpacking `hx` via a long `simp`/`push Not` chain Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 4/8 Mathlib/MeasureTheory/Function/Egorov.lean 1 2 ['github-actions', 'yuanyi-350'] sgouezel
assignee:sgouezel
5-12498
5 days ago
8-20307
8 days ago
8-20153
8 days
38553 Whysoserioushah
author:Whysoserioushah
feat(RepresentationTheory/Homological): define Tate cohomology co-authored-by : class field theory team --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra CFT
label:t-algebra$
287/1 Mathlib.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/TateCohomology/Basic.lean 4 30 ['Multramate', 'Whysoserioushah', 'faenuccio', 'github-actions', 'kbuzzard', 'riccardobrasca'] faenuccio
assignee:faenuccio
5-12151
5 days ago
10-69505
10 days ago
15-2405
15 days
39011 Vierkantor
author:Vierkantor
chore(Algebra/Polynomial/Module): workaround for backward.inferInstanceAs This PR, like #38990, works around a `backward.inferInstanceAs` compatibility flag introduced by identifying `PolynomialModule` with `Finsupp` in our definitions. We introduce a new dsimp lemma `funLike_eq` that transfers the `FunLike` instances, and now we can use `PolynomialModule`'s `FunLike` instance, instead of the custom `CoeFun` instance. This is not a great approach, but it seems the least painful for the short term. The alternative would be to strictly enforce the defeq barrier between `PolynomialModule` and `Finsupp`, which would mean a substantial rewrite of this corner of Mathlib. We can't make `PolynomialModule` an `@[implicit_reducible]`, because we need different multiplication on it than `Finsupp` has. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt
label:t-algebra$
8/5 Mathlib/Algebra/Polynomial/Module/Basic.lean 1 1 ['github-actions'] nobody
5-8721
5 days ago
5-8805
5 days ago
5-8651
5 days
38968 eric-wieser
author:eric-wieser
fix: improve defeqs of comp actions The (deliberately) non-reducible `SMul.comp.smul` definition caused us to end with these failing unification examples at instance reducibility: ```lean example : (Module.compHom ℕ (RingHom.id ℕ)).toSMul = SMul.comp ℕ (RingHom.id ℕ) := by with_reducible_and_instances rfl example : (Module.compHom ℕ (RingHom.id ℕ)).toMulAction = MulAction.compHom ℕ (MonoidHom.id ℕ) := by with_reducible_and_instances rfl ``` There are two issues this fixes: * the `compHom` constructors are inconsistent on whether they use `SMul.comp.smul` or reimplement its contents * we need `SMul.comp.smul` to be instance-reducible, so that when invoked with the identity function it is instance-defeq to the original action. As a bonus, allowing these to unify means we can have a single `SMul.comp_smul_def` lemma that works for all of the `compHom` definitions. We could also consider changing `compHom` to take a `HomClass` in order to remove the casts entirely, which would remove the need to add these `SMul.comp` terms. This PR leaves that for possible future work, noting that in the past we have moved away from writing `def`s taking `HomClass`es. Co-authored-by: Junye Ji --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) Refined from #38777 t-algebra
label:t-algebra$
35/19 Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/Module/RingHom.lean 5 3 ['JJYYY-JJY', 'eric-wieser', 'github-actions'] nobody
4-71492
4 days ago
4-80922
4 days ago
4-80768
4 days
37718 SabrinaJewson
author:SabrinaJewson
feat(Order): add conversions from `Std` order typeclasses to Mathlib ones `{Preorder, PartialOrder, LinearOrder}.ofStd` exist to facilitate convenient translation from `Std` order typeclasses to Mathlib ones. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 366/0 Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean 3 2 ['github-actions'] nobody
4-67145
4 days ago
34-70056
34 days ago
34-70395
34 days
38014 cduenasnavarro
author:cduenasnavarro
feat(InformationTheory): linear codes over finite fields and minimum distance properties Define linear codes over a finite field `F` as finite-dimensional subspaces of `Fin n → F`, together with their minimum Hamming distance. Main definitions: * `LinearCode` * `minDist` * `LinearCodeWithDist` * `hammingSphere` Main results: * `minDist_eq_sInf_pairwiseDist`: characterisation of the minimum distance via pairwise distances * `disjoint_spheres`: Hamming spheres of radius `t` around distinct codewords are disjoint if `2 * t < d` Pending: * Choosing an adequate book reference --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability new-contributor 143/0 Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean 2 37 ['cduenasnavarro', 'github-actions', 'linesthatinterlace', 'rkirov', 'vihdzp', 'wwylele'] EtienneC30
assignee:EtienneC30
4-66245
4 days ago
27-85086
27 days ago
27-85695
27 days
38189 artie2000
author:artie2000
feat: simplify proof of `IsAdjoinRootMonic.mkOfAdjoinEqTop'` * Simplify the proof of `IsAdjoinRootMonic.mkOfAdjoinEqTop'` by factoring out a lemma `OrzechProperty.bijective_of_surjective_of_finrank_le` and making use of the existing lemma `finrank_le_iff_exists_linearMap`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 22/21 Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/RingTheory/IsAdjoinRoot.lean 2 6 ['Vierkantor', 'artie2000', 'github-actions'] riccardobrasca
assignee:riccardobrasca
4-66242
4 days ago
23-71932
23 days ago
23-74443
23 days
38885 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/LpOrder` - rewrites `coeFn_nonneg` to use the `Lp.coeFn_zero` eventual equality directly via `trans_le`, instead of a separate `filter_upwards` proof Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 1/4 Mathlib/MeasureTheory/Function/LpOrder.lean 1 2 ['github-actions', 'yuanyi-350'] RemyDegenne
assignee:RemyDegenne
4-66238
4 days ago
8-20087
8 days ago
8-19933
8 days
38886 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/SimpleFuncDenseLp` - rewrites `measure_preimage_lt_top_of_memLp` via `FinMeasSupp.of_lintegral_ne_top` and `FinMeasSupp.map_iff`, instead of expanding `eLpNorm'` and splitting through `ENNReal.mul_lt_top_iff` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 9/21 Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean 1 2 ['github-actions', 'yuanyi-350'] RemyDegenne
assignee:RemyDegenne
4-66237
4 days ago
8-19879
8 days ago
8-19725
8 days
39004 zhuyizheng
author:zhuyizheng
chore(ModelTheory): fix hypo of `realize_liftAt` changes the hypo of `realize_liftAt` from the incorrect `(hmn : m + n' ≤ n + 1)` to the correct `(hmn : m ≤ n)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 2/2 Mathlib/ModelTheory/Semantics.lean 1 3 ['github-actions', 'plp127', 'zhuyizheng'] nobody
4-66086
4 days ago
5-15815
5 days ago
5-15661
5 days
37755 YaelDillies
author:YaelDillies
refactor(Data/Finsupp): use `single` in `uniqueEquiv` In essence, this changes `(Finsupp.uniqueEquiv i).symm m` from having support `univ.filter (fun _ ↦ m ≠ 0)` to having support `if m = 0 then {i} else ∅`. These are equal, but having the RHS be `single 1 r` is much more useful in practice. Similarly for `MonoidAlgebra`. Also rename `Equiv.finsuppUnique` to `Finsupp.uniqueEquiv` and change the `Unique ι` argument into `Subsingleton ι` and `i : ι`. Similarly for `AddEquiv` and `LinearEquiv`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 98/74 Mathlib/Algebra/FreeAlgebra/Cardinality.lean,Mathlib/Algebra/Group/Finsupp.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/AlgebraicGeometry/Spec.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Single.lean,Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean,Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean,Mathlib/LinearAlgebra/Finsupp/Pi.lean,Mathlib/RepresentationTheory/Action.lean,Mathlib/RepresentationTheory/Equiv.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RepresentationTheory/Homological/Resolution.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/PicardGroup.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/GaussNorm.lean,Mathlib/RingTheory/PowerSeries/PiTopology.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/TensorProduct/Free.lean 21 6 ['YaelDillies', 'eric-wieser', 'github-actions'] nobody
4-55861
4 days ago
5-241
5 days ago
5-326
5 days
38310 ZRTMRH
author:ZRTMRH
feat(Combinatorics/Quiver/Schreier): word evaluation and reachability Adds word evaluation and reachability results to the Schreier graph API. * `SchreierGraph.evalWord` : evaluates a word `List (S × Bool)` as an element of the ambient group, where `(s, true)` contributes `ι s` and `(s, false)` contributes `(ι s)⁻¹`. * `SchreierGraph.evalWord_eq_lift` : agreement with `FreeGroup.lift`. * `SchreierGraph.evalWord_mem_closure` : every word evaluates into the subgroup generated by `ι`. * `SchreierGraph.pathFromWord` : a Bool-tagged word yields a path in `Symmetrify (SchreierGraph V ι)` from `x` to `evalWord ι w • x`. * `SchreierGraph.reachable_iff` : two vertices are connected by a path in the symmetrification iff some element of the subgroup closure carries one to the other. Follow-up to #36320. This PR was written with AI assistance (Claude). The code has been reviewed by the author. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics large-import LLM-generated 157/0 Mathlib/Combinatorics/Quiver/Schreier.lean 1 2 ['github-actions'] nobody
4-52540
4 days ago
20-86014
20 days ago
20-85860
20 days
38873 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Constructions/BorelSpace/Real` - rewrites `measurable_const_mul` by splitting off the `c = 0` case and proving the nonzero case via `measurable_of_continuousOn_compl_singleton` - replaces the ad hoc case analysis on `⊥`, `⊤`, and real coefficients with a direct continuity argument for multiplication on `EReal` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 5/19 Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean 1 3 ['LorenzoLuccioli', 'github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
4-50350
4 days ago
4-69660
4 days ago
7-80615
7 days
39003 TwoFX
author:TwoFX
chore: avoid declaring duplicate instances `LE String` and `LT String` Since forever, mathlib has declared `LE String` and `LT String` instances which are propositionally, but not definitionally, equal to the `LE String` and `LT String` instances that have shipped with core. This regularly leads to problems with automation that expects instances to be canonical, most recently as described in leanprover/lean4#13544. This PR demotes the mathlib instances to definitions, and redefines the `LinearOrder String` instance to use the core-provided instances rather than the ones defined in mathlib. It also redeclares the theorems `String.lt_iff_toList_lt` and `String.le_iff_toList_le` to be about the core-provided instances rather than the mathlib ones, and the theorems about the mathlib instances are now called `String.lt_iff_toList_lt'` and `String.le_iff_toList_le'`. Deprecating the material related to the mathlib instances would be a logical next step, but it might make sense to wait with this until core ships more API for `LE String` and `LT String` (right now it ships none). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 31/14 Mathlib/Data/String/Basic.lean 1 5 ['TwoFX', 'eric-wieser', 'github-actions'] nobody
4-47044
4 days ago
4-48870
4 days ago
4-49189
4 days
39016 vihdzp
author:vihdzp
chore: deprecate `WithZero.zero_le` This is a duplicate of `zero_le` in the root namespace. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
14/24 Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/FieldTheory/RatFunc/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean 4 1 ['github-actions'] nobody
4-47027
4 days ago
4-47485
4 days ago
4-49551
4 days
39023 TBUGTB
author:TBUGTB
feat(Algebra/Order): API lemmas on floor and abs Co-authored-by: Etienne Marion @EtienneC30 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra brownian new-contributor
label:t-algebra$
9/0 Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/Ring/Abs.lean 2 3 ['TBUGTB', 'github-actions'] nobody
4-34266
4 days ago
4-37455
4 days ago
4-37301
4 days
39029 felixpernegger
author:felixpernegger
chore: remove redundant `unfold`s This PR removed roughly (estimated by files I went through) half of the `unfold`'s in mathlib which can be removed such that the proof still works (found by searching `unfold ` in VSCode in manually going through ~600/1100 occurences). I originally planned to replace all, but I couldn't find any relevant discussion if this is actually a good practice, so to save potentially wasted time, I make this PR now. (similarly with the `clear` tactic) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 63/108 Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q5.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Mathlib/Algebra/EuclideanDomain/Basic.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean,Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean,Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Convex/Strict.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean,Mathlib/CategoryTheory/Functor/Flat.lean,Mathlib/CategoryTheory/Functor/FullyFaithful.lean,Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean,Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Combinatorics/Graph/Delete.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RegularExpressions.lean,Mathlib/Computability/TuringMachine/PostTuringMachine.lean,Mathlib/Computability/TuringMachine/StackTuringMachine.lean,Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Data/Fintype/EquivFin.lean,Mathlib/Data/Fintype/List.lean,Mathlib/Data/Int/GCD.lean,Mathlib/Data/List/Intervals.lean,Mathlib/Data/Matrix/Basis.lean,Mathlib/Data/Nat/BinaryRec.lean,Mathlib/Data/Nat/ChineseRemainder.lean,Mathlib/Data/Nat/Digits/Div.lean,Mathlib/Data/Nat/Dist.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/PNat/Prime.lean,Mathlib/Data/Real/Embedding.lean,Mathlib/Data/Seq/Defs.lean,Mathlib/Data/Stream/Init.lean,Mathlib/Data/WSeq/Basic.lean,Mathlib/Data/ZMod/Basic.lean 44 3 ['felixpernegger', 'github-actions', 'leanprover-radar'] nobody
4-27385
4 days ago
4-31972
4 days ago
4-31818
4 days
36832 KryptosAI
author:KryptosAI
chore(Data/Finset/Card): rename `pred_card_le_card_erase` to `sub_one_card_le_card_erase` ## Summary The name `pred_card_le_card_erase` suggests `Nat.pred` but the statement uses `- 1` (i.e., `Nat.sub 1`). Rename to `sub_one_card_le_card_erase` to match the actual statement. A deprecated alias is added for backwards compatibility. ### Files changed - `Mathlib/Data/Finset/Card.lean` — definition renamed + deprecated alias - `Mathlib/Data/Finset/Powerset.lean` — reference updated - `Mathlib/Combinatorics/Additive/SubsetSum.lean` — reference updated - `Mathlib/Algebra/Polynomial/EraseLead.lean` — reference updated Addresses the `Finset.pred_card_le_card_erase` item in #21584. ## AI disclosure I used Claude Code to explore the codebase (finding all references to rename) and to draft the PR description. I reviewed and understand all changes — these are straightforward renames with a deprecated alias. new-contributor 22/15 Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Combinatorics/SetFamily/Shadow.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Set/Card.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/RingTheory/Ideal/Operations.lean 9 8 ['KryptosAI', 'Multramate', 'dagurtomas', 'github-actions', 'mattrobball', 'ooovi'] nobody
4-21286
4 days ago
38-63326
38 days ago
52-73500
52 days
38867 jvanwinden
author:jvanwinden
feat(Probability/Process/Adapted): add IsProgressive and basic API This PR is a follow-up of #38254 and introduces a `Measurable` variant of `IsStronglyProgressive` with basic API. The statements of the lemmas are modeled after the corresponding lemma's for `Measurable`, and the proof is simply to apply them pointwise in `i`. I have refrained from adding too many basic lemma's, since it remains to be seen if `IsProgressive` will see extensive use. Zulip discussion at [#Brownian motion > Adapted Filtrations for Markov Chains and Markov Processes](https://leanprover.zulipchat.com/#narrow/channel/509433-Brownian-motion/topic/Adapted.20Filtrations.20for.20Markov.20Chains.20and.20Markov.20Processes/with/563702867) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 91/9 Mathlib/Probability/Process/Adapted.lean 1 3 ['RemyDegenne', 'github-actions', 'jvanwinden'] kex-y
assignee:kex-y
4-2320
4 days ago
8-32129
8 days ago
8-32109
8 days
38527 archiebrowne
author:archiebrowne
feat(Analysis/Calculus): continuously differentiable actions define the class `ContDiffSMul 𝕜 M X n` which asserts that the map `(c, x) ↦ c • x` is `n` times continuously differentiable on `M × X`. Many of the results are the C^n analogues of those in the module Mathlib.Topology.Algebra.MulAction. t-differential-geometry new-contributor 317/24 Mathlib.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/ContDiffMulAction.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean 6 11 ['archiebrowne', 'github-actions', 'grunweg', 'peabrainiac'] PatrickMassot and grunweg
assignee:grunweg assignee:PatrickMassot
3-82927
3 days ago
3-83002
3 days ago
11-68757
11 days
37928 AlexeyMilovanov
author:AlexeyMilovanov
refactor(Computability.Encoding): unbundle Γ and remove FinEncoding This PR unbundles the alphabet `Γ` from the `Encoding` structure and completely removes `FinEncoding`. `Encoding`: The alphabet `Γ` is now an explicit parameter: `structure Encoding (α : Type u) (Γ : Type v)`. `FinEncoding`: Removed. Finiteness is now handled via standard typeclasses (e.g., `[Fintype Γ] (e : Encoding α Γ)`). Combinators: Functions like `finEncodingPair` are simplified to `encodingPair`, dropping the `fin` prefix and `[Fintype]` requirements where no longer needed. Downstream: Mechanically updated `Mathlib.Computability` and `Mathlib.ModelTheory` to pass the explicit `Γ` and use `[Fintype Γ]` where `FinEncoding` was previously required. new-contributor 87/67 Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean 2 7 ['AlexeyMilovanov', 'dagurtomas', 'github-actions', 'vihdzp'] nobody
3-81706
3 days ago
4-35311
4 days ago
30-15013
30 days
38336 chrisflav
author:chrisflav
feat(CategoryTheory/Monoidal): `MulAction` induced by a `ModObj` We define the `MulAction` on hom types induced by a monoid object `M` action on `X` in a cartesian monoidal category. --- - [x] depends on: #38342 Given that `Mathlib.CategoryTheory.Monoidal.Cartesian.Mod`, I think the import increase is fine. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory large-import 153/3 Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mod.lean,Mathlib/CategoryTheory/Monoidal/Mod.lean 3 14 ['JovanGerb', 'chrisflav', 'dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier'] nobody
3-79138
3 days ago
3-79138
3 days ago
4-80397
4 days
38903 lua-vr
author:lua-vr
feat(Covering/Vitali): add `exists_disjoint_subfamily_covering_enlargement_ball` Adds the analogous version `exists_disjoint_subfamily_covering_enlargement_ball` of the Vitali covering theorem for open balls. For the Carleson project. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 37/0 Mathlib/MeasureTheory/Covering/Vitali.lean 1 2 ['github-actions'] EtienneC30
assignee:EtienneC30
3-79062
3 days ago
7-42349
7 days ago
7-42195
7 days
39055 vihdzp
author:vihdzp
chore: deprecate `not_lt_zero'` and `bot_eq_zero''` Two easy pickings from #38663. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 24/37 Mathlib/Algebra/Order/Floor/Extended.lean,Mathlib/Algebra/Order/IsBotOne.lean,Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Data/Int/WithZero.lean,Mathlib/Data/List/Shortlex.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/GroupTheory/Coxeter/Basic.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/Topology/MetricSpace/PiNat.lean 11 1 ['github-actions'] nobody
3-69570
3 days ago
3-73291
3 days ago
3-73137
3 days
39059 vihdzp
author:vihdzp
feat: `IsBotOneClass (Associates M)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
11/9 Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/RingTheory/ChainOfDivisors.lean 2 1 ['github-actions'] nobody
3-67245
3 days ago
3-67321
3 days ago
3-69193
3 days
37598 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Coloring): add lemmas about coloring and maps --- Idea from this Zulip thread: [graph theory>Second Order Monadic Logic for Graph](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Second.20Order.20Monadic.20Logic.20for.20Graph/with/583013775) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 37/13 Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean 2 18 ['IvanRenison', 'SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] nobody
3-67145
3 days ago
24-84505
24 days ago
36-27167
36 days
39061 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Walk/Paths): a trail which isn't a path has a cycle subwalk - `p.IsPath ↔ ∀ (v : V) (w : G.Walk v v), w.IsSubwalk p → w.Nil` - `p.IsTrail → (p.IsPath ↔ ∀ (v : V) (w : G.Walk v v), w.IsSubwalk p → ¬w.IsCycle)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 28/0 Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean 2 1 ['github-actions'] nobody
3-66535
3 days ago
3-66619
3 days ago
3-66465
3 days
37527 bryanboehnke
author:bryanboehnke
feat(LocalRing/Etale): Finite étale extensions of local rings are monogenic Formalization of Lemma 3.2 from https://arxiv.org/abs/2503.07846: Given a finite extension of local rings R -> S, if the extension is étale, then there exists β ∈ S such that R[β] = S. Furthermore, if f(z) ∈ R[z] is the minimal polynomial of β, then f′(β) is a unit in S. This file also includes some relevant intermediate results used in the formalization of the proof of Lemma 3.1 from the same paper. Co-authored-by: George Peykanu Co-authored-by: Bianca Viray Co-authored-by: Grant Yang --- - [ ] depends on: #36421 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 148/0 Mathlib.lean,Mathlib/RingTheory/LocalRing/Etale.lean 2 5 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] riccardobrasca
assignee:riccardobrasca
3-66192
3 days ago
21-66464
21 days ago
22-887
22 days
38021 IvanRenison
author:IvanRenison
feat(Data/Int/ModEq): add theorem `modEq_two_abs` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 4/0 Mathlib/Data/Int/ModEq.lean 1 1 ['github-actions'] TwoFX
assignee:TwoFX
3-66190
3 days ago
27-76497
27 days ago
27-76343
27 days
38095 astrainfinita
author:astrainfinita
perf(Algebra/*/{InjSurj, TransferInstance}): reduce instance `Expr`s --- We can not just use `fast_instance%`, because `fast_instance%` reduces instances into constructor applications, but their arguments may still not be reduced. This PR continues the work from #13795. Original PR: https://github.com/leanprover-community/mathlib4/pull/13795 [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/instance.20unfolding.20phenomenon/) t-algebra
label:t-algebra$
401/219 Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/TransferInstance.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/TransferInstance.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/Group/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/GroupWithZero/Action/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/TransferInstance.lean,Mathlib/Util/TermReduce.lean,scripts/noshake.json 16 7 ['astrainfinita', 'github-actions', 'leanprover-radar'] dagurtomas
assignee:dagurtomas
3-66188
3 days ago
25-56492
25 days ago
25-58868
25 days
38198 JovanGerb
author:JovanGerb
chore(Data/Real/Basic): `no_expose` the private operations This PR puts `no_expose` on all of the operations on `Real` that are defined in terms of quotients. This is a step in the direction of not exposing the definiton of `Real`. Note that I leave the `irreducible_def`s as is. This is because the `simpNF` linter does not participate in the module system, and it would time out otherwise. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 11/32 Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean 3 11 ['JovanGerb', 'eric-wieser', 'github-actions', 'leanprover-radar'] TwoFX
assignee:TwoFX
3-66187
3 days ago
23-37732
23 days ago
23-38519
23 days
38282 JovanGerb
author:JovanGerb
chore(Algebra/Lie/Submodule): remove duplicate instance This PR removes the explicit `CoeSort` instance on `LieSubmodule`, because it is identical to the one inherited from its `SetLike` instance. This instance was added in #16509, and I'm not quite sure why it was needed then and not anymore. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
0/3 Mathlib/Algebra/Lie/Submodule.lean 1 1 ['github-actions'] ocfnash
assignee:ocfnash
3-66185
3 days ago
21-36771
21 days ago
21-36617
21 days
38725 yuanyi-350
author:yuanyi-350
chore(AlgebraicGeometry/ProjectiveSpectrum): remove `erw`s - folds the `erw` steps in `isSeparated` into the surrounding `simp only` rewrites, including `affineOpenCover_f` Extracted from #38415 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 9/12 Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean 1 2 ['dagurtomas', 'github-actions'] dagurtomas
assignee:dagurtomas
3-66183
3 days ago
10-9490
10 days ago
11-25036
11 days
38762 yuanyi-350
author:yuanyi-350
chore(AlgebraicGeometry/EllipticCurve/Projective/Point): remove erws - rewrites `neg_of_Z_ne_zero` by splitting the `Fin 3` equality and closing the coordinates with `rw` - rewrites `addXYZ_neg` with `rw` followed by `simp` Extracted from #38415 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-algebraic-geometry LLM-generated 6/3 Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean 1 3 ['dagurtomas', 'github-actions'] dagurtomas
assignee:dagurtomas
3-66182
3 days ago
10-69910
10 days ago
11-21944
11 days
39036 ajhendel
author:ajhendel
doc: fix Lean 3 namespace in DiophantineApproximation The implementation notes section references the Lean 3 namespace \`real.contfrac_legendre\`, but this was renamed to \`Real.ContfracLegendre\` during the port. This fixes the reference. --- Co-Authored-By: Claude Opus 4.6 t-number-theory new-contributor maintainer-merge 1/1 Mathlib/NumberTheory/DiophantineApproximation/Basic.lean 1 4 ['github-actions', 'tb65536'] MichaelStollBayreuth
assignee:MichaelStollBayreuth
3-66179
3 days ago
4-20007
4 days ago
4-19853
4 days
39056 vihdzp
author:vihdzp
feat: `IsBotOneClass ℕ+` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 17/14 Mathlib/Data/PNat/Basic.lean,Mathlib/Data/PNat/Defs.lean,Mathlib/Data/PNat/Prime.lean 3 1 ['github-actions'] nobody
3-63991
3 days ago
3-64058
3 days ago
3-68613
3 days
39057 vihdzp
author:vihdzp
feat: `min` and `max` theorems for `IsBotZeroClass` We also remove a redundant `ZeroLEOneClass Ordinal` instance (which can now be inferred via `CanonicallyOrderedAdd` → `IsBotZeroClass` → `ZeroLEOneClass`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-order 36/22 Mathlib/Algebra/Order/IsBotOne.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/Topology/EMetricSpace/Diam.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean 7 1 ['github-actions'] nobody
3-59817
3 days ago
3-59887
3 days ago
3-64036
3 days
38918 yuanyi-350
author:yuanyi-350
chore(CategoryTheory/Groupoid/FreeGroupoid): remove an erw - rewrites `lift` by simplifying the quotient-lift compatibility condition with `simp only` - replaces the remaining `erw` chain with a direct rewrite through `Quiver.symmetrify_reverse` and `Groupoid.reverse_eq_inv` Extracted from #38415 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 5/3 Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean 1 2 ['github-actions', 'loefflerd'] nobody
3-48543
3 days ago
7-31071
7 days ago
7-30917
7 days
38029 Thmoas-Guan
author:Thmoas-Guan
refactor(RingTheory): refactor APIs for minimal primes to lessen defeq abuse Remove access by `.1.1` and `.1.2` to mem minimal primes. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 94/78 Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Basic.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Colon.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean,Mathlib/RingTheory/KrullDimension/Regular.lean,Mathlib/RingTheory/KrullDimension/Zero.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean 9 14 ['Thmoas-Guan', 'chrisflav', 'github-actions', 'themathqueen'] mattrobball
assignee:mattrobball
3-44645
3 days ago
3-44645
3 days ago
25-72266
25 days
38970 themathqueen
author:themathqueen
chore(Analysis/InnerProductSpace/Projection): rename `orthogonalProjection` to `orthogonalProjectionOnto` To match the current (continuous) linear projection to a submodule along its complement `Submodule.projection(Onto)(L)`, we change `Submodule.orthogonalProjection` to `Submodule.orthogonalProjectionOnto` (and later will change `Submodule.starProjection` to `Submodule.orthogonalProjection`). --- Zulip thread: [#**mathlib4>Two variants of linear projections**](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Two.20variants.20of.20linear.20projections/with/591234152) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 267/183 Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/InnerProductSpace/ProdL2.lean,Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean,Mathlib/Analysis/InnerProductSpace/Projection/Reflection.lean,Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/InnerProductSpace/l2Space.lean,Mathlib/Geometry/Euclidean/Projection.lean,Mathlib/Geometry/Euclidean/Volume/Measure.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean,Mathlib/MeasureTheory/Measure/Hausdorff.lean,Mathlib/Topology/MetricSpace/HausdorffDimension.lean,docs/overview.yaml,docs/undergrad.yaml 20 16 ['ADedecker', 'eric-wieser', 'github-actions', 'themathqueen'] mcdoll
assignee:mcdoll
3-40587
3 days ago
3-40535
3 days ago
5-54272
5 days
38990 Vierkantor
author:Vierkantor
chore(Algebra/DirectSum): workaround for `backward.inferInstanceAs` This PR works around a `backward.inferInstanceAs` compatibility flag introduced by identifying `DirectSum` with `DFinsupp` in our definitions. We introduce a new dsimp lemma `funLike_eq` that transfers the `FunLike` instances, and now we can use `DirectSum`'s `FunLike` instance, instead of the custom `CoeFun` instance. I unsqueezed a few `simp`s, which all ran pretty much instant on my machine so it shouldn't cause much slowdown. Also we fix two porting notes. This is not a great approach, but it seems the least painful for the short term. The alternative would be to strictly enforce the defeq barrier between `DirectSum` and `DFinsupp`, which would mean a substantial rewrite of this corner of Mathlib. We can't make `DirectSum` an `@[implicit_reducible]`, because we need different multiplication on it than `DFinsupp` has. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt t-ring-theory
label:t-algebra$
36/38 Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/Lie/DirectSum.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/Spectrum/Prime/RingHom.lean 9 2 ['JovanGerb', 'github-actions'] nobody
3-36423
3 days ago
5-36539
5 days ago
5-37414
5 days
39075 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra/CommRingCat): colimit of local ring via local hom In this PR, we deal with filtered colimit of local ring via local homomorphisms, proving it is again local, with maximal ideal equal to the union of images of maximal ideals. Co-authored-by: Wang Jingting --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
209/0 Mathlib.lean,Mathlib/Algebra/Category/Ring/FilteredColimitsLocal.lean 2 1 ['github-actions'] nobody
3-25446
3 days ago
3-26304
3 days ago
3-26267
3 days
39078 fpvandoorn
author:fpvandoorn
feat: add lemmas about products over Finset.Iio * Mostly useful for `ℕ` * I added the `Finset.Iic` lemmas by symmetry, but I'm happy to remove them if we think they are redundant. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
29/0 Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean 1 1 ['github-actions'] nobody
3-24911
3 days ago
3-24991
3 days ago
3-24837
3 days
39091 tb65536
author:tb65536
feat(FieldTheory/Galois/IsGaloisGroup): add version of `IsGaloisGroup.to_isFractionRing` assuming only `IsIntegral` This PR adds a version of `IsGaloisGroup.to_isFractionRing` assuming only `Algebra.IsIntegral A B` (which is weaker than the existing assumption `Finite G`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
22/9 Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/RingTheory/Invariant/Basic.lean 2 1 ['github-actions'] nobody
3-11519
3 days ago
3-11519
3 days ago
3-11366
3 days
37840 tb65536
author:tb65536
chore(RingTheory/Localization/AtPrime/Basic): use `under` instead of `comap (algebraMap R S)` This PR switches over from `comap (algebraMap R S)` to `under`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra maintainer-merge
label:t-algebra$
171/149 Mathlib/AlgebraicGeometry/Noetherian.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Frobenius.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Ideal/GoingUp.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/IntegralClosure/GoingDown.lean,Mathlib/RingTheory/Jacobson/Ring.lean,Mathlib/RingTheory/KrullDimension/Polynomial.lean,Mathlib/RingTheory/LocalProperties/Injective.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/Localization/AtPrime/Extension.lean,Mathlib/RingTheory/Localization/Ideal.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean 20 14 ['chrisflav', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier', 'tb65536'] chrisflav and erdOne
assignee:erdOne assignee:chrisflav
3-6949
3 days ago
3-6949
3 days ago
24-31625
24 days
38899 thorimur
author:thorimur
feat: `#scope` This PR is the first step in creating a toolset of (transient) utilities for assisting with moving declaration commands between files (including sorting out their dependencies, and integrating their needs into the new location). Capturing the current scope necessary for the command is the first task, and to that end this PR contributes the command `#scope`, which reifies the current scope into portable syntax. `#scope` by itself produces a try-this suggestion placing a scope specification after `#scope`, of the following form: ``` #scope (@[expose])? (public)? (noncomputable)? (section)? scope (universe ...)? (namespace ...)? (open @id₁ @id₂ ...)? (open scoped @id₁ @id₂ ...)? (set_options key₁ val₁, key₂ val₂ ...)? (variable ...)? (include ...)? (omit ...)? ``` This is intended to fully capture the "semantic" aspects of the current scope, but not the full scope stack (and so e.g. disregards `section`s). Likewise this slightly-unusual syntax (e.g. `open @Foo` instead of `open Foo`) is intended to act as a portable record of the open declaration which can be acted on by automation, and to discourage interpretation as a "normal" `open` statement. By itself, this is only a slightly odd `#where`. Future PRs (e.g. #38900) will build on this in order to provide a suite of tools for transporting scopes between files and managing them once there, making it easier to move declarations. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 512/3 Mathlib.lean,Mathlib/Lean/Elab/Options.lean,Mathlib/Lean/Name.lean,Mathlib/Util/Scope.lean,MathlibTest/Scope.lean 5 3 ['JovanGerb', 'github-actions', 'thorimur'] JovanGerb
assignee:JovanGerb
3-4948
3 days ago
7-41829
7 days ago
7-41682
7 days
39074 tb65536
author:tb65536
feat(RingTheory/RamificationInertia/Ramification): relate `ramificationIdx'` to `Algebra.IsUnramifiedAt` This PR relates the new `ramificationIdx'` (which will eventually replace `ramificationIdx`) to `Algebra.IsUnramifiedAt`. --- [![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$
30/0 Mathlib/RingTheory/RamificationInertia/Ramification.lean 1 1 ['github-actions'] nobody
3-1875
3 days ago
3-17531
3 days ago
3-17378
3 days
38223 Deicyde
author:Deicyde
feat(Geometry/Manifold): add `MfldCat`, the category of `C^n` manifolds We define `MfldCat 𝕜 n`: the category of `C^n` manifolds over a field `𝕜`, following the pattern of `TopCat` in `Mathlib.Topology.Category.TopCat.Basic`. We also implement `HasForget₂ (MfldCat 𝕜 n) TopCat`—the forgetful functor into the category of topological spaces. For more discussion see the Zulip thread: [#PR reviews > #38223 The Category of C^n Manifolds](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2338223.20The.20Category.20of.20C.5En.20Manifolds/with/587038032) Also added: `ContMDiffMap.id_apply`, `.coe_id` and `.coe_comp` which are comparable to `ContinuousMap` API. ### Future work - ✅ Define a Monoidal structure via product manifolds, analogous to `Manifold.Topology.Category.TopCat.Monoidal` #38560 - ✅ Define the tangent functor: `M ↦ TM`, `F ↦ F.tangentMap` from `MfldCat (n+1) 𝕜` to `MfldCat n 𝕜` #38270 - Functor `FGModuleCat 𝕜 ⥤ MfldCat 𝕜 n` sending a finite-dimensional `𝕜`-vector space to the manifold modeled on itself. Left as `TODO`. - Define `FGModuleCat 𝕜` as an enriched category over `MfldCat n 𝕜`. Then _smooth functors_ can be realized as endofunctors on the enriched category. This is the main motivation for this construction. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry new-contributor t-category-theory 224/0 Mathlib.lean,Mathlib/Geometry/Manifold/Category/MfldCat/Basic.lean,Mathlib/Geometry/Manifold/ContMDiffMap.lean 3 57 ['Deicyde', 'chrisflav', 'dagurtomas', 'github-actions', 'idontgetoutmuch', 'peabrainiac'] kim-em
assignee:kim-em
2-81897
2 days ago
2-85321
2 days ago
16-48883
16 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 38/0 Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean 2 16 ['IvanRenison', 'cjrl', 'ghseeli', 'github-actions', 'j-loreaux', 'vlad902'] b-mehta
assignee:b-mehta
2-66292
2 days ago
29-388
29 days ago
44-57433
44 days
37521 jessealama
author:jessealama
feat(Data/Part): add Part.bind_eq_some_iff Add `Part.bind_eq_some_iff`, the `Part` analogue of `Option.bind_eq_some_iff`. Noticed this small gap while working on some equivalence proofs with partial functions. t-data 6/0 Mathlib/Data/Part.lean 1 3 ['github-actions', 'jessealama', 'vihdzp'] joneugster
assignee:joneugster
2-66290
2 days ago
39-82267
39 days ago
39-82113
39 days
37534 EtienneC30
author:EtienneC30
feat: cardinality of subsets of a given cardinality Given a finite set `s`, the number of subsets of `s` with cardinality `n` is `s.ncard.choose n`. This is analog to [Finset.card_powersetCard](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/Powerset.html#Finset.card_powersetCard) and [Set.powersetCard.card](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Set/PowersetCard.html#Set.powersetCard.card) but with a set of sets rather than involving finsets. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 18/0 Mathlib/Data/Set/Card.lean 1 1 ['github-actions'] joneugster
assignee:joneugster
2-66289
2 days ago
39-33941
39 days ago
39-33787
39 days
37761 EtienneC30
author:EtienneC30
feat: define Bernoulli distribution Define the Bernoulli distribution over an arbitrary measurable space as `Ber(x, y, p) := toNNReal p • dirac x + toNNReal (σ p) • dirac y`. Deprecate `PMF.binomial`. Co-authored-by: @DavidLedvinka --- - [ ] depends on: #37762 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability large-import 206/7 Mathlib.lean,Mathlib/Data/ENNReal/Action.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean,Mathlib/Probability/Distributions/Bernoulli.lean,Mathlib/Probability/Distributions/SetBernoulli.lean,Mathlib/Probability/Moments/SubGaussian.lean,Mathlib/Probability/ProbabilityMassFunction/Binomial.lean,Mathlib/Probability/ProbabilityMassFunction/Constructions.lean,Mathlib/Probability/ProbabilityMassFunction/Integrals.lean 9 2 ['github-actions', 'mathlib-dependent-issues'] sgouezel
assignee:sgouezel
2-66288
2 days ago
3-17994
3 days ago
3-18702
3 days
38087 kbuzzard
author:kbuzzard
perf: add some fast_instance% --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) `fast_instance%` experts should take a look at this and say which if any are spurious. I confess to throwing them around rather randomly. Zulip thread [#mathlib4 > random fast_instance% makes gains @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/random.20fast_instance.25.20makes.20gains/near/585737520) t-algebra
label:t-algebra$
10/9 Mathlib/Algebra/EuclideanDomain/Field.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean 3 4 ['github-actions', 'kbuzzard', 'leanprover-radar', 'themathqueen'] joneugster
assignee:joneugster
2-66285
2 days ago
26-1653
26 days ago
26-1515
26 days
38199 vihdzp
author:vihdzp
chore: add items to set theory overview --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) documentation t-set-theory 11/2 docs/overview.yaml 1 3 ['SnirBroshi', 'github-actions', 'vihdzp'] alreadydone
assignee:alreadydone
2-66284
2 days ago
23-40100
23 days ago
23-40045
23 days
38225 kim-em
author:kim-em
ci: block merging PRs with large import increases unless reviewed This PR makes the existing `large-import` label into a merge gate. PRs that significantly increase transitive imports (>2% for any modified file) are now blocked from merging until a reviewer adds the `allow-large-import` label. ### Why three labels? Bors's `block_labels` has no conditional logic — if a label is in the list, merge is blocked unconditionally. We need "blocked unless a reviewer has approved", i.e. `large-import ∧ ¬allow-large-import`. Since bors can't express that, we use a derived label: | Label | Managed by | Purpose | |---|---|---| | `large-import` | `build` job (import analysis) | Factual: this PR increases imports | | `blocked-by-large-import` | `check-large-import` job | Operational: blocks bors | | `allow-large-import` | Reviewer | Override: reviewer approves the increase | Each label is managed by exactly one actor, so there is no label-fighting. ### How it works 1. The existing `build` job adds/removes `large-import` based on import analysis (unchanged). 2. A new `check-large-import` job (in the same workflow) waits for `build` to finish, then: - If `large-import` is present and `allow-large-import` is absent → adds `blocked-by-large-import` - Otherwise → removes `blocked-by-large-import` 3. `blocked-by-large-import` is added to `block_labels` in `bors.toml`. When a reviewer adds `allow-large-import`, the `labeled` event re-triggers the workflow. The heavy `build` job is skipped (guarded by `github.event.action != 'labeled'`), but the lightweight `check-large-import` job runs, sees both labels, and removes `blocked-by-large-import`. Bors can now merge. ### Reviewer workflow The CI failure message tells the reviewer to consider whether the PR could be improved by splitting files, rearranging material, or creating new intermediate files. If the import increase is reasonable, they add `allow-large-import`. False positives can be reported on the [mathlib4 Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/large-import.20label). 🤖 Prepared with Claude Code CI 78/2 .github/workflows/PR_summary.yml,bors.toml 2 6 ['SnirBroshi', 'github-actions', 'jcommelin', 'joneugster', 'kim-em'] joneugster
assignee:joneugster
2-66283
2 days ago
20-71894
20 days ago
20-72358
20 days
38309 ntapiam
author:ntapiam
feat(Algebra/NonAssoc): dendriform algebras Define dendriform semirings and algebras --- This PR introduces dendriform structures such as dendriform semirings and algebras, and proves basic facts linking them to their pre-Lie counterparts. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
270/0 Mathlib.lean,Mathlib/Algebra/NonAssoc/Dendriform/Defs.lean,docs/references.bib 3 5 ['dagurtomas', 'github-actions', 'ntapiam'] ocfnash
assignee:ocfnash
2-66282
2 days ago
3-32060
3 days ago
18-37203
18 days
38317 WenrongZou
author:WenrongZou
feat(Date/Choose): add some lemmas about choose of prime pow In this PR, I add some lemma about choose of prime pow. 1) For primes `p` and positive integer `n`, assume that for all `i ∈ Icc 1 (n - 1)`, `choose n i` congruent to `0` module `p`, then `n = p ^ multiplicity p n`. 2) For a prime power `n`, the greatest common divisor of `choose n 1, ⋯, choose n (n - 1)` is actually the minimal prime factor of `n`. 3) For a natural number `n` greater than `1`, assume that `n` is not a prime power, then the greatest common divisor of `choose n 1, ⋯, choose n (n - 1)` is `1`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 88/1 Mathlib/Data/Nat/Choose/Lucas.lean 1 1 ['github-actions'] joneugster
assignee:joneugster
2-66281
2 days ago
20-75951
20 days ago
20-75797
20 days
38323 NoahW314
author:NoahW314
feat(RingTheory/MvPolynomial/MonomialOrder): remove unnecessary hypothesis Some results had a nonzero hypothesis which can be eliminated since the result holds trivially when the polynomial is zero. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 13/5 Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean 1 1 ['github-actions'] joneugster
assignee:joneugster
2-66280
2 days ago
20-59675
20 days ago
20-59521
20 days
38340 xroblot
author:xroblot
refactor(Data/ZMod): move `coe_int_isUnit_iff_isCoprime` to `ZMod.Units` Move `ZMod.coe_int_isUnit_iff_isCoprime` from `Mathlib.Data.ZMod.Coprime` to `Mathlib.Data.ZMod.Units`, where it more naturally belongs as a statement about units in `ZMod`. The proof is rewritten to only use tools available in `Mathlib.Data.ZMod.Units`, avoiding the dependency on `Mathlib.Algebra.EuclideanDomain.Int`. This is motivated by the desire to use `coe_int_isUnit_iff_isCoprime` without the overhead of importing `Mathlib.Data.ZMod.Coprime` (see #38339 for a use case). 🤖 Co-Authored with [Claude Code](https://claude.com/claude-code) t-data 10/7 Mathlib/Data/ZMod/Coprime.lean,Mathlib/Data/ZMod/Units.lean 2 1 ['github-actions'] joneugster
assignee:joneugster
2-66278
2 days ago
19-85303
19 days ago
19-85535
19 days
38343 mortarsanjaya
author:mortarsanjaya
chore(Data/Nat/Cast/Order/Ring): move two Nat lemmas to Data/Nat/Basic These two lemmas have no correlation with `Nat.cast`, and the proof can be golfed to fit `Data/Nat/Basic`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 23/27 Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean 2 6 ['dagurtomas', 'github-actions', 'mortarsanjaya'] joneugster
assignee:joneugster
2-66277
2 days ago
20-3429
20 days ago
20-3275
20 days
38347 artie2000
author:artie2000
doc(LinearAlgebra/FreeModule/StrongRankCondition): clarify context of `commRing_strongRankCondition` * Replace mathematical documentation in `Mathlib.LinearAlgebra.FreeModule.StrongRankCondition`, with explanation that the file comprises a shortcut instance `commRing_strongRankCondition` * Signpost `commRing_strongRankCondition` at both its parent instances * Increase priority of shortcut instance `commRing_strongRankCondition` above that of its parent instances --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 28/41 Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean,Mathlib/LinearAlgebra/InvariantBasisNumber.lean,Mathlib/RingTheory/FiniteType.lean 3 2 ['github-actions', 'mathlib-merge-conflicts'] joneugster
assignee:joneugster
2-66276
2 days ago
15-3497
15 days ago
19-53089
19 days
38373 Nicola9Falciola
author:Nicola9Falciola
feat (Algebra/FreeAbelianGroup /Finsupp) : The support of non zero element in a freeabeliangroup is non empty Add the lemma that for a nonzero a : FreeAbelianGroup X the support of it is non empty. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
3/0 Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean 1 7 ['Nicola9Falciola', 'SnirBroshi', 'github-actions'] ocfnash
assignee:ocfnash
2-66274
2 days ago
18-22017
18 days ago
19-10304
19 days
38375 WenrongZou
author:WenrongZou
feat(MvPowerSeries): some lemmas `truncTotal` of `subst` This PR adds some lemmas about truncation of total degree of a substitution. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 124/7 Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean 2 3 ['BryceT233', 'github-actions'] joneugster
assignee:joneugster
2-66273
2 days ago
19-15683
19 days ago
19-15529
19 days
38943 felixpernegger
author:felixpernegger
feat(Topology/CWComplex/Classical): discrete spaces are CW complexes as well as some useful lemmas This is partly based on code by @scholzhannah I think this is notable to include, since it is pretty much the only (easy) "topological" sufficient condition for something being a CW complex there is. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 89/3 Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/DiscreteSubset.lean 2 28 ['felixpernegger', 'github-actions', 'scholzhannah'] PatrickMassot
assignee:PatrickMassot
2-66271
2 days ago
5-37125
5 days ago
6-51008
6 days
39064 kim-em
author:kim-em
feat: make showLinter detect tactics that assign metavariables This PR removes a short-circuit in `showLinter` that suppressed the linter whenever the syntactic goal was unchanged by a `show` tactic. A `show` invocation can still have side-effects on the metavariable context — tactic elaboration may assign metavariables while leaving the goal type unchanged — so the existing `instantiateMVars`-based diff check should run unconditionally. The fast path for the genuine no-op case is preserved: if `before` and `after` types still match after `instantiateMVars`, the linter doesn't fire. This was discovered while adapting Mathlib to nightly-2026-05-03 in https://github.com/leanprover-community/mathlib4-nightly-testing/pull/215 and is being extracted here so it can land independently of that bump. 🤖 Prepared with Claude Code t-linter 1/1 Mathlib/Tactic/Linter/Style.lean 1 1 ['github-actions'] thorimur
assignee:thorimur
2-66270
2 days ago
3-48375
3 days ago
3-48221
3 days
38859 SnirBroshi
author:SnirBroshi
feat(Order/CompleteLattice/Basic): tag `iSup_of_empty'` with `@[simp]` The theorem says `iSup f = sSup ∅` when the domain of `f` is empty, and dually `iInf f = sInf ∅`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 31/47 Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Data/Set/Finite/Lattice.lean,Mathlib/LinearAlgebra/Eigenspace/Pi.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/ConditionallyCompletePartialOrder/Indexed.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Lift.lean 14 1 ['github-actions'] nobody
2-46664
2 days ago
8-36556
8 days ago
8-40178
8 days
38741 eric-wieser
author:eric-wieser
feat: Nat.card lemmas for Sym and Sym2 These are just translations of the `Fintype` counterparts. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 109/7 Mathlib.lean,Mathlib/Data/Sym/Card.lean,Mathlib/Data/Sym/NatCard.lean,Mathlib/Data/Sym/Sym2.lean 4 18 ['SnirBroshi', 'YaelDillies', 'eric-wieser', 'github-actions'] nobody
2-46399
2 days ago
3-69445
3 days ago
10-49
10 days
38464 xroblot
author:xroblot
feat(FieldTheory/Galois/IsGaloisGroup): generalize mulEquivCongr Generalizes `mulEquivCongr` from field extensions to domain extensions. The field version is renamed to `mulEquivCongr'`. Also adds some simp lemmas. --- - [x] depends on: #38377 t-algebra
label:t-algebra$
56/15 Mathlib/FieldTheory/Galois/IsGaloisGroup.lean 1 2 ['github-actions', 'mathlib-dependent-issues'] nobody
2-46065
2 days ago
3-13756
3 days ago
3-14656
3 days
38328 astrainfinita
author:astrainfinita
feat: `OrderSupSet` This PR introduces `OrderSupSet` and `OrderInfSet`, which are typeclasses expressing that `sSup` (resp., `sInf`) returns the least upper bound (resp., the greatest lower bound) of a set whenever one exists. This allows us to prove properties about the `sSup` of specific sets (such as `∅`, singletons, finite sets, and `univ`) without any typeclasses asserting the existence of LUBs. For example, `sSup ∅ = ⊥` holds for any type equipped with `OrderBot` `OrderSupSet`, no longer requiring typeclasses like `ConditionallyCompleteLinearOrderBot`. For a general set `s`, this gives a uniform way to extend results about `IsLUB s a → motive a` to `motive (sSup s)`, `motive (⨆ i, f i)`, `motive (a ⊔ b)`, etc., which allows proof reuse for basic API such as [`csSup_insert`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/ConditionallyCompleteLattice/Basic.html#csSup_insert), [`iSup_insert`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/CompleteLattice/Basic.html#iSup_insert), and [`sSup_insert`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/CompleteLattice/Basic.html#sSup_insert) and downstream code like [`csSup_add`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.html#csSup_add), [`sSup_add`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.html#sSup_add), and [`sup_add`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Lattice.html#sup_add). Furthermore, this allows us to refactor incrementally, reducing the dependency of results about various completeness typeclasses on the specific implementation of `sSup`. --- [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 156/73 Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/Bounds/Defs.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/SetNotation.lean,Mathlib/Topology/UniformSpace/OfCompactT2.lean 7 16 ['JovanGerb', 'astrainfinita', 'b-mehta', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'openendings', 'vihdzp'] nobody
2-44421
2 days ago
2-44460
2 days ago
7-75014
7 days
38536 CoolRmal
author:CoolRmal
feat: a lemma about the symmetric difference of unions Created with the help of Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data easy 45/2 Mathlib/Data/Set/Lattice.lean,Mathlib/Order/CompleteBooleanAlgebra.lean 2 12 ['CoolRmal', 'SnirBroshi', 'eric-wieser', 'github-actions'] nobody
2-42455
2 days ago
4-78111
4 days ago
4-79749
4 days
38234 vihdzp
author:vihdzp
chore: make `IsSuccLimit` a structure This lets us name the fields. Note that the `mk_iff` lemma overwrites a recently deprecated theorem. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 40/33 Mathlib/Order/SuccPred/InitialSeg.lean,Mathlib/Order/SuccPred/Limit.lean 2 5 ['github-actions', 'plp127'] nobody
2-42225
2 days ago
2-42296
2 days ago
18-30429
18 days
38153 xroblot
author:xroblot
chore(IsGaloisGroup): refactor `IsGaloisGroup.quotient` Refactors the quotient construction in `IsGaloisGroup` to work at the level of ring extensions rather than intermediate fields. --- - [x] depends on: #38377 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
218/53 Mathlib/Algebra/Algebra/Basic.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean 2 8 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536'] riccardobrasca
assignee:riccardobrasca
2-37196
2 days ago
2-37196
2 days ago
2-57777
2 days
39102 yuanyi-350
author:yuanyi-350
chore: reduce imports in 50 files --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 70/81 Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Distribution/DerivNotation.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean,Mathlib/Analysis/Distribution/Sobolev.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/Barrelled.lean,Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean,Mathlib/Analysis/LocallyConvex/Montel.lean,Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean,Mathlib/Analysis/LocallyConvex/SeparatingDual.lean,Mathlib/Analysis/LocallyConvex/WeakDual.lean,Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Meromorphic/Divisor.lean,Mathlib/Analysis/Normed/Affine/AddTorsor.lean,Mathlib/Analysis/Normed/Affine/AddTorsorBases.lean,Mathlib/Analysis/Normed/Affine/Convex.lean,Mathlib/Analysis/Normed/Algebra/Basic.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/Analysis/Normed/Algebra/QuaternionExponential.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/Normed/Field/Dense.lean,Mathlib/Analysis/Normed/Field/Instances.lean,Mathlib/Analysis/Normed/Field/Ultra.lean,Mathlib/Analysis/Normed/Group/AddCircle.lean,Mathlib/Analysis/Normed/Group/Bounded.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/Normed/Group/FunctionSeries.lean,Mathlib/Analysis/Normed/Group/Indicator.lean,Mathlib/Analysis/Normed/Group/NullSubmodule.lean,Mathlib/Analysis/Normed/Group/Tannery.lean,Mathlib/Analysis/Normed/Group/Ultra.lean,Mathlib/Analysis/Normed/Lp/WithLp.lean,Mathlib/Analysis/Normed/MulAction.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Analysis/PSeriesComplex.lean,Mathlib/Analysis/SpecificLimits/Fibonacci.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Analysis/Subadditive.lean,Mathlib/Analysis/SumIntegralComparisons.lean 48 9 ['JovanGerb', 'YaelDillies', 'github-actions', 'leanprover-radar', 'yuanyi-350'] nobody
2-33013
2 days ago
2-33034
2 days ago
2-46099
2 days
38994 JovanGerb
author:JovanGerb
feat(to_additive): support `(attr := reassoc)` This PR uses `registerGeneratingAttr`, so that `to_additive (attr := reassoc)` also tags the `_assoc` lemma with `to_additive`. This interacts awkwarly with `to_dual (attr := reassoc)`, because in that case, the `reassoc` attribute is responsible for handling the `to_dual` attribute. This is solved by adding a check so that we only insert a new translation if it doesn't already exist (e.g. because `reassoc` could have added it). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 22/18 Mathlib/CategoryTheory/Monoidal/Mod.lean,Mathlib/CategoryTheory/Monoidal/Mon.lean,Mathlib/Tactic/CategoryTheory/Reassoc.lean,Mathlib/Tactic/Translate/Core.lean 4 2 ['chrisflav', 'github-actions'] nobody
2-30766
2 days ago
2-30839
2 days ago
3-19589
3 days
38865 JovanGerb
author:JovanGerb
chore: adaptations for quote4#134 This PR adds imports that are now necessary --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 4/2 Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/Tauto.lean,lake-manifest.json 3 7 ['JovanGerb', 'bryangingechen', 'eric-wieser', 'github-actions', 'leanprover-radar'] nobody
2-20984
2 days ago
8-37141
8 days ago
8-36987
8 days
39090 EngelsVon
author:EngelsVon
feat(Analysis/Calculus/DifferentialForm): Stokes theorem on boxes for differential forms ## Summary This PR adds the first instances of the **generalized Stokes theorem for differential forms** in Mathlib, building on the existing `extDeriv` API from `Analysis.Calculus.DifferentialForm.Basic` and the divergence theorem from `MeasureTheory.Integral.DivergenceTheorem`. ### New files #### `Mathlib.Analysis.Calculus.DifferentialForm.BoxStokes` (310 lines, **fully proved**) Stokes theorem on rectangular boxes `[a, b] ⊂ ℝ^(m+1)` for differential forms. **Key definitions:** - `detTopForm`: the determinant as a continuous alternating top-form - `topFormDensity` / `topFormIntegral`: density and integral of top-form fields - `boxFaceComponent ω i`: the signed `i`-th face component of an `m`-form (`(-1)^i · ω(ê_i)`) - `boxBoundaryIntegral ω a b`: the signed boundary integral over `∂[a,b]` **Main theorem:** - `box_stokes_of_contDiff`: `∫_{[a,b]} dω = ∫_{∂[a,b]} ω` for `C¹` `m`-forms on `ℝ^(m+1)` The proof proceeds by: 1. Showing `topFormDensity (extDeriv ω) = divergence of (boxFaceComponent ω ·)` 2. Applying Mathlib's `integral_divergence_of_hasFDerivAt_off_countable'` #### `Mathlib.Analysis.Calculus.DifferentialForm.HalfSpaceStokes` (224 lines, partially proved) Stokes theorem on the upper half-space `{x : x_m ≥ 0}` with infrastructure. **Key definitions:** - `HalfSpace m`: `{x : Fin (m+1) → ℝ | x (lastCoord m) ≥ 0}` - `boundaryIntegral m ω`: integral of `ω` over `∂ℝ^{m+1}_+` **Key lemmas (proved):** - `norm_insertNth_ge_norm`: `‖x‖ ≤ ‖Fin.insertNth i v x‖` for sup norm - `formField_vanishes_at_insertNth_norm`: vanishing of form fields at large norms **Main theorem (statement, proof TODO):** - `halfSpace_stokes`: `∫_{ℝ^{m+1}_+} dω = ∫_{∂ℝ^{m+1}_+} ω` ### Relationship to existing Mathlib - `MeasureTheory.Integral.DivergenceTheorem` proves the divergence theorem for vector fields (`ℝⁿ⁺¹ → Eⁿ⁺¹`). This PR translates it into the language of differential forms (`E → E [⋀^Fin n]→L[𝕜] F`). - `Analysis.Calculus.DifferentialForm.Basic` defines `extDeriv`. This PR provides the first *integration* results for `extDeriv`. ### Why this belongs in Mathlib 1. **Fills a known gap**: Mathlib has no Stokes-type theorem for differential forms despite having `extDeriv` and the divergence theorem. 2. **Self-contained**: Box Stokes depends only on `extDeriv` API and the divergence theorem. 3. **Useful infrastructure**: `boxFaceComponent`, `topFormDensity`, and `norm_insertNth_ge_norm` are independently useful. ### Future work - Complete `halfSpace_stokes` (requires upstream API for `extDeriv` vanishing at zeros and `Fin.isClosedEmbedding_insertNth`) - Chart-level Stokes via coordinate changes - Partition of unity → manifold Stokes ## Checklist - [x] The formulation of the main theorem is mathematically correct - [x] Proofs follow Mathlib conventions (to the best of our knowledge) - [ ] Code compiles on Mathlib CI (not tested locally due to build time) - [ ] `#lint` passes (not tested locally) t-analysis new-contributor LLM-generated 1246/0 Mathlib.lean,Mathlib/Analysis/Calculus/DifferentialForm/BoxStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/FullSpaceStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/HalfSpaceStokes.lean 4 4 ['EngelsVon', 'SnirBroshi', 'github-actions'] nobody
2-20843
2 days ago
2-22456
2 days ago
2-62022
2 days
37185 gasparattila
author:gasparattila
chore(Data/Finset/Lattice/Fold): rename `comp_sup_*` to `apply_sup_*` These lemmas are of the form `g (s.sup f) = s.sup (g ∘ f)` with no composition on the LHS. --- - [x] depends on: #37047 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 44/26 Mathlib/Algebra/Order/Ring/Finset.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/Normed/Group/Ultra.lean,Mathlib/Data/ENNReal/Lemmas.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean,Mathlib/Topology/ContinuousMap/CompactlySupported.lean,Mathlib/Topology/ContinuousMap/Ordered.lean 11 4 ['gasparattila', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
2-8140
2 days ago
32-79744
32 days ago
32-79916
32 days
39123 SnirBroshi
author:SnirBroshi
chore(Data/Matrix/Basic): mention `mopMatrix` in `transpose{Ring/Alg}Equiv`s docstring and vice versa - `RingEquiv.mopMatrix` and `transposeRingEquiv` differ by a `ᵐᵒᵖ` since the latter assumes `CommMagma α` instead of `Mul α` - `AlgEquiv.mopMatrix` and `transposeAlgEquiv` differ by a `ᵐᵒᵖ` since the latter assumes `CommSemiring α` instead of `Semiring α` --- Also slightly golfs `RingEquiv.mopMatrix` as a drive-by. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 18/11 Mathlib/Data/Matrix/Basic.lean 1 1 ['github-actions'] nobody
2-2881
2 days ago
2-2963
2 days ago
2-2809
2 days
37779 mcdoll
author:mcdoll
feat(Data/FunLike): introduce typeclasses for algebraic properties of `FunLike` These typeclasses remove the need for each function space that has, e.g., a linear structure to define `add_apply`, `smul_apply`, etc. Instead after defining the the `Add` instance one also defines a `FunLikeAdd` instance (with a proof usually being `rfl`). This removes some boilerplate as theorems like `sum_apply` are currently proved in various files, but here they can be proved in an abstract way. Moreover, we can remove all of the instances that provide further structure (such as `Semigroup`` in the concrete function spaces. This further removes boilerplate and also makes sure that all instances are available in every function space. The docstrings were generated with AI (and heavily edited afterwards), everything else is handwritten. --- The previous PR #33477 has gotten quite a few merge conflicts, so I opened a new PR with just the new features. I would like to get the approval of this design before going through the library and change everything. I am open to either do this in this PR or a second one (or multiple for different parts). - [x] depends on: #38401 - [x] depends on: #38398 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 649/0 Mathlib.lean,Mathlib/Data/FunLike/Group.lean,Mathlib/Data/FunLike/IsApply.lean,Mathlib/Data/FunLike/Module.lean,Mathlib/Data/FunLike/Ring.lean 5 19 ['Vierkantor', 'github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mcdoll'] Vierkantor
assignee:Vierkantor
2-2612
2 days ago
12-56146
12 days ago
13-39223
13 days
37649 IvanRenison
author:IvanRenison
feat(Data): add theorem `Finset.image_eq_iff_eq_preimage` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 23/0 Mathlib/Data/Finset/Preimage.lean,Mathlib/Data/Set/Function.lean 2 7 ['Rida-Hamadani', 'github-actions', 'joneugster', 'themathqueen'] joneugster
assignee:joneugster
1-83231
1 day ago
1-82946
1 day ago
35-45421
35 days
39095 tb65536
author:tb65536
feat(FieldTheory/Galois/IsGaloisGroup): `IsGaloisGroup` instance for `FixedPoints.subalgebra` This PR generalizes the existing `IsGaloisGroup` instance for `FixedPoints.intermediateField` to `FixedPoints.subalgebra`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
23/3 Mathlib/Algebra/Algebra/Subalgebra/Operations.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/GroupTheory/GroupAction/Defs.lean 3 5 ['eric-wieser', 'github-actions', 'tb65536'] nobody
1-82002
1 day ago
1-82070
1 day ago
2-48688
2 days
38829 AnandGokhale
author:AnandGokhale
feat(Analysis/ODE/Gronwall): added gronwall-bellman inequality Added 2 lemmas and 1 theorem to Analysis.ODE.Gronwall, making progress towards a TODO. Lemma 1: Wrapper for Fundamental Theorem of Calculus Lemma 2: Wrapper for the continuity of an integral on a closed, ordered interval Theorem: Gronwall bellman inequality, as stated with proof in Appendix of Hassan Khalil, Nonlinear control, 3rd edition. t-analysis new-contributor large-import 125/2 Mathlib/Analysis/ODE/Gronwall.lean 1 12 ['AnandGokhale', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-bors'] j-loreaux
assignee:j-loreaux
1-79453
1 day ago
2-79536
2 days ago
4-39932
4 days
37008 BryceT233
author:BryceT233
feat(RingTheory/LocalRing): `IsLocalRing` for pullbacks We provide basic lemmas for equalizers and pullbacks of `RingHom` and `AlgHom`, and show they are local rings under suitable condtions. This is needed in #37940 to construct a residue algebra structure on pullbacks. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 167/0 Mathlib.lean,Mathlib/RingTheory/LocalRing/Pullback.lean 2 6 ['BryceT233', 'github-actions', 'wwylele'] mattrobball
assignee:mattrobball
1-77647
1 day ago
14-75264
14 days ago
49-43463
49 days
38324 BryceT233
author:BryceT233
chore(RingTheory/AdicCompletion): make `AdicCompletion.map` linear on linear maps This PR upgrades `AdicCompletion.map` to be an R-linear map on the space of linear maps `M →ₗ[R] N`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 38/12 Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean 2 2 ['github-actions', 'mathlib-merge-conflicts'] joneugster
assignee:joneugster
1-77634
1 day ago
17-69525
17 days ago
20-52077
20 days
39085 bryangingechen
author:bryangingechen
ci(shake.yaml): shake Archive, Counterexamples, MathlibTest; do not commit explain.txt cf. https://github.com/leanprover-community/mathlib4/pull/39080#discussion_r3209205008 and [#mathlib4 > shake @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/shake/near/593801927) CI easy 6/1 .github/workflows/shake.yaml 1 2 ['bryangingechen', 'github-actions'] nobody
1-77383
1 day ago
3-18891
3 days ago
3-18737
3 days
38318 JovanGerb
author:JovanGerb
feat(GRewrite): new `grw` implementation This PR adds a new implementation of the `grewrite` tactic. It replaces `grw` with the new implementation. The old implementation can be used with `grw +useKAbstract`. New features: - The new `grw` can rewrite terms with bound variables. - The new `grw` will only rewrite in places where this is valid. Previously, if there were both valid and non-valid positions, it would try rewriting everywhere and then complain. Future features that will build on the new implementation: - I'd like to add support for strict rewrites that can change the strictness of parts of the goal. This would require the concept of asymmetric `gcongr` lemmas, something like `le_imp_lt_of_lt_left` and `le_imp_lt_of_lt_right`. An example of such a lemma that already exists in mathlib is `Ico_subset_Ioo_left`. - I'd like to improve the support for rewriting with symmetric relations such as `=ᵥ`. The following doesn't work very well yet: ``` variable {R : Type*} [CommRing R] [ValuativeRel R] {x y z : R} example (h : x =ᵥ y) : x <ᵥ z ↔ y <ᵥ z := by grw [h] ``` Limitations: - The new implementation does not support occurrences. So, `nth_grw` still uses the old `kabstract`-based implementation. The reason is that there are often multiple `gcongr` lemmas for rewriting in the same place (e.g. `add_le_add` and `add_le_add_left`), and it's tricky to keep track of exactly what is "the same" subexpression. - The new implementation tries `gcongr` lemmas one by one, and commits to the first `gcongr` lemma that lets us do a rewrite. This means that we need to lower the priority of `add_le_add_left`, so that `add_le_add` is preferred, so that we can rewrite on both sides of `+` at the same time. However, `mul_le_mul_of_nonneg_left` and `mul_le_mul_of_nonneg_right` are still tried before `mul_le_mul`, to avoid getting unnecessary side goals. - Because the new term is constructed from `gcongr` lemmas, rather than by instantiating the result of `kabstract`, it may be that metadata gets lost, or that some implicit arguments change. For example, rewriting inside `a ≤ b` for `a b : Nat` will change the instance argument from `Nat.instLE` to `Nat.instPreorder.toLE`. This is not really a problem. - Some problems arise when implementing a rewriting tactic that can rewrite under binders, because metavariables have a fixed local context of free variables that they are allowed to depend on. This issue also affects the new `rw` tactic that the FRO is currenlty working on. This PR works around this by "illegally" changing the local context of metavariabes, so as to allow them to depend on bound variables. This has the unfortunate side effect that the "Expected Type" view can get messed up when rewriting bound variables, because the expression is being delaborated with the wrong local context. But I think this is only a minor problem. We coould reconsider this design when the new `rw` tactic is done. Changes to `gcongr`: - The `@[goncgr]` attribute now checks more thoroughly whether the given lemma is of the right form. Some lemmas are not suitable for use in `grw`, but they still "feel" like a `gcongr` lemma, so we still allow them to be used in `gcongr`. For such cases I've added a linter warning that can be turned off. - I've refactored how `gcongr` lemmas are applied, in order to share this code between `gcongr` and `grw`. Now, binder names are taken from the goal when possible, rather than not giving any name to new free variables. This improves `gcongr` (as it means you don't anymore need to write `gcongr with ...` to give the variable a name), and allows `grw` to preserve binder names in the goal. The grewrite test file now tests the new `grw` implementation. Should I make a copy of the test file to also test the old implementation? I have put myself as the copyright holder, instead of Sebastian Zimmer, as I think this more accurately reflect code ownership. The original `grw` PR was by Sebastian in 2023, but it was majorly rewritten by me in 2025. Sebastian is still in the list of authors. --- - [x] depends on: #38558 - [x] depends on: #38556 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 632/236 Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/Order/Group/Indicator.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Sub/Defs.lean,Mathlib/Analysis/CStarAlgebra/Extreme.lean,Mathlib/Analysis/Convex/StrictCombination.lean,Mathlib/Analysis/Distribution/Support.lean,Mathlib/Combinatorics/Graph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Integral/Average.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean,Mathlib/Order/Basic.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Core.lean,Mathlib/Tactic/GRewrite/Elab.lean,Mathlib/Topology/MetricSpace/ThickenedIndicator.lean,MathlibTest/GCongr/GCongr.lean,MathlibTest/GCongr/implications.lean,MathlibTest/GRewrite.lean 22 39 ['JovanGerb', 'PatrickMassot', 'Vierkantor', 'github-actions', 'leanprover-radar', 'mathlib-bors', 'mathlib-dependent-issues'] dwrensha
assignee:dwrensha
1-72982
1 day ago
1-72982
1 day ago
3-5345
3 days
39129 wwylele
author:wwylele
feat(Topology/Algebra): lemma about infinite sum on ENat This works towards resolving a todo in the ENNReal file. I intentionally kept the change short for quicker review, and hopefully this new file can invite future contributions by adding more lemma on demand. Also a lot of existing machinery on ENNReal will be superseded by #38489 and can be reused for ENat. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 43/1 Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean,Mathlib/Topology/Algebra/InfiniteSum/ENat.lean 3 2 ['github-actions', 'mathlib-bors'] nobody
1-66971
1 day ago
1-67142
1 day ago
1-67903
1 day
38587 dagurtomas
author:dagurtomas
feat(Tactic/CategoryTheory): concrete category boilerplate Adds `mk_concrete_category`, a command for generating the initial boilerplate for concrete categories whose morphisms are given by a bundled function type. The command creates the wrapper `Hom` type, named category and concrete category instances, `ofHom`, `Hom.hom`, and the basic dsimp lemmas. It handles parameterized categories such as `ModuleCat`, and has a paired additive/multiplicative form for generating both structures at once (e.g. `MonCat`/`AddMonCat`). Includes test categories checking the generated declarations. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) LLM-generated t-meta t-category-theory 905/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/MkConcreteCategory.lean,MathlibTest/CategoryTheory/MkConcreteCategory.lean 4 8 ['dagurtomas', 'eric-wieser', 'github-actions'] adamtopaz
assignee:adamtopaz
1-65952
1 day ago
4-56691
4 days ago
4-57298
4 days
38713 justus-springer
author:justus-springer
feat(Algebra/Category/ModuleCat/Sheaf/ChangeOfRings): API for `restrictScalars` Extend the `restrictScalars` API for presheaves and sheaves of modules to match the existing API in `ModuleCat/ChangeOfRings`. For both `PresheafOfModules` and `SheafOfModules` we add: - `restrictScalarsCongr`: restriction of scalars along equal morphisms are naturally isomorphic - `restrictScalarsId'/restrictScalarsId`: restriction along the identity is naturally isomorphic to the identity functor - `restrictScalarsComp'/restrictScalarsComp`: restriction along a composition is naturally isomorphic to the composition of restriction functors - `restrictScalarsEquivalenceOfIso`: an isomorphism `R ≅ R'` of (pre)sheaves of rings induces an equivalence of categories of (pre)sheaves of modules. We also move up the "simp barrier": `PresheafOfModules.restrictScalars` and `SheafOfModules.restrictScalars` are no longer `@[simps]` as they have their own API now. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry t-algebra
label:t-algebra$
326/5 Mathlib/Algebra/Category/ModuleCat/Presheaf/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean 3 6 ['dagurtomas', 'github-actions', 'justus-springer'] joelriou
assignee:joelriou
1-65951
1 day ago
9-30696
9 days ago
10-51168
10 days
38720 tb65536
author:tb65536
feat(GroupTheory/Rank): nontrivial groups have positive rank This PR proves that nontrivial groups have positive rank. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
18/0 Mathlib/GroupTheory/Rank.lean 1 2 ['github-actions', 'wwylele'] mattrobball
assignee:mattrobball
1-65950
1 day ago
12-13227
12 days ago
12-13074
12 days
38761 yuanyi-350
author:yuanyi-350
chore(AlgebraicGeometry/EllipticCurve/Jacobian/Point): remove erws - rewrites `neg_of_Z_ne_zero` with a `simp only` chain in place of the former `erw` - rewrites `addXYZ_neg` by splitting the vector equality into coordinate goals handled by `rw` Extracted from #38415 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-algebraic-geometry LLM-generated 5/3 Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean 1 5 ['dagurtomas', 'github-actions', 'yuanyi-350'] joelriou
assignee:joelriou
1-65949
1 day ago
10-69877
10 days ago
11-20239
11 days
39133 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra/ModuleCat): exactness of restrictScalars for general universe level Currently exactness of `ModuleCat.restrictScalars` is synth via being adjoint functor, however this needs the universe level to be some `max u v` where `u` is the universe level of the ring. Here we provide exactness of restrictScalars for general universe level using it preserves short exact sequence. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
46/0 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRingsExact.lean 2 1 ['github-actions'] nobody
1-54478
1 day ago
1-54558
1 day ago
1-54404
1 day
38126 JovanGerb
author:JovanGerb
feat: overlapping instances linter This PR implements the overlapping instances linter, with better performance than the previous attempt. An annoyance is the need for `withSetBoolOptionIn`. This is a private declaration in the `unusedInstancesInType` linter, with a link to an unsolved issue. I've marked it public, but maybe it should go to a separate file, depending on how fast we think the issue will be resolved. See #35095 and #34955 for previous iterations of this linter. See #14731 for an old attempt at a weaker form of this linter. Co-authored-by: @thorimur --- - [x] depends on: #38151 - [x] depends on: #38150 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-linter 770/47 Mathlib.lean,Mathlib/Algebra/Category/Ring/FilteredColimits.lean,Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Algebra/Order/Invertible.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Star/StarRingHom.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/Convex/StdSimplex.lean,Mathlib/Analysis/Fourier/FiniteAbelian/Orthogonality.lean,Mathlib/Analysis/Normed/Field/Krasner.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/ConjSqrt.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/CategoryTheory/Localization/Predicate.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean,Mathlib/Control/Applicative.lean,Mathlib/Control/Functor.lean,Mathlib/FieldTheory/Normal/Defs.lean,Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/Init.lean,Mathlib/Lean/Elab/InfoTree.lean,Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean,Mathlib/LinearAlgebra/Eigenspace/Matrix.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean,Mathlib/Logic/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/Unique.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/RingTheory/ChainOfDivisors.lean,Mathlib/RingTheory/ClassGroup.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/DedekindDomain/Instances.lean,Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean,Mathlib/RingTheory/DedekindDomain/LinearDisjoint.lean,Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/HahnSeries/Lex.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/Ideal/Norm/RelNorm.lean,Mathlib/RingTheory/LocalRing/ResidueField/Instances.lean,Mathlib/RingTheory/NormalClosure.lean,Mathlib/RingTheory/Valuation/RankOne.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/OverlappingInstances.lean,Mathlib/Tactic/Linter/UnusedInstancesInType.lean,Mathlib/Tactic/NormNum/Ineq.lean,Mathlib/Topology/Algebra/MulAction.lean,Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean,Mathlib/Topology/Connected/PathConnected.lean,MathlibTest/OverlappingInstances.lean,MathlibTest/Subsingleton.lean,MathlibTest/Variable.lean,MathlibTest/WhitespaceLinter.lean,MathlibTest/congr.lean,MathlibTest/norm_num.lean 65 95 ['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'thorimur'] thorimur
assignee:thorimur
1-52848
1 day ago
2-20475
2 days ago
18-3676
18 days
38896 peabrainiac
author:peabrainiac
feat(Algebra): multiplicative torsors Introduce a class `Torsor` for torsors of multiplicative groups, as a multiplicative counterpart to the existing `AddTorsor` for torsors of additive groups. --- Adopted / migrated from #8608. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra file-removed
label:t-algebra$
643/544 Mathlib.lean,Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Torsor/Basic.lean,Mathlib/Algebra/Torsor/Defs.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean,Mathlib/LinearAlgebra/AffineSpace/Defs.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/Group/AddTorsor.lean,Mathlib/Topology/Algebra/MulAction.lean,scripts/noshake.json 14 2 ['github-actions', 'grunweg'] nobody
1-51096
1 day ago
1-51169
1 day ago
7-54702
7 days
38855 SnirBroshi
author:SnirBroshi
feat(Order/ConditionallyCompleteLattice/Indexed): `≤` version of `ciSup_or'` for `ConditionallyCompleteLattice` Deprime `ciSup_or'` because there's no `ciSup_or`, and add a `≤` version (and dual) for `ConditionallyCompleteLattice`. Only `≤` because equality does not hold when `p ≠ q` without `sSup ∅ = ⊥`. --- `ciSup_or'` can't have a dual because there's no dual to `ConditionallyCompleteLinearOrderBot`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 8/1 Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean 1 1 ['github-actions'] nobody
1-41462
1 day ago
8-62670
8 days ago
8-62516
8 days
38856 SnirBroshi
author:SnirBroshi
feat(Order/ConditionallyCompleteLattice/Indexed): `iSup_iSup_eq_{left/right}` for `ConditionallyCompleteLinearOrderBot` and `≤` versions for `ConditionallyCompleteLattice`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 32/9 Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean 2 1 ['github-actions'] nobody
1-41299
1 day ago
8-55589
8 days ago
8-55435
8 days
37400 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Acyclic): endpoints of a path have at most one neighbor in the path --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 15/0 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean 1 6 ['Rida-Hamadani', 'Ruben-VandeVelde', 'SnirBroshi', 'bryangingechen', 'github-actions'] nobody
1-40123
1 day ago
41-60970
41 days ago
41-60816
41 days
39089 Whysoserioushah
author:Whysoserioushah
feat(RepresentationTheory): Define continuous representation co-authored-by : @rmhi --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
158/0 Mathlib.lean,Mathlib/RepresentationTheory/Continuous/Basic.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean 3 9 ['Whysoserioushah', 'github-actions', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
1-25974
1 day ago
1-27933
1 day ago
3-9128
3 days
39122 justus-springer
author:justus-springer
feat(AlgebraicGeometry/): Birationality and rationality of schemes This is a first step (of hopefully many) towards some basic birational geometry. This PR: - Moves `RationalMap.lean` into a new subdirectory `Birational/` - Adds `Birational/Birational.lean`, which defines predicates `Birational`, `BirationalOver` and `IsRationalOver` for arbitrary schemes and provides basic API (e.g. that they are equivalence relations, and that affine space is rational). Some notes on the choice of definitions: There are multiple ways to define what it means for two schemes to be birational to each other. A common one is: "There exists a rational map with a rational inverse". However, this would require defining composition of rational maps, which is not always defined (In order to compose `f : X ⤏ Y` with `g : Y ⤏ Z`, you need at least `X` preirreducible, `Y` nonempty and `f` dominant). On the other hand, I can define "There exist dense subsets `U : Opens X` and `V : Opens Y` such that `U ≅ V` as schemes" for any two schemes `X` and `Y`, with no conditions. Hence I chose that as a definition. I'm also working on defining composition of rational maps, and once that's done, there should be a theorem connecting the two definitions. For now, I've defined `IsRationalOver S X` to mean there exists a `n : Type 0` such that `X` is birational to `𝔸(n; S)`. I fixed the universe of `n` to avoid bad universe levels in the type of `IsRationalOver`. At least I wasn't able to find a way to make this universe polymorphic and make the linter happy, but maybe there is a way. All references on birational geometry I could find just work with finite-dimensional varieties anyway, which would fit in `Type 0`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-algebraic-geometry 297/1 Mathlib.lean,Mathlib/AlgebraicGeometry/Birational/Birational.lean,Mathlib/AlgebraicGeometry/Birational/RationalMap.lean,Mathlib/AlgebraicGeometry/Restrict.lean 4 1 ['github-actions'] nobody
1-23429
1 day ago
2-3616
2 days ago
2-4233
2 days
38220 wwylele
author:wwylele
feat(LinearAlgebra/AffineSpace): shifting a subspace towards a point Split off from #36018 and excluded the Simplex part. This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane. Part of https://github.com/leanprover-community/mathlib4/pull/34826. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
133/0 Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean 2 5 ['copilot-pull-request-reviewer', 'github-actions'] themathqueen
assignee:themathqueen
1-18545
1 day ago
1-19130
1 day ago
22-80290
22 days
37592 erdOne
author:erdOne
feat(Geometry/Convex): indexed convex combinations We introduce `sConvexCombo` and the indexed version `iConvexCombo` as the main API for `ConvexSpace` and prove lemmas around the new definitions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
540/172 Mathlib/Analysis/Convex/MetricSpace.lean,Mathlib/LinearAlgebra/ConvexSpace.lean,Mathlib/LinearAlgebra/ConvexSpace/AffineSpace.lean 3 88 ['ADedecker', 'YaelDillies', 'b-mehta', 'bryangingechen', 'erdOne', 'eric-wieser', 'faenuccio', 'github-actions', 'grunweg', 'kbuzzard', 'martinwintermath', 'mathlib-bors', 'ocfnash'] nobody
1-17913
1 day ago
1-51831
1 day ago
11-21026
11 days
37350 aditya-ramabadran
author:aditya-ramabadran
feat(Analysis/Distribution): define canonical maps between Schwartz/test functions, distributions/tempered distributions Defines these canonical maps: (1) continuous linear map from $\mathcal D$ to $\mathcal S$, and (2) induced (linear) restriction map from $\mathcal S'$ to $\mathcal D'$, as assigned by @ADedecker. --- Put in a separate file since Distribution.lean only imports TestFunction right now and I thought it was cleaner to do in a new bridge file with both the maps. Open to changing this though. * Made use of #36445 (proved first map locally on fixed support spaces first by local seminorm estimates, then used limitCLM) * Needed a real to complex bridge `TestFunction.ToComplexSchwartzMap` since distributions are defined on real-valued test functions but tempered distributions in mathlib are defined on complex-valued Schwartz functions * Induced map $\mathcal S'(E,F) \to \mathcal D'(Ω,F)$ is $\mathbb C$-linear The main important defs are `ContDiffMapSupportedIn.toSchwartzMapCLM` which is the local fixed-support part, then `TestFunction.toSchwartzMapCLM` (where the continuity uses limitCLM to glue the local continuous linear maps on each $\mathcal D_K$), and `TemperedDistribution.toDistributionLM` which is the linear map from tempered distributions to ordinary distributions. Tested with `lake env lean Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 226/0 Mathlib.lean,Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean 2 24 ['aditya-ramabadran', 'github-actions', 'j-loreaux'] j-loreaux
assignee:j-loreaux
1-14602
1 day ago
1-15549
1 day ago
33-15691
33 days
38869 TJHeeringa
author:TJHeeringa
feat(Analysis/InnerProductSpace): Add instance for quotient of InnerProductSpace --- Couldn't find the inner product space instance for a quotient of an inner product space. After confirming at [#Is there code for X? > Quotient of inner product space is inner product space](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Quotient.20of.20inner.20product.20space.20is.20inner.20product.20space/with/592464432), I made this PR. Defines an innerProductSpace instance on the quotient based on the isometry with the orthogonal complement, which is a closed subspace of the full space and thus has an innerProductSpace instance. AI usage: Didn't understand how to properly apply `quotient_norm_mk_eq K.toAddSubgroup x`. Claude suggested using convert. Otherwise no AI used, aside from acting as secondary Loogle. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 64/0 Mathlib/Analysis/InnerProductSpace/ProdL2.lean 1 28 ['TJHeeringa', 'github-actions', 'j-loreaux', 'themathqueen', 'wwylele'] j-loreaux
assignee:j-loreaux
1-2498
1 day ago
1-2498
1 day ago
6-64092
6 days
39110 SnirBroshi
author:SnirBroshi
chore(Data/Set): reduce defeq abuse of `Set α = α → Prop` These are among the first places that would fail if `Set α` wasn't defeq to `α → Prop`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 34/20 Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Defs.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Set/Prod.lean,Mathlib/Order/BooleanAlgebra/Set.lean 5 14 ['SnirBroshi', 'github-actions', 'leanprover-radar', 'themathqueen', 'vihdzp'] nobody
1-1272
1 day ago
2-34811
2 days ago
2-34685
2 days
38837 kbuzzard
author:kbuzzard
feat: add "higher instance priority" library note We add a library note explaining the logic in making instances like `Semiring.toModule` higher priority than the default. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [ ] depends on: #38704 [only because one of the claims in the note is false without it] 19/0 Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/HierarchyDesign.lean,Mathlib/Algebra/Module/Defs.lean 4 5 ['github-actions', 'kbuzzard', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
1-715
1 day ago
1-489
1 day ago
1-73506
1 day
39150 wwylele
author:wwylele
chore(Algebra/LinearRecurrence): remove a defeq abuse The previous code abuses defeq between `Subtype E.IsSolution` (coming from `← Subtype.mk.injEq` rewrite) and `Subtype (· ∈ E.solSpace)` (coming from coercing submodule). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt easy
label:t-algebra$
2/2 Mathlib/Algebra/LinearRecurrence.lean 1 1 ['github-actions'] nobody
0-85572
23 hours ago
0-85645
23 hours ago
0-85491
23 hours
39152 wwylele
author:wwylele
chore(Algebra/BigOperators): remove a defeq abuse --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt easy
label:t-algebra$
1/2 Mathlib/Algebra/BigOperators/Ring/Finset.lean 1 1 ['github-actions'] nobody
0-85123
23 hours ago
0-85200
23 hours ago
0-85046
23 hours
39156 Deicyde
author:Deicyde
chore(LinearAlgebra/Pi): Fix typos in `Submodule.pi` docstring The docstring referenced `pi I s` (the parameter is named `p` not `s`) and `p a` (the bound variable is `i` not `a`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy new-contributor
label:t-algebra$
2/2 Mathlib/LinearAlgebra/Pi.lean 1 3 ['Deicyde', 'github-actions'] nobody
0-81911
22 hours ago
0-82316
22 hours ago
0-82162
22 hours
37677 vihdzp
author:vihdzp
feat: club sets In set theory, a club set is a subset of an ordinal of uncountable cofinality, which is closed in the order topology, and unbounded within the ordinal. We generalize this notion to that of a club set in a well-order `α`: this is a set which is cofinal and closed under suprema. We recover the more standard notion by setting `α = Iio o`, whenever `ℵ₀ < o.cof`. We prove that club sets are closed under intersections of size less than the cofinality of `α`, and that the fixed points of a normal function are a club set. --- The idea is to eventually rework [`Ordinal.deriv`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Ordinal/FixedPoint.html#Ordinal.deriv). This is simply the enumerator function for the fixed points of `f`, and enumerator functions for club sets are always normal. - [x] depends on: #37670 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory t-order 159/0 Mathlib.lean,Mathlib/Order/IsNormal.lean,Mathlib/SetTheory/Cardinal/Cofinality/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality/Club.lean 4 7 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'staroperator', 'vihdzp'] nobody
0-79195
21 hours ago
0-80672
22 hours ago
19-57962
19 days
38489 Jun2M
author:Jun2M
feat(Topology/Algebra/InfiniteSum): Generalize ENNReal lemmas This PR generalizes many theorems in Topology/Algebra/InfiniteSum/ENNReal.lean from `ENNREal` to any type that satisfies a list of order-related instances, mostly `[CommMonoid α] [CompleteLattice α] [CanonicallyOrderedMul α] [TopologicalSpace α] [SupConvergenceClass α]` Deprecation of the original `ENNReal` lemmas are done in the next PR: #38193. Related Zulip thread: [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/588756615) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 261/3 Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean 4 7 ['Jun2M', 'SnirBroshi', 'github-actions', 'wwylele'] nobody
0-78496
21 hours ago
0-78573
21 hours ago
16-68464
16 days
39158 SnirBroshi
author:SnirBroshi
feat(LinearAlgebra/Matrix/Rank): generalize `Matrix.rank`/`LinearMap.rank` to semirings - Generalize `Matrix.rank` from `CommRing` to `CommSemiring` - Generalize `LinearMap.rank` from `AddCommGroup`s over `Ring`s to `AddCommMonoid`s over `Semiring`s (which are the minimum requirements for `Module`) - Many `Matrix.rank` theorems now require `StrongRankCondition` (which `CommRing` used to provide) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
34/35 Mathlib/LinearAlgebra/Dimension/LinearMap.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean 2 1 ['github-actions'] nobody
0-76755
21 hours ago
0-76837
21 hours ago
0-76683
21 hours
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'] nobody
0-67142
18 hours ago
47-20773
47 days ago
51-56695
51 days
37298 artie2000
author:artie2000
refactor(Algebra/Order): unbundle group and ring cone * Unbundle `GroupCone` and `RingCone` using `Submonoid.IsMulPointed` The material in `Mathlib.Algebra.Group.Submonoid.Support` was created to treat uniformly * positive cones in groups and rings * pointed cones in vector spaces over an ordered field * orderings in rings This PR deprecates the [GroupCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Cone.html#GroupCone) and [RingCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Cone.html#RingCone) structures, making use of the predicates `Submonoid.IsMulPointed` and `AddSubmonoid.IsPointed` defined in that file instead. See also #36863 for the analogous change to ring orderings. --- [![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 ['github-actions', 'joneugster'] themathqueen
assignee:themathqueen
0-65890
18 hours ago
43-7334
43 days ago
43-7735
43 days
37477 kebekus
author:kebekus
feat: canonical decomposition of complex-meromorphic functions on disks Establish the Finite Canonical Decomposition of meromorphic functions, where a complex-meromorphic function `f` on a disk is written as a product of an analytic function without zeros and poles, and canonical factors that take only values of norm one on the boundary of the disk. A future PR will extend this theorem to handle zeros/poles on the boundary of the disk. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 305/10 Mathlib.lean,Mathlib/Analysis/Complex/CanonicalDecomposition.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Analysis/Meromorphic/RCLike.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 5 4 ['github-actions', 'j-loreaux', 'kebekus'] j-loreaux
assignee:j-loreaux
0-65889
18 hours ago
12-52619
12 days ago
40-36932
40 days
37712 eric-wieser
author:eric-wieser
feat: add a `LawfulXor` typeclass I've put this in mathlib since it can use `Function.Involutive`; it can of course be upstreamed at a later date. Having this generalization encourages downstream code in cslib to be expressed in terms of involutive functions, rather than just `^^^` on bitvectors. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 130/0 Mathlib.lean,Mathlib/Data/LawfulXor.lean 2 6 ['eric-wieser', 'github-actions', 'linesthatinterlace'] joneugster
assignee:joneugster
0-65887
18 hours ago
5-66774
5 days ago
12-59212
12 days
37914 j-loreaux
author:j-loreaux
feat: transfer `star`-related instances across equivalences This also adds `Function.Injective.{InvolutiveStar,...}` and related lemmas. In addition we rename the existing `Equiv.star` to `Equiv.Perm.star` (without a deprecation) so that the name can be used for the declaration which transfers a `Star` instance across an `Equiv`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
95/2 Mathlib.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/Pointwise.lean,Mathlib/Algebra/Star/TransferInstance.lean 4 5 ['SnirBroshi', 'github-actions', 'themathqueen'] themathqueen
assignee:themathqueen
0-65886
18 hours ago
18-6830
18 days ago
18-8585
18 days
37956 artie2000
author:artie2000
feat(Algebra/Polynomial): lemmas about polynomial degree * Add various small lemmas about polynomial degree --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
28/5 Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Monic.lean,MathlibTest/hintAll.lean 5 7 ['artie2000', 'github-actions', 'vihdzp'] kim-em
assignee:kim-em
0-65885
18 hours ago
29-7702
29 days ago
29-9349
29 days
38214 emlis42
author:emlis42
feat(Algebra/ContinuedFractions): add Euler's continued fraction This PR formalizes Euler’s continued fractions by providing `Euler` which construct one by giving head term and coefficients with some basic property. We also introduce a transformation `GenContFract.toEuler` that maps a generalized continued fraction `g : GenContFract K` to an equivalent Euler-form continued fraction. new-contributor t-algebra
label:t-algebra$
262/0 Mathlib.lean,Mathlib/Algebra/ContinuedFractions/Euler.lean 2 15 ['github-actions', 'mathlib-bors', 'wwylele'] themathqueen
assignee:themathqueen
0-65884
18 hours ago
18-7260
18 days ago
18-10858
18 days
38362 vihdzp
author:vihdzp
feat: cofinal subset of regular cardinal is isomorphic to it In set theory, one often identifies a cardinal `c` with its initial ordinal `c.ord`, and said ordinal with the lower set `Iio c.ord`. This is particularly pervasive in the theory of club and stationary subsets, where one often sees the hypothesis "let κ be a regular cardinal" in lieu of the more precise wording: that `κ` is an (infinite) well-order, whose order type equals the initial ordinal of its cardinality. We define a typeclass `IsRegularCardinalOrder` for this assumption. The benefit of using it is that our results won't apply only to `Iio c.ord` for regular `c`, but also to concrete types such as `Nat`, `Cardinal`, or `Ordinal`. As a proof of concept, we define `Order.enum`, a generalization of both `Nat.nth` and `Ordinal.enumOrd`. A future PR will deprecate the latter. --- - [x] depends on: #38363 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 127/11 Mathlib.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality/Enum.lean,Mathlib/SetTheory/Cardinal/Cofinality/Ordinal.lean 5 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] alreadydone
assignee:alreadydone
0-65882
18 hours ago
0-78683
21 hours ago
1-17839
1 day
38409 chrisflav
author:chrisflav
feat(RingTheory): totally split algebras over a field We show that for a totally split algebra over a field, the `k`-rational points are in bijection with the prime spectrum. We also show that an étale algebra over a separably closed field is totally split. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 122/2 Mathlib/Algebra/Algebra/Pi.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Field.lean,Mathlib/RingTheory/TotallySplit.lean 6 1 ['github-actions'] mariainesdff
assignee:mariainesdff
0-65881
18 hours ago
18-28584
18 days ago
18-28430
18 days
38431 joelriou
author:joelriou
refactor(Topology): redefine Delta-generated spaces Delta-generated spaces are made particular cases of `X`-generated spaces, where `X` is a family of topological spaces. --- - [x] depends on: #38080 - [x] depends on: #37799 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology large-import 139/208 Mathlib/Topology/Category/DeltaGenerated.lean,Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean,Mathlib/Topology/Convenient/Category.lean,Mathlib/Topology/Convenient/GeneratedBy.lean 4 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] ADedecker
assignee:ADedecker
0-65880
18 hours ago
5-8754
5 days ago
5-8678
5 days
38449 WenrongZou
author:WenrongZou
feat(MvPowerSeries): some lemmas about `subst` of infinite sum In this PR, I add some lemmas about substituion of a infinite sum equal to infinite sum of substitution. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 34/0 Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean 2 2 ['github-actions', 'mathlib-merge-conflicts'] chrisflav
assignee:chrisflav
0-65879
18 hours ago
11-42890
11 days ago
17-11148
17 days
38488 b-mehta
author:b-mehta
feat(Data/Finset/Card): iterating a function's image on a finite set stabilises ...and does so in a bounded number of steps (which is why this is Finset-specific). In a later PR, I'll add this for endofunctions on a fintype, as well as add a Set.Finite version. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 40/0 Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Image.lean 2 16 ['SnirBroshi', 'b-mehta', 'github-actions'] joneugster
assignee:joneugster
0-65877
18 hours ago
16-71112
16 days ago
16-70958
16 days
38539 plp127
author:plp127
fix(Data/Bool/Basic): fix `Bool.not` problem Fix three lemmas which have a subterm of the form `!a = b`, which elaborates to `(!(decide (a = b))) = true`, where `(!a) = b` was probably intended. These were introduced in #534. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 3/3 Mathlib/Data/Bool/Basic.lean 1 2 ['github-actions', 'grunweg'] joneugster
assignee:joneugster
0-65876
18 hours ago
15-65637
15 days ago
15-65483
15 days
38583 kim-em
author:kim-em
feat(LinearAlgebra/Matrix/GeneralLinearGroup): polynomial functions on matrices over an infinite field are determined by their values on GL This PR adds `MvPolynomial.eq_of_eval_eq_on_gl`: two polynomials in `MvPolynomial (m × m) k` over an infinite field `k` are equal whenever their evaluations agree at every invertible matrix. The proof multiplies by the generic determinant `det (Matrix.mvPolynomialX m m k)` so that `MvPolynomial.funext` applies (covering both invertible and non-invertible specializations of the variables), then divides by it (it is nonzero by `Matrix.det_mvPolynomialX_ne_zero`) using that the polynomial ring is an integral domain. The lemma is useful when reasoning about polynomial representations of `GL n k`, where natural identities are easiest to check on `GL n k` itself but the final statement lives at the level of polynomials. The lemma is placed in a new file `Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/MvPolynomial.lean` because the existing `Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean` is upstream of `Adjugate`, which is itself upstream of `GeneralLinearGroup.Defs` — so we cannot import `GeneralLinearGroup.Defs` from `Matrix.MvPolynomial` without creating a cycle. 🤖 Prepared with Claude Code t-algebra
label:t-algebra$
60/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/MvPolynomial.lean 2 4 ['SnirBroshi', 'github-actions', 'wwylele'] dagurtomas
assignee:dagurtomas
0-65874
18 hours ago
12-61349
12 days ago
14-6323
14 days
38584 TJHeeringa
author:TJHeeringa
feat(Analysis/InnerProductSpace/Reproducing): Add outerKernel, mem_iff --- Adds the `outerKernel` definition and the theorem `mem_iff`. These are needed for proving statements involving embeddings of RKHS. I can split `mem_of_posSemidef` and `mem_iff` off into a different pull request if that is preferred. The theorems `mem_of_posSemidef` and `posSemidef_of_mem` are the two directions of `mem_iff`. `posSemidef_of_mem` is slightly stronger than the converse direction of `mem_iff` in the sense that it also specifies the constant `c` in the statement. The specified `c` is in fact the smallest possible `c` for which the statement holds. The statement `mem_of_posSemidef` proves `∃ (g : H), (g : X → V) = f`. We could instead write `f ∈ (coeCLM 𝕜 (H:=H)).range`. Making this change would require the addition of the line `simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]` in the beginning of the proof. The full beginning is then ``` lemma mem_of_posSemidef (f : X → V) {c : ℝ} (hc : ((c : 𝕜) ^ 2 • kernel H - outerKernel 𝕜 f).PosSemidef) : f ∈ (coeCLM 𝕜 (H:=H)).range := by simp only [LinearMap.mem_range, coe_coe, coeCLM_apply] let Laux : ... ``` Making a `MemRKHS` like MemLp and MemSobolev and then writing `MemRKHS H f` is also an option. Happy to change it to whatever is preferred. The proof of `mem_of_posSemidef` is based on the idea that any function f in the RKHS satisfies `=\sum_{n} ` for `x_n\in X` and `v_n\in V` by the reproducing property. We define the operator L(\sum_n K(\cdot,x_n)v_n) = \sum_{n} . This is bounded by the condition based on the kernels, and thus extends to a bounded linear operator on the RKHS. Its Riesz' representer agrees pointwise with f. AI: When asking how to avoid Classical.choose in constructing the operator L, Claude suggested the approach of going through the quotient. I made the proof using Claude as supplementary Loogle. Afterwards, I asked it to help shorted the proofs. Some suggestions for `mem_of_posSemidef` were applied. The other suggestions were not helping or not correct. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 122/1 Mathlib/Analysis/InnerProductSpace/Reproducing.lean 1 7 ['TJHeeringa', 'github-actions', 'themathqueen'] j-loreaux
assignee:j-loreaux
0-65873
18 hours ago
14-8368
14 days ago
14-8592
14 days
38628 tautschnig
author:tautschnig
feat(Data/ZMod/Basic): unit characterization for ZMod (p ^ d) Add two lemmas characterizing units in `ZMod (p ^ d)` for a prime `p`: * `ZMod.isUnit_natCast_of_not_dvd_pow`: a natural number not divisible by `p` is a unit in `ZMod (p ^ d)`. * `ZMod.prime_natCast_not_isUnit_pow`: the prime `p` is not a unit in `ZMod (p ^ d)` when `d ≥ 1`. These complement the existing `isUnit_prime_iff_not_dvd` (which characterizes when a *prime* is a unit in `ZMod n`) by characterizing when an *arbitrary* natural number is a unit in `ZMod (p ^ d)`. **Motivation.** Arithmetic verification over fixed-width bitvectors works in `ZMod (2 ^ d)`. A Gröbner basis solver over this ring needs to know which constants are invertible: odd constants are units (enabling algebraic simplification), while even constants are not (requiring fallback to SAT). These lemmas formalize that characterization for any prime, not just 2. Further work related to Gröbner basis will be published once #29203 (and, before that, #34873) have been merged. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 12/0 Mathlib/Data/ZMod/Basic.lean 1 4 ['dagurtomas', 'github-actions'] joneugster
assignee:joneugster
0-65872
18 hours ago
13-30583
13 days ago
13-30429
13 days
38649 chrisflav
author:chrisflav
chore(RingTheory): equality of linear map with values in finite module spreads out We add some corollaries of `Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 75/1 Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Localization/Module.lean 3 2 ['github-actions'] alreadydone
assignee:alreadydone
0-65871
18 hours ago
13-18620
13 days ago
13-18466
13 days
38698 Thmoas-Guan
author:Thmoas-Guan
feat(RingTheory/Regular): freeness of `QuotSMulTop` For finitely generated module `M` over Noetherian local ring `(R, m)`, if `x ∈ m` is `M`-regular, `M/xM` is free over `R/(x)` iff `M` is free over `R`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 114/0 Mathlib.lean,Mathlib/RingTheory/Regular/Free.lean 2 1 ['github-actions'] chrisflav
assignee:chrisflav
0-65870
18 hours ago
12-56640
12 days ago
12-56486
12 days
38721 tb65536
author:tb65536
feat(GroupTheory/Torsion): the torsion subgroup is preserved by isomorphisms This PR proves that the torsion subgroup is preserved by isomorphisms. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
10/1 Mathlib/GroupTheory/Torsion.lean 1 1 ['github-actions'] riccardobrasca
assignee:riccardobrasca
0-65869
18 hours ago
12-12422
12 days ago
12-12269
12 days
38974 Brian-Nugent
author:Brian-Nugent
chore: fix documentation of `LocallyQuasiFinite` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry easy 6/5 Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
0-65868
18 hours ago
5-78275
5 days ago
5-78121
5 days
39018 khwilson
author:khwilson
feat(Topology/Separation/Regular): facts about `nhdsSet` in normal spaces A few lemmas about `nhdsSet` in normal spaces that mirror `nhds` in regular spaces. Originally built as part of a proof of Michael's Selection Theorem, that didn't make the final cut, but nonetheless seemed useful to the library. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 24/0 Mathlib/Topology/Separation/Regular.lean 1 1 ['github-actions'] j-loreaux
assignee:j-loreaux
0-65867
18 hours ago
4-61094
4 days ago
4-60955
4 days
39033 tb65536
author:tb65536
feat(Analysis/DirichletEigenvalue): Dirichlet eigenvalues of a set This PR defines the Dirichlet eigenvalues of a set (in the sense of "can you hear the shape of a drum"). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 58/0 Mathlib.lean,Mathlib/Analysis/DirichletEigenvalue.lean 2 1 ['github-actions'] ADedecker
assignee:ADedecker
0-65866
18 hours ago
4-23068
4 days ago
4-22916
4 days
39063 khwilson
author:khwilson
feat(Topology/Algebra/Module/LocallyConvex): a very nice basis of locally convex spaces In proving facts about locally convex spaces, you often work with a basis of the neighborhoods of 0 that are open, symmetric, convex, antitone, and have the property that `V (n + 1) + V (n + 1) ⊆ V n` and `closure (V (n + 1)) ⊆ V n`. These lemmas construct such a basis. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 89/0 Mathlib/Topology/Algebra/Group/Pointwise.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean 2 2 ['github-actions', 'khwilson'] j-loreaux
assignee:j-loreaux
0-65865
18 hours ago
3-58571
3 days ago
3-58431
3 days
39082 emlis42
author:emlis42
feat(Analysis\Calculus\Deriv): add deriv_const_op This PR adds some lemmas so `simp` can automatically evaluate derivatives of partially applied heterogeneous operations such as `HAdd.hAdd`, `HMul.hMul` `HDiv.hDiv`, and `HPow.hPow`. t-analysis new-contributor 47/5 Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/FDeriv/Norm.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,MathlibTest/Deriv.lean 7 2 ['github-actions'] j-loreaux
assignee:j-loreaux
0-65863
18 hours ago
3-21459
3 days ago
3-22025
3 days
39101 ldct
author:ldct
feat: Tag exp_nat_mul and exp_int_mul Tag these two lemmas to allow - pushing the `^` in `(exp ...)^...` - pushing the `exp` in `exp (... * ...)` and add unit tests. Also tag the real versions, and `exp 0` for `push exp` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 28/2 Mathlib/Analysis/Complex/Exponential.lean,MathlibTest/push.lean 2 1 ['github-actions'] j-loreaux
assignee:j-loreaux
0-65861
18 hours ago
2-64168
2 days ago
2-66348
2 days
39107 SnirBroshi
author:SnirBroshi
feat(Geometry/Manifold/ChartedSpace): `H ≃ₜ M` → `ChartedSpace H M` --- I thought it was strange that `Homeomorph`s didn't have this easy dot-notation, though I'm not familiar with this part of the library so I might be missing something. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 6/0 Mathlib/Geometry/Manifold/ChartedSpace.lean 1 1 ['github-actions'] PatrickMassot
assignee:PatrickMassot
0-65860
18 hours ago
2-44388
2 days ago
2-44234
2 days
39160 wwylele
author:wwylele
feat(Analysis/Normed): mapping a ball with smul --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 34/0 Mathlib/Analysis/Normed/MulAction.lean 1 3 ['copilot-pull-request-reviewer', 'github-actions'] nobody
0-64923
18 hours ago
0-65776
18 hours ago
0-65622
18 hours
38957 wwylele
author:wwylele
chore(GroupTheory/DivisibleHull): remove `backward.privateInPublic` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt t-group-theory 5/12 Mathlib/GroupTheory/DivisibleHull.lean 1 5 ['github-actions', 'grunweg', 'jcommelin', 'wwylele'] jcommelin
assignee:jcommelin
0-60579
16 hours ago
0-60579
16 hours ago
6-19207
6 days
38275 TTony2019
author:TTony2019
feat: Add `AffineEquiv.image_intrinsicInterior` ## Summary This PR generalizes the existing lemma `AffineIsometry.image_intrinsicInterior` to the setting of affine equivalences, yielding the corresponding result `AffineEquiv.image_intrinsicInterior`. Since affine equivalences are more general than affine isometries, the proof requires an additional finite-dimensionality assumption. The key extra input is that in finite-dimensional spaces, an affine equivalence induces a homeomorphism via `AffineEquiv.toHomeomorphOfFiniteDimensional`, so the assumptions are adjusted accordingly. Apart from these extra assumptions, the argument is essentially the same as for `AffineIsometry.image_intrinsicInterior`. ## Collaboration This PR was developed together with @imathwy. t-analysis new-contributor 252/41 Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/LinearAlgebra/AffineSpace/Restrict.lean,Mathlib/Topology/Algebra/AffineSubspace.lean,Mathlib/Topology/Homeomorph/Defs.lean 5 25 ['github-actions', 'imathwy', 'j-loreaux', 'themathqueen'] j-loreaux
assignee:j-loreaux
0-58180
16 hours ago
0-58180
16 hours ago
9-136
9 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. ### Main definitions * `GraphLike V D E Gr`: A typeclass parameterized by a vertex type `V`, dart type `D` and a graph type `Gr` (with `V`, `D` & `E` as an `outParam`). * `GraphLike.verts : Set V`: The set of vertices of the graph. * `GraphLike.darts : Set D`: The set of darts of the graph. * `GraphLike.edges : Set E`: The set of edges of the graph. * `GraphLike.Adj : V → V → Prop`: The adjacency relation, defined by default as `∃ d ∈ darts, fst d = u ∧ snd d = v`. --- This PR generalises #35776 to also unify `Graph`. PRs depending on this PR are #39047 (graphLike with no multi edges) => #39050 (Digraph is graphLike) || V #36829 (undirected graphLike) => #39053 (Graph is graphLike) & #39054 (Simplegraph is graphLike) || V #36756 (def of walk on GraphLike) => #36971 (change Simplegraph to use GraphLike walk) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 186/0 Mathlib.lean,Mathlib/Combinatorics/GraphLike/Basic.lean 2 72 ['IvanRenison', 'Jun2M', 'SnirBroshi', 'YaelDillies', 'github-actions', 'lauramonk', 'mathlib-merge-conflicts'] YaelDillies
assignee:YaelDillies
0-53263
14 hours ago
3-11547
3 days ago
54-9809
54 days
39098 BoltonBailey
author:BoltonBailey
chore(Data/Vector): add `grind` to cons lemmas This PR affects `List.Vector.head_cons` and `List.Vector.tail_cons`. It moves the simp attribute assignment of these lemmas to the lemma declarations and also applies the `grind =` attribute. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 2/2 Mathlib/Data/Vector/Basic.lean,Mathlib/Data/Vector/Defs.lean 2 2 ['github-actions'] nobody
0-51498
14 hours ago
3-2438
3 days ago
3-2284
3 days
39138 Thmoas-Guan
author:Thmoas-Guan
refactor(Algebra/GeometricallyReduced): refactor `Algebra.IsGeometricallyReduced` Refactor `Algebra.IsGeometricallyReduced` to adapt to general algebra over commutative ring. In up-coming #39141, we proved that this definition makes base change to any field reduced. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 43/17 Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean,Mathlib/RingTheory/Nilpotent/GeometricallyReduced.lean 2 8 ['Thmoas-Guan', 'chrisflav', 'github-actions'] nobody
0-50617
14 hours ago
0-50689
14 hours ago
1-1858
1 day
38786 martinwintermath
author:martinwintermath
feat(Data/SetLike): add `IsConcreteNeg` Add file `SetLike/Pointwise.lean` with main definition `class IsConcreteNeg` which expresses that a given `Neg` on a `SetLike` objects is compatible with the injection into sets. This is in analogy to `SetLike.IsConcreteLE`. For demonstration: - we rework negation on `Submodule` to make use of `IsConcreteNeg` - we provide `Neg` in `AffineSubspace` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 185/20 Mathlib.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Data/SetLike/Pointwise.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Pointwise.lean,Mathlib/LinearAlgebra/Span/Basic.lean 6 2 ['github-actions', 'mathlib-bors'] nobody
0-46095
12 hours ago
6-3550
6 days ago
6-3690
6 days
38785 scholzhannah
author:scholzhannah
feat: use `alias_in` attribute for CW complexes Using the `alias_in` attribute for classical CW complexes to get rid of the `export` sections. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 103/58 Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Finite.lean,Mathlib/Topology/CWComplex/Classical/Subcomplex.lean 3 8 ['github-actions', 'grunweg', 'scholzhannah'] grunweg, mcdoll, urkud
assignee:urkud assignee:grunweg assignee:mcdoll
0-41092
11 hours ago
3-41411
3 days ago
10-29619
10 days
39084 scholzhannah
author:scholzhannah
feat: generalize `OpenPartialHomeomorph.Defs` file to `PartialHomeomorph` As discussed on Zulip ([#mathlib4 > Generalizing `PartialHomeomorph`?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Generalizing.20.60PartialHomeomorph.60.3F/with/536896273)), I renamed `PartialHomeomorph` to `OpenPartialHomeomorph` in #29113. In this PR I now add a new `PartialHomeomorph` which is a `PartialEquiv` that is continuous on both source and target. An `OpenPartialHomeomorph` is then a `PartialHomeomorph` that additionally has open source and target. In subsequent PRs I will generalize the other files. See this draft PR (#39071) for what I think the end result might be. `PartialHomeomorph` should find uses at least for manifolds (`ModelWithCorners`). Afterwards, I want to add a `ClosedPartialHomeomorph` to use for CWComplexes. --- I don't have a lot of experience doing these kind of modifications of a large piece of code. Additionally, I am not familiar with the main uses of `OpenPartialHomeomorph` in Mathlib. So while I did this to the best of my abilities, you should read this carefully because there might be things I did wrong or in non-ideal ways. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 286/47 Mathlib.lean,Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean,Mathlib/Topology/FiberBundle/Trivialization.lean,Mathlib/Topology/OpenPartialHomeomorph/Basic.lean,Mathlib/Topology/OpenPartialHomeomorph/Composition.lean,Mathlib/Topology/OpenPartialHomeomorph/Constructions.lean,Mathlib/Topology/OpenPartialHomeomorph/Defs.lean,Mathlib/Topology/OpenPartialHomeomorph/IsImage.lean,Mathlib/Topology/PartialHomeomorph/Defs.lean 12 1 ['github-actions'] grunweg and j-loreaux
assignee:j-loreaux assignee:grunweg
0-40923
11 hours ago
3-17640
3 days ago
3-18107
3 days
39179 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Measure/Sub` - refactors `Mathlib/MeasureTheory/Measure/Sub` by shortening `sub_le_iff_le_add_of_le` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 1/5 Mathlib/MeasureTheory/Measure/Sub.lean 1 1 ['github-actions'] nobody
0-40912
11 hours ago
0-41014
11 hours ago
0-40860
11 hours
37399 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Paths): `IsPath` and `Nil` lemmas --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 10/3 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean 2 7 ['Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'github-actions'] YaelDillies
assignee:YaelDillies
0-40794
11 hours ago
41-59410
41 days ago
41-59400
41 days
37934 Thmoas-Guan
author:Thmoas-Guan
feat(FieldTheory): definition of transcendental separable field extension In this PR, we introduce the concept of separably generated field extension and transcendental separable field extension. Further properties will be in #37838 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
110/0 Mathlib.lean,Mathlib/FieldTheory/TranscendentalSeparable.lean 2 4 ['Thmoas-Guan', 'github-actions', 'robin-carlier'] robin-carlier
assignee:robin-carlier
0-40774
11 hours ago
1-18160
1 day ago
9-36183
9 days
38775 Raph-DG
author:Raph-DG
feat(Topology): skyscraper sheaves are flasque In this PR we show that skyscraper sheaves are flasque. In particular, we show that a skyscraper sheaf valued in an object A whose map to the terminal object is an epimorphism is a flasque sheaf. We also show the useful corollary that in particular, any skyscraper sheaf is flasque if the sheaf takes values in a category with a zero object --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 39/0 Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean,Mathlib/Topology/Sheaves/Flasque.lean,Mathlib/Topology/Sheaves/Skyscraper.lean 3 7 ['Raph-DG', 'dagurtomas', 'github-actions', 'j-loreaux'] PatrickMassot and dagurtomas
assignee:PatrickMassot assignee:dagurtomas
0-40006
11 hours ago
0-40006
11 hours ago
7-53257
7 days
39182 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction` - moves the additive lemmas next to the finite-sum version they now reuse - shortens `characteristic_add_top_le` to a one-line `simpa` from `characteristic_sum_top_le` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-analysis 21/30 Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-39939
11 hours ago
0-40340
11 hours ago
0-40186
11 hours
39172 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic` - refactors `Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic` by simplifying `stronglyMeasurable_in_set` and `stronglyMeasurable_of_measurableSpace_le_on` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 16/42 Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-39758
11 hours ago
0-41030
11 hours ago
0-40876
11 hours
39175 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Integral/CircleTransform` - refactors `Mathlib/MeasureTheory/Integral/CircleTransform` by shortening `circleTransformDeriv_periodic` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 1/6 Mathlib/MeasureTheory/Integral/CircleTransform.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-39757
11 hours ago
0-41023
11 hours ago
0-40869
11 hours
39183 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Complex/Exponential` - shortens the reindexing step in `norm_exp_sub_sum_le_norm_mul_exp` by switching from `sum_bij` to `sum_nbij'` with `simp +contextual` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 2/12 Mathlib/Analysis/Complex/Exponential.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-39223
10 hours ago
0-39793
11 hours ago
0-39639
11 hours
39173 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/ConvergenceInDistribution` - refactors `Mathlib/MeasureTheory/Function/ConvergenceInDistribution` by shortening `TendstoInDistribution.prodMk_of_tendstoInMeasure_const` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 2/18 Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-38312
10 hours ago
0-41028
11 hours ago
0-40874
11 hours
39176 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Integral/Marginal` - refactors `Mathlib/MeasureTheory/Integral/Marginal` by shortening `Measurable.lmarginal` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 2/7 Mathlib/MeasureTheory/Integral/Marginal.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-38308
10 hours ago
0-41021
11 hours ago
0-40867
11 hours
39177 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic` - refactors `Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic` by shortening `Measure.ext_of_charFunDual` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 1/6 Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-38306
10 hours ago
0-41018
11 hours ago
0-40864
11 hours
39178 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Measure/PreVariation` - refactors `Mathlib/MeasureTheory/Measure/PreVariation` by simplifying `sum_le'` and `sum_le_preVariationFun_of_subset` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 6/20 Mathlib/MeasureTheory/Measure/PreVariation.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-38304
10 hours ago
0-41016
11 hours ago
0-40862
11 hours
39180 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue` - refactors `Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue` by simplifying `singularPart_mutuallySingular` and `singularPart_neg` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 3/24 Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-38301
10 hours ago
0-41011
11 hours ago
0-40857
11 hours
37443 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Walk/Operations): permutations of support --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 17/0 Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean 2 6 ['YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] YaelDillies
assignee:YaelDillies
0-38164
10 hours ago
0-38536
10 hours ago
40-23658
40 days
38346 joelriou
author:joelriou
feat(AlgebraicTopology): augmented simplicial objects with an extra degeneracy are "contractible" --- - [x] depends on: #39079 - [x] depends on: #38360 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology maintainer-merge 117/4 Mathlib/AlgebraicTopology/ExtraDegeneracy.lean,Mathlib/AlgebraicTopology/SimplicialObject/DeltaZeroIter.lean,docs/references.bib 3 3 ['github-actions', 'mathlib-dependent-issues', 'robin-carlier'] robin-carlier
assignee:robin-carlier
0-37793
10 hours ago
0-86223
23 hours ago
0-86070
23 hours
38319 Zetetic-Dhruv
author:Zetetic-Dhruv
feat(Combinatorics/SetFamily): Assouad's dual VC bound Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family `𝒜 : Finset (Finset α)` has VC dimension at most `d`, then for any ground set `X : Finset α` the dual family `{𝒜.filter (· ∋ x) : x ∈ X}` has VC dimension at most `2 ^ (d + 1) - 1`. New declarations (in `Finset` namespace): - `dualFamily 𝒜 X`: for each `x ∈ X`, the subfamily `{A ∈ 𝒜 | x ∈ A}` - `mem_dualFamily` (`@[simp]`): membership characterisation - `exists_shatters_of_dualFamily_shatters`: Assouad's bitstring-coding lemma - `vcDim_dualFamily_le`: the headline VC bound Proof by Assouad's classical bitstring-coding argument. Sits on top of `Finset.shatterer` / `Finset.vcDim` from `Mathlib.Combinatorics.SetFamily.Shatter`. References: - P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13 - J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002, Section 10.3 Lemma 10.3.3 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 199/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean,docs/references.bib 3 34 ['Shreyas4991', 'YaelDillies', 'Zetetic-Dhruv', 'github-actions'] nobody
0-37089
10 hours ago
1-79762
1 day ago
18-40257
18 days
39162 anovickis
author:anovickis
feat(Topology/PartitionOfUnity): add pointwise_decomposition_finsum + companions Add three short lemmas to `Mathlib/Topology/PartitionOfUnity.lean` extending the existing `PartitionOfUnity` API: - `pointwise_decomposition_finsum` — for `f : X → ℝ` and `x ∈ s`, `f x = ∑ᶠ i, ρ i x · f x`. This is the pointwise step that lifts to integral linearity in measure-theoretic PoU integration: `∫_s f dμ = ∑ᶠ i, ∫_s (ρ i · f) dμ`. - `one_minus_sum_nonneg` — `0 ≤ 1 - ∑ᶠ i, ρ i x`. Direct rearrangement of the existing `sum_le_one` field; useful as a complement-mass remainder bound in chart-by-chart estimates. - `abs_le_one` — `|ρ i x| ≤ 1`. Combines the existing `nonneg` and `le_one`; convenience for absolute-value bounds. All three are short proofs using existing structure fields (`sum_eq_one`, `sum_le_one`, `nonneg`, `le_one`). These came up while writing chart-by-chart Stokes-on-manifold estimates where one wants to decompose `∫_M f` into chart-supported pieces using a partition of unity. The pointwise identity is the obvious first step; the other two are complementary algebraic bounds that show up in remainder estimates. --- 🤖 Generated with [Claude Code](https://claude.com/claude-code) t-topology new-contributor LLM-generated 27/0 Mathlib/Topology/PartitionOfUnity.lean 1 2 ['github-actions'] nobody
0-36887
10 hours ago
0-62168
17 hours ago
0-62014
17 hours
39187 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Normed/Operator/LinearIsometry` - shortens the `EquivLike` instance for `LinearIsometryEquiv` by reusing `toLinearEquiv_injective` and `DFunLike.ext'` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 1/7 Mathlib/Analysis/Normed/Operator/LinearIsometry.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-36622
10 hours ago
0-36908
10 hours ago
0-36754
10 hours
38380 linesthatinterlace
author:linesthatinterlace
feat(Data/Set): add Set.diag API Introduces `Set.diag (s : Set α) : Set (α × α) = {(a, a) | a ∈ s}` as the set-level companion to `Set.offDiag`, mirroring the existing `Finset.diag` / `Finset.offDiag` pairing. The type-level `Set.diagonal : Type* → Set (α × α)` is retained unchanged; `diag_univ : (univ : Set α).diag = diagonal α` (`@[simp]`) keeps it canonical when the underlying set is `univ`. Parallels to the existing `offDiag` API (`diag_mono`, `diag_nonempty`, `diag_eq_empty`, `diag_empty`, `diag_singleton`, `diag_subset_prod`, `diag_eq_sep_prod`, `diag_inter`, `diag_union`, `diag_insert`) plus bridges `diag_union_offDiag`, `disjoint_diag_offDiag`, `prod_sdiff_diag`, `prod_sdiff_offDiag`. Also `diag_eq_image`, `image_diag` (matching `Finset.image_diag`), `preimage_coe_coe_diag`, and `Finset.coe_diag`. Note `diag_union` and `diag_insert` are unconditional (no `Disjoint` / `a ∉ s` hypothesis). To free the `diag_` prefix for the set sense, the existing lemmas about the diagonal *map* `fun x => (x, x)` are renamed with deprecation aliases: `range_diag` → `range_diagMap`, `diag_preimage_prod` → `diagMap_preimage_prod`, `diag_preimage_prod_self` → `diagMap_preimage_prod_self`. `diag_image` and `preimage_coe_coe_diagonal` are marked `@[deprecated]`. This PR was prepared with the assistance of Claude Opus. t-data 124/15 Mathlib/Data/Finset/Prod.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Data/Set/Prod.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Compactness/Lindelof.lean,Mathlib/Topology/NhdsSet.lean 7 2 ['github-actions', 'linesthatinterlace'] joneugster
assignee:joneugster
0-36607
10 hours ago
18-83656
18 days ago
18-83502
18 days
39186 kbuzzard
author:kbuzzard
perf(RingTheory/LaurentSeries): add some instances Typeclass inference was expensively failing at some point in `LaurentSeries.valuation_compare` without these instances. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) Discovered by getting Claude Code to edit Lean's typeclass inference algorithm and then compile lean and mathlib and see what breaks. Found out that typeclass inference is going down a big hole in this file; this fixes the hole. t-ring-theory 9/0 Mathlib/RingTheory/LaurentSeries.lean 1 3 ['github-actions', 'kbuzzard', 'leanprover-radar'] nobody
0-36329
10 hours ago
0-37865
10 hours ago
0-37711
10 hours
26304 Raph-DG
author:Raph-DG
feat(AlgebraicGeometry): Pushforward of algebraic cycles In this PR we define a notion of the "pushfoward of functions with locally finite support". We give this PR the suggestive title "pushforward of algebraic cycles" because we will go on to model algebraic cycles on a scheme X as functions from X to the integers with locally finite support. - [x] depends on: #26225 - [x] depends on: #26259 - [x] depends on: #35807 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 242/0 Mathlib.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Constructible.lean,Mathlib/Topology/LocallyFinsupp/Pushforward.lean,Mathlib/Topology/Maps/Proper/Basic.lean,Mathlib/Topology/Spectral/ConstructibleTopology.lean 6 45 ['Raph-DG', 'chrisflav', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] joelriou
assignee:joelriou
0-35695
9 hours ago
0-35695
9 hours ago
28-82976
28 days
39190 tb65536
author:tb65536
chore(RingTheory/LocalRing/ResidueField/Fiber): namespace file This PR adds an `Ideal` namespace to `Fiber.lean` and adds a deprecation for one declaration that should be in this namespace. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
9/3 Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean 1 1 ['github-actions'] nobody
0-35010
9 hours ago
0-35010
9 hours ago
0-34857
9 hours
39008 MichaelStollBayreuth
author:MichaelStollBayreuth
feat(NumberTheory/NumberField/Completion/FinitePlace): add multiplicity lemmas This adds some more API for multiplicities of prime ideals in factorizations (and some more basic API lemmas, too), in preparation for a proof of the Northcott property for heights on number fields. --- - [x] depends on: #38654 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 49/0 Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean 2 2 ['github-actions', 'mathlib-dependent-issues'] nobody
0-33912
9 hours ago
0-35782
9 hours ago
0-37103
10 hours
38848 jcreinhold
author:jcreinhold
feat(AlgebraicTopology/SimplicialSet): exists_isPushout_of_ne_top Every proper subcomplex of a simplicial set extends by attaching a single cell along its boundary, exhibited as a pushout of `∂Δ[n] ↪ Δ[n]`. This is the per-cell input for cell-by-cell filtrations of monomorphisms in `SSet`. Adapted from @joelriou 's [proof](https://github.com/joelriou/topcat-model-category/blob/813338a8c88cfe0096deed7e3ba7daf92d4a1c71/TopCatModelCategory/SSet/Boundary.lean#L187). I also added the supporting lemma `Types.isPullback_of_eq_setPreimage` (set-preimage square is a pullback in `Type u`). AI use: Claude helped locate `subtype_val_mono` and the `backward.isDefEq.respectTransparency` option. t-algebraic-topology new-contributor 120/3 Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean 2 22 ['github-actions', 'jcreinhold', 'joelriou', 'mckoen'] joelriou
assignee:joelriou
0-31721
8 hours ago
2-1117
2 days ago
8-56140
8 days
39184 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Normed/Module/FiniteDimension` - rewrites `SecondCountableTopology (E →L[𝕜] F)` using a finite-dimensional equivalence and `e₂.toHomeomorph.secondCountableTopology` - moves `ContinuousLinearEquiv.piRing` next to the argument that reuses it Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 33/68 Mathlib/Analysis/Normed/Module/FiniteDimension.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-31457
8 hours ago
0-39140
10 hours ago
0-38986
10 hours
39174 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Integral/Asymptotics` - refactors `Mathlib/MeasureTheory/Integral/Asymptotics` by simplifying `IsBigO.set_integral_isBigO` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 6/12 Mathlib/MeasureTheory/Integral/Asymptotics.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-30809
8 hours ago
0-41026
11 hours ago
0-40872
11 hours
39103 CoolRmal
author:CoolRmal
feat(MeasureTheory): triangle inequality for the variation of vector measures We show that the variation of vector measures satisfies the triangle inequality. As an application, we show that integrals are additive in vector measures and bilinear forms in #30230. Created with the help of Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 23/1 Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean 1 4 ['RemyDegenne', 'github-actions', 'mathlib-bors', 'yoh-tanimoto'] EtienneC30
assignee:EtienneC30
0-29886
8 hours ago
0-29886
8 hours ago
2-60065
2 days
39171 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic` - shortens `one_isLittleO_logCounting_single` by deriving it from a theta estimate for `log r - log ‖e‖` - shortens `logCounting_isBigO_one_iff_analyticOnNhd` by reusing `divisor_nonneg_iff_analyticOnNhd` directly Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 10/34 Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-29071
8 hours ago
0-41038
11 hours ago
0-40884
11 hours
38991 CBirkbeck
author:CBirkbeck
chore(NumberTheory/ModularForms): deprecation shims for moved level-one files Follow-up to #38806: re-adds deprecation shims at the old paths for files moved into `LevelOne/` (so git rename detection in #38806 preserved blame). - [ ] depends on: #38806 This PR was done with the help of Claude Code. t-number-theory LLM-generated 26/0 Mathlib.lean,Mathlib/NumberTheory/ModularForms/DimensionFormulas/LevelOne.lean,Mathlib/NumberTheory/ModularForms/LevelOne.lean 3 2 ['github-actions', 'mathlib-dependent-issues'] nobody
0-28779
7 hours ago
0-28789
7 hours ago
0-28635
7 hours
39188 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform` - shortens the `verticalIntegral_norm_le` proof by replacing the case split on `c` with `Set.abs_sub_left_of_mem_uIcc` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 1/7 Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-28396
7 hours ago
0-36541
10 hours ago
0-36387
10 hours
38144 yuanyi-350
author:yuanyi-350
refactor(NumberTheory): Golf 100 files This PR is an experimental project. In this PR, we use an Agent to automatically scan and attempt to simplify proofs. We hope to eventually effectively golf 100 files and avoid reinventing the wheel in mathlib. We have chosen `Mathlib/NumberTheory` as the testing ground. If this experiment is very successful and accepted by the mathlib community, we would be honored to open source it. The relevant projects includes - [ ] #38104, which golfs `Mathlib/MeasureTheory`. - [ ] #37968, which golfs `Mathlib/Analysis`. This PR serves as an index. For the actual code review, please refer to the individual PRs linked below. Each of those PRs modifies only a single file to facilitate the review process. - [ ] depends on: #38204 - [ ] depends on: #38277 - [ ] depends on: #38278 - [ ] depends on: #38279 - [ ] depends on: #38280 - [ ] depends on: #38351 - [ ] depends on: #38402 - [ ] depends on: #38403 - [ ] depends on: #38454 - [ ] depends on: #38457 - [ ] depends on: #38494 - [ ] depends on: #38495 - [ ] depends on: #38832 - [ ] depends on: #38833 - [ ] depends on: #38834 - [ ] depends on: #38835 - [ ] depends on: #38836 - [ ] depends on: #38838 - [ ] depends on: #38839 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory large-import codex LLM-generated 80/194 Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/NumberTheory/DiophantineApproximation/Basic.lean,Mathlib/NumberTheory/Divisors.lean,Mathlib/NumberTheory/EulerProduct/Basic.lean,Mathlib/NumberTheory/FLT/Four.lean,Mathlib/NumberTheory/FLT/Polynomial.lean,Mathlib/NumberTheory/GaussSum.lean,Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean,Mathlib/NumberTheory/ModularForms/Derivative.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean,Mathlib/NumberTheory/ModularForms/SlashActions.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean,Mathlib/NumberTheory/Pell.lean,Mathlib/NumberTheory/PrimeCounting.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/SmoothNumbers.lean,Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean 17 10 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536', 'yuanyi-350'] MichaelStollBayreuth
assignee:MichaelStollBayreuth
0-25592
7 hours ago
0-25595
7 hours ago
1-4955
1 day
39058 vihdzp
author:vihdzp
chore: `IsBotZeroClass (Fin n)` We also deprecate a bunch of theorems that now follow from the typeclass. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-order 31/28 Archive/Imo/Imo2024Q5.lean,Mathlib/AlgebraicTopology/Quasicategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean,Mathlib/Data/Fin/SuccPred.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean,Mathlib/Order/Fin/Basic.lean,Mathlib/Order/Grade.lean,Mathlib/Order/Interval/Set/Basic.lean,Mathlib/RingTheory/ChainOfDivisors.lean 13 2 ['github-actions', 'plp127'] nobody
0-23575
6 hours ago
3-63474
3 days ago
3-68761
3 days
39149 kbuzzard
author:kbuzzard
doc(Algebra/HierarchyDesign): fix typo in library note Fix instance name (error was possibly caused by the change in the instance naming algorithm). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) Maybe it was called that under the old algorithm? But it's called https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Int/Defs.html#Int.instAddGroup now. t-algebra easy
label:t-algebra$
1/1 Mathlib/Algebra/HierarchyDesign.lean 1 2 ['github-actions', 'plp127'] nobody
0-22758
6 hours ago
0-86199
23 hours ago
0-86045
23 hours
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. - [x] depends on: #38933 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 193/2 Mathlib.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Ideal/UFD.lean,Mathlib/RingTheory/Localization/Away/Basic.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Localization.lean 6 20 ['chrisflav', 'github-actions', 'mathlib-dependent-issues', 'mbkybky', 'tb65536'] chrisflav
assignee:chrisflav
0-22444
6 hours ago
6-44376
6 days ago
54-44487
54 days
38755 TJHeeringa
author:TJHeeringa
feat(Analysis/innerProductSpace/GramMatrix): Add Gram.posSemidef_of_mapL --- `Analysis/innerProductSpace/TensorProduct` has a TODO for a continuous version of `TensorProduct.map`. One place which contains a proof for this is at [stack](https://math.stackexchange.com/a/3934668). This PR is lemma 1 of that. It is written with `.PosSemidef` instead of `≤` because the Löwner Order on matrices is only defined in lean for matrices with values in `𝕜`. No AI used. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 21/0 Mathlib/Analysis/InnerProductSpace/GramMatrix.lean 1 14 ['TJHeeringa', 'github-actions', 'j-loreaux', 'themathqueen'] urkud
assignee:urkud
0-21935
6 hours ago
0-21935
6 hours ago
9-86180
9 days
38047 mbkybky
author:mbkybky
feat(RingTheory/Finiteness/Ideal): `I` is finitely generated if `f(I)` and `I ∩ ker(f)` are finitely generated Let `f : R →+* S` be a surjective ring homomorphism, and let `I` be an ideal of `R`. If `f(I)` and `I ∩ ker(f)` are finitely generated ideals, then `I` is also finitely generated. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 13/3 Mathlib/RingTheory/Finiteness/Ideal.lean 1 1 ['github-actions'] mattrobball
assignee:mattrobball
0-21857
6 hours ago
0-21628
5 hours ago
26-56529
26 days
38500 kebekus
author:kebekus
feat: integral presentation of the proximity function of value distribution theory If `f : ℂ → ℂ` is meromorphic, establish a presentation of the proximity function `proximity f ⊤` as iterated circle averages. This statement can be used to compare the proximity- and logarithmic counting functions, and is one of the key ingredients in the proof of Cartan's classic formula for the characteristic function. This is the first section of a multi-part PR, establishing Cartan's formula. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 211/0 Mathlib.lean,Mathlib/Analysis/Complex/ValueDistribution/Proximity/IntegralPresentation.lean 2 11 ['github-actions', 'kebekus', 'wwylele'] sgouezel
assignee:sgouezel
0-21776
6 hours ago
15-50615
15 days ago
16-45164
16 days
38993 CBirkbeck
author:CBirkbeck
feat(NumberTheory/ModularForms): Sturm bound for level-1 modular forms The Sturm bound for level 1: a modular form `f : ModularForm 𝒮ℒ k` whose first `⌊k/12⌋ + 1` q-expansion coefficients vanish is identically zero. - [x] depends on: #38806 This PR was done with the help of Claude Code. t-number-theory LLM-generated 75/20 Mathlib/NumberTheory/ModularForms/LevelOne/DimensionFormula.lean 1 6 ['CBirkbeck', 'github-actions', 'grunweg', 'mathlib-dependent-issues'] nobody
0-21074
5 hours ago
0-21081
5 hours ago
0-20927
5 hours
37716 slavanaprienko
author:slavanaprienko
feat(LinearAlgebra/Matrix/Determinant): Desnanot-Jacobi identity This PR adds the Desnanot-Jacobi identity (also known as the Lewis Carroll identity or Dodgson condensation): for any (n+2)×(n+2) matrix M over a commutative ring, $$\det(M) \cdot \det(M_{1,n}^{1,n}) = \det(M_1^1) \cdot \det(M_n^n) - \det(M_1^n) \cdot \det(M_n^1)$$ The proof follows Bressoud's *Proofs and Confirmations* (Cambridge University Press, 1999): multiply M by an auxiliary matrix built from columns of the adjugate, then compare determinants. This yields the identity premultiplied by det(M). To cancel, we pass to a universal polynomial ring (an integral domain with nonzero determinant), then specialize back to arbitrary commutative rings. It seems there's some interest in adding this: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Determinantal.20identity.20and.20the.20Cauchy.20matrix.20determinant/with/582946873 --- t-algebra new-contributor
label:t-algebra$
221/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Determinant/DesnanotJacobi.lean 2 11 ['SnirBroshi', 'github-actions', 'grunweg', 'kim-em', 'slavanaprienko'] nobody
0-20144
5 hours ago
1-3951
1 day ago
1-36618
1 day
39157 vihdzp
author:vihdzp
feat: `Nat.cast` commutes with addition --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 26/9 Mathlib/Data/Nat/Cast/Commute.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean 2 2 ['github-actions', 'plp127'] nobody
0-19778
5 hours ago
0-81243
22 hours ago
0-81089
22 hours
39195 linesthatinterlace
author:linesthatinterlace
feat(Logic/Function/Defs): Add dcomp lemmas This PR adds API lemmas about `dcomp` that were previously missing. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 20/0 Mathlib/Logic/Function/Defs.lean 1 3 ['github-actions', 'plp127'] nobody
0-18513
5 hours ago
0-26178
7 hours ago
0-26024
7 hours
39203 FordUniver
author:FordUniver
refactor(Analysis/Calculus/Gradient): ungate inner_gradient lemmas Removes superfluous differentiability hypotheses (plus `UniqueDiffWithinAt` for the `Within` versions) from the four `inner_gradient[Within]_[left|right]` lemmas: `gradient` is defined as `(toDual 𝕜 F).symm (fderiv 𝕜 f x)`, so `⟪∇ f x, y⟫ = fderiv 𝕜 f x y` holds unconditionally since both sides are zero when `f` is not differentiable at `x`. --- Genuinely unsure about this one because the only call I currently have in my code itself has the differentiability hypothesis. But including unused (or unnecessary) assumptions seems not intentional? My best guess is that the hypotheses were included by analogy with `HasGradientAt.fderiv_apply`, which genuinely needs them. This PR drops the hypotheses and rewrites the proofs through the isomorphism directly; no existing mathlib callers pass the now-redundant arguments. t-analysis 10/10 Mathlib/Analysis/Calculus/Gradient/Basic.lean 1 1 ['github-actions'] nobody
0-18502
5 hours ago
0-18815
5 hours ago
0-18661
5 hours
39196 tb65536
author:tb65536
feat(RingTheory/LocalRing/ResidueField/Fiber): the localization of `Ideal.Fiber` is a quotient This PR proves that the localization of `Ideal.Fiber` is a quotient. This will be applied in #39189 to prove the ramification-inertia formula for finite flat extensions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
48/0 Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean 1 1 ['github-actions'] nobody
0-18457
5 hours ago
0-18457
5 hours ago
0-18305
5 hours
35985 urkud
author:urkud
feat: vector bundle of `ContinuousAlternatingMap`s The new file is heavily based on `Hom.lean`, with some theorems removed for now. --- - [x] depends on: #35984 - [x] depends on: #34491 - [x] depends on: #34513 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 449/0 Mathlib.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.lean,Mathlib/Topology/VectorBundle/ContinuousAlternatingMap.lean 3 4 ['github-actions', 'mathlib-bors', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
0-18214
5 hours ago
0-48930
13 hours ago
0-49695
13 hours
36643 Thmoas-Guan
author:Thmoas-Guan
feat(Homology): interaction of projective and injective dimension and SES In this PR, we directly implemented the relation of `projectiveDimension` and `injectiveDimension` in SES. --- - [ ] depends on: #36817 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 148/0 Mathlib/Algebra/Homology/ShortComplex/Exact.lean,Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean 3 4 ['dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] adamtopaz
assignee:adamtopaz
0-17787
4 hours ago
0-18094
4 hours ago
36-13002
36 days
39202 FordUniver
author:FordUniver
feat(Analysis/Calculus/Gradient): add toDual_gradient and companions Add `toDual_gradient`, `toDual_gradientWithin`, and the composed variants `toDual_comp_gradient`, `toDual_comp_gradientWithin` — the natural inverse direction of the gradient's defining equation `∇ f x := (toDual 𝕜 F).symm (fderiv 𝕜 f x)`. These identify `(toDual 𝕜 F) (∇ f x)` with `fderiv 𝕜 f x` (and the `gradientWithin` and composed forms with the corresponding fderiv versions), making the Riesz isomorphism between the two derivative views explicit. The proofs of `DifferentiableAt.hasGradientAt` and `DifferentiableWithinAt.hasGradientWithinAt` in the same file are simplified to use them. --- Came up while formalizing the descent lemma for Lipschitz-smooth functions, where being able to switch between `LipschitzWith K (fderiv ℝ f)` and `LipschitzWith K (∇ f)` is helpful, which with this PR becomes `toDual_comp_gradient ▸ (toDual ℝ F).isometry.lipschitzWith_iff K`. Also slightly simplifies two call sites in mathlib. 16/3 Mathlib/Analysis/Calculus/Gradient/Basic.lean 1 1 ['github-actions'] nobody
0-17753
4 hours ago
0-18289
5 hours ago
0-18299
5 hours
39109 mbkybky
author:mbkybky
feat(RingTheory/LocalProperties): `Module.FinitePresentation` is a local property We show that if there exists a set `{ r }` of `R` such that `Mᵣ` is a finitely presented `Rᵣ`-module for each `r`, then `M` is a finitely presented `R`-module. Co-authored-by: Sihan Su @su00000 Co-authored-by: Yi Song @syur2 From the [Local Properties of Modules](https://github.com/mbkybky/module_localProperties) project. - [x] depends on: #39112 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 99/10 Mathlib.lean,Mathlib/RingTheory/LocalProperties/FinitePresentation.lean,Mathlib/RingTheory/Localization/Finiteness.lean 3 5 ['github-actions', 'mathlib-dependent-issues', 'robin-carlier'] nobody
0-17667
4 hours ago
0-17667
4 hours ago
2-1859
2 days
37848 rwst
author:rwst
feat(RingTheory/PowerSeries/Log): log and exp as inverses This adds the lemmas `exp_subst_log` and `log_subst_exp_sub_one`, together with two helpers needed for the proofs. Note: I'm using Claude + Opus for supervised formalization tasks. Claude has no permission to use git on my machine. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory LLM-generated 88/0 Mathlib/RingTheory/PowerSeries/Log.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean 2 9 ['chrisflav', 'github-actions', 'rwst'] chrisflav
assignee:chrisflav
0-17527
4 hours ago
0-17527
4 hours ago
30-86249
30 days
33958 chrisflav
author:chrisflav
feat(AlgebraicGeometry): the small affine étale site We define the small affine étale site of a scheme `S`. The underlying category is the category of commutative rings `R` equipped with an étale structure morphism `Spec R ⟶ S`. This category is essentially small (in contrast to the full small étale site). We show that it has the same category of sheaves as the small étale site of `S` and deduce from this that étale sheafification of presheaves with values in `Type u` exists and that the category of sheaves on the étale site with values in a Grothendieck abelian category is Grothendieck abelian. In particular, this allows us to define the étale cohomology groups of a sheaf with values in `Ab.{u}` to be in `Type u`. From Proetale. Co-authored-by: Joël Riou --- - [x] depends on: #35711 - [x] depends on: #35240 - [x] depends on: #34976 - [x] depends on: #33957 - [x] depends on: #38820 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 261/1 Mathlib.lean,Mathlib/AlgebraicGeometry/LimitsOver.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Sites/Affine.lean,Mathlib/AlgebraicGeometry/Sites/AffineEtale.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean 6 21 ['chrisflav', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'robin-carlier'] kim-em
assignee:kim-em
0-17486
4 hours ago
6-7897
6 days ago
9-71020
9 days
37464 martinwintermath
author:martinwintermath
feat(Geometry/Convex/Cone): Minor additions to pointed cones Minor additions to pointed cones: * `PointedCone.ofSubmodule_le_ofSubmodule` and `PointedCone.ofSubmodule_lt_ofSubmodule`. These are not made simp lemmas, instead the underlying `Submodule.restrictScalars_le` and `Submodule.restrictScalars_lt` have been changed into simp lemmas. * `PointedCone.hull_le_span` as a short form of `Submodule.span_le_restrictScalars R≥0 R s` Co-authored by: Artie Khovanov --- In preparation of #36605. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry maintainer-merge 22/16 Mathlib/Algebra/Module/Submodule/RestrictScalars.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean 2 24 ['YaelDillies', 'artie2000', 'github-actions', 'justus-springer', 'martinwintermath', 'mathlib-merge-conflicts', 'ooovi', 'vihdzp'] nobody
0-16974
4 hours ago
2-43786
2 days ago
39-56657
39 days
37407 Paul-Lez
author:Paul-Lez
feat(Data/List/Basic): lemma about sums of lists Co-authored-by: Xavier Genereux --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 3/0 Mathlib/Data/List/Basic.lean 1 1 ['github-actions'] nobody
0-16365
4 hours ago
0-16443
4 hours ago
0-19737
5 hours
39204 urkud
author:urkud
feat(Integral/CircleIntegral): add a convergence theorem From the Riemann mapping theorem project. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 43/0 Mathlib/MeasureTheory/Integral/CircleIntegral.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean 2 1 ['github-actions'] nobody
0-16183
4 hours ago
0-18232
5 hours ago
0-18078
5 hours
38466 Thmoas-Guan
author:Thmoas-Guan
feat(ModuleCat): some lemmas for `Ext` over `ModuleCat` some lemmas for `Ext` over `ModuleCat` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 70/0 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean 4 5 ['Thmoas-Guan', 'chrisflav', 'github-actions'] chrisflav
assignee:chrisflav
0-16103
4 hours ago
4-21358
4 days ago
17-15619
17 days
39170 yuanyi-350
author:yuanyi-350
feat(GroupTheory/Perm/Fin): Add `(cycleIcc i j) ∘ j.succAbove = i.succAbove` for `i ≤ j` - proves `(cycleIcc i j) ∘ j.succAbove = i.succAbove` for `i ≤ j`, giving the expected `succAbove` compatibility for `cycleIcc` t-group-theory maintainer-merge 5/0 Mathlib/GroupTheory/Perm/Fin.lean 1 3 ['github-actions', 'robin-carlier'] nobody
0-15950
4 hours ago
0-43452
12 hours ago
0-43298
12 hours
38801 TBUGTB
author:TBUGTB
feat(Topology/Order): order topology on WithTop API lemmas Upstream lemmas on the order topology on WithTop from the brownian motion project. Co-authored-by: Kexing Ying --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology brownian new-contributor 12/0 Mathlib/Order/Filter/AtTopBot/Basic.lean 1 13 ['TBUGTB', 'github-actions', 'j-loreaux', 'plp127', 'vihdzp'] j-loreaux
assignee:j-loreaux
0-15135
4 hours ago
0-20700
5 hours ago
9-46292
9 days
38552 joelriou
author:joelriou
feat(AlgebraicTopology/SimplicialSet/Homology): computing homology using nondegenerate simplices Given a simplicial set `X` and an object `R` in a preadditive category `C` (with coproducts), we introduce the chain complex `X.normalizedChainComplex R` which is a direct factor of `X.chainComplex R`, and is homotopy equivalent to it. The `n`-chains are coproducts indexed by nondegenerate `n`-simplices of `X` instead of all `n`-simplices. It follows that if `X` has dimension `< d`, then the homology of `X` vanishes in degrees `≥ d`. (This is an application of results previously obtained as part of the formalization of the Dold-Kan equivalence.) --- - [x] depends on: #38954 - [x] depends on: #38544 - [x] depends on: #38543 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology maintainer-merge 274/2 Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialObject/Split.lean,Mathlib/AlgebraicTopology/SimplicialSet/Homology/Nondegenerate.lean 3 23 ['github-actions', 'jcommelin', 'joelriou', 'mathlib-dependent-issues', 'mathlib-splicebot', 'robin-carlier'] dagurtomas
assignee:dagurtomas
0-14880
4 hours ago
0-17414
4 hours ago
1-25946
1 day
39206 FordUniver
author:FordUniver
feat(Analysis/Calculus/AddTorsor/AffineMap): smoothness of AffineMap.lineMap Add `AffineMap.lineMap_contDiff_uncurry` (joint smoothness in all three arguments), `AffineMap.lineMap_contDiff` (smoothness in the parameter with fixed endpoints), and the composition family `ContDiff.lineMap`, `ContDiffOn.lineMap`, `ContDiffAt.lineMap`, `ContDiffWithinAt.lineMap`, mirroring the corresponding `Continuous` family in `Mathlib.Topology.Algebra.Affine`. The uncurried and `ContDiffWithinAt` forms are tagged `@[fun_prop]` so the rest are automatically derivable. Closes the TODO at `Mathlib.MeasureTheory.Integral.CurveIntegral.Poincare:333` where the proof now reduces to `fun_prop`. --- Came up while formalizing the descent lemma for Lipschitz-smooth functions, where `Path.segment a b` being smooth on the unit interval is needed to apply [FTC along the segment](https://github.com/FordUniver/mathlib4/pull/21); `AffineMap.lineMap_contDiff` is the lemma directly used there. Two things I was genuinely not quite sure about: 1. Should the **three convenience variants** `ContDiffAt.lineMap`, `ContDiffOn.lineMap`, and `ContDiff.lineMap` be included? They are not strictly necessary but they exist for users wanting to write `h₁.lineMap h₂ hg` in dot notation by hand, and they mirror the convention of the `Continuous.lineMap` family. 2. Is `Mathlib.Analysis.Calculus.AddTorsor.AffineMap` the **right home**, and is adding `public import Mathlib.Analysis.Calculus.AddTorsor.AffineMap` to `Poincare.lean` to close the TODO reasonable? The placement mirrors the `Continuous.lineMap` family in `Mathlib.Topology.Algebra.Affine`, but hiding a `@[fun_prop]` in a file at the bottom of the hierarchy and needing to import it feels a bit off. t-measure-probability 56/4 Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean,Mathlib/MeasureTheory/Integral/CurveIntegral/Poincare.lean 2 1 ['github-actions'] nobody
0-14158
3 hours ago
0-14357
3 hours ago
0-14203
3 hours
39067 mbkybky
author:mbkybky
feat(Algebra/Module): define modules admitting finite free resolutions We say that an `R`-module `M` has a finite free resolution if there exists an exact sequence `0 ⟶ Eₙ ⟶ ⋯ ⟶ E₀ ⟶ M ⟶ 0` such that `Eᵢ` are finite free `R`-modules. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
186/0 Mathlib.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/FiniteFreeResolution/Basic.lean 3 1 ['github-actions'] nobody
0-13354
3 hours ago
0-13430
3 hours ago
3-36269
3 days
39038 joelriou
author:joelriou
feat(CategoryTheory): Guitart exact squares and quotient categories In this PR, we construct Guitart exact squares which involve quotient categories. --- - [x] depends on: #38998 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory maintainer-merge 99/0 Mathlib.lean,Mathlib/CategoryTheory/GuitartExact/Quotient.lean 2 9 ['github-actions', 'joelriou', 'mathlib-dependent-issues', 'robin-carlier'] nobody
0-13289
3 hours ago
0-14234
3 hours ago
1-24392
1 day
39208 urkud
author:urkud
chore(Algebra/Polynomial): golf Use existing lemmas instead of reinventing the wheel. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
5/18 Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean 2 1 ['github-actions'] nobody
0-12715
3 hours ago
0-12804
3 hours ago
0-12650
3 hours
28613 espottesmith
author:espottesmith
feat(Combinatorics): define undirected hypergraphs This PR defines undirected hypergraphs: ``` @[ext] structure Hypergraph (α : Type*) where /-- The vertex set -/ vertexSet : Set α /-- The hyperedge set -/ hyperedgeSet : Set (Set α) /-- All hyperedges must be subsets of the vertex set -/ hyperedge_isSubset_vertexSet : ∀ ⦃e⦄, e ∈ hyperedgeSet → e ⊆ vertexSet ``` In addition to the main definition, some additional definitions and related lemmas are provided: - vertex adjacency - hyperedge adjacency - vertex "stars" - special cases (loops, empty hypergraphs, trivial hypergraphs, complete hypergraphs, simple hypergraphs, k-uniform hypergraphs, and d-regular hypergraphs) - (some) hypergraph cardinality - subhypergraphs, induced subhypergraphs, and partial hypergraphs This implementation is certainly bare-bones. I'm submitting this PR at this point, rather than when my developments are more fleshed out, because there has been some interest in others contributing to hypergraph formalization in mathlib. In the near future, goals include: - defining incidence matrices (i.e., conversion from `Hypergraph α` to `Matrix α (Set α) β` - coersion/generalization of graph as 2-uniform hypergraph - conversion of a hypergraph into its associated clique graph/two-section graph - constructing the dual of a hypergraph (note: on first blush, this appears somewhat challenging, given that we define hyperedges as `Set α` rather than some other type `β`) - rank and co-rank - walks, paths, cycles, etc. on hypergraphs --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 281/0 Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean 2 143 ['b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot', 'tb65536'] b-mehta
assignee:b-mehta
0-12707
3 hours ago
0-17291
4 hours ago
87-81562
87 days
37071 ericluap
author:ericluap
feat: Dedekind completion of rationals is isomorphic to EReal t-order new-contributor 128/4 Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/DedekindCut.lean,Mathlib/Order/Completion.lean 4 52 ['ericluap', 'github-actions', 'vihdzp', 'wwylele'] vihdzp
assignee:vihdzp
0-12574
3 hours ago
0-12574
3 hours ago
23-7608
23 days
37405 Paul-Lez
author:Paul-Lez
feat(Mathlib/Algebra/BigOperators/Fin): lemma about List.ofFn --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
7/1 Mathlib/Algebra/BigOperators/Fin.lean 1 1 ['github-actions'] nobody
0-12266
3 hours ago
0-12266
3 hours ago
0-12129
3 hours
38967 abeldonate
author:abeldonate
doc(Algebra/Module/Projective): remove TODOs Remove the TODO list, since the have already been implemented on an instance. t-algebra new-contributor maintainer-merge
label:t-algebra$
0/7 Mathlib/Algebra/Module/Projective.lean 1 4 ['github-actions', 'robin-carlier'] nobody
0-11574
3 hours ago
6-14984
6 days ago
6-14830
6 days
39070 tb65536
author:tb65536
chore(RingTheory/Ideal/GoingUp): weaken `IsIntegralClosure` to `Algebra.IsIntegral` Several results in `GoingUp.lean` assumed `IsIntegralClosure` when they only used `Algebra.IsIntegral`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra maintainer-merge
label:t-algebra$
39/32 Mathlib/RingTheory/DedekindDomain/Basic.lean,Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean,Mathlib/RingTheory/Ideal/GoingUp.lean 3 3 ['github-actions', 'robin-carlier'] nobody
0-11333
3 hours ago
0-11364
3 hours ago
3-10500
3 days
38746 eric-wieser
author:eric-wieser
chore: `AffineSubspace.Parallel` is an equivalence relation --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra maintainer-merge
label:t-algebra$
12/0 Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean 1 3 ['github-actions', 'robin-carlier'] nobody
0-11147
3 hours ago
11-73993
11 days ago
11-73839
11 days
38382 dagurtomas
author:dagurtomas
feat(CategoryTheory/Limits): explicit coends in `Type` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory maintainer-merge 213/0 Mathlib.lean,Mathlib/CategoryTheory/Limits/Chosen/End.lean,Mathlib/CategoryTheory/Limits/Types/End.lean 3 10 ['dagurtomas', 'github-actions', 'robin-carlier'] robin-carlier
assignee:robin-carlier
0-10703
2 hours ago
10-54306
10 days ago
12-9467
12 days
38826 tb65536
author:tb65536
feat(RingTheory/LocalRing/ResidueField/Fiber): `IsLiesOverAlgebra` instance We use the new `IsLiesOverAlgebra` predicate from #38465 to express the fact that the existing `R_p`-algebra instance on `(p.Fiber S)_q` agrees with the one coming from the fact that `q` lies over `p`. (The point of this predicate is to avoid exactly this sort of diamond). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
7/1 Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean 1 3 ['github-actions', 'robin-carlier', 'tb65536'] nobody
0-10426
2 hours ago
0-10426
2 hours ago
9-74750
9 days
38983 kebekus
author:kebekus
feat: Invariance of `meromorphic in normal form` under composition. Establish invariance of `meromorphic in normal form` under composition with analytic functions of non-vanishing derivative. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 44/0 Mathlib/Analysis/Meromorphic/NormalForm.lean 1 8 ['github-actions', 'kebekus', 'themathqueen'] themathqueen
assignee:themathqueen
0-9900
2 hours ago
0-20618
5 hours ago
4-36184
4 days
39139 or4nge19
author:or4nge19
feat(LinearAlgebra): Schur triangulation Adds Schur triangulation API for algebraically closed `RCLike`, proved by triangularizing an endomorphism, aiming at a more mathlib idiomatic approach than the original one in #20730 as it now (better) specializes the existing triangularization API and generalizes supporting lemmas in more natural places. A prerequisite for porting `Matrix.det_exp` proof from physlib. It also proves half of existing TODO in Eigenspace.Triangularizable. It may need a split into 2 PRs and coordination with #37006 . See [this](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Contribute.20Schur.20decomposition/with/532385359) and [this](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/581264603) zulip discussions. Co-authored-by: [kuotsanhsu](https://github.com/kuotsanhsu) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import 687/75 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/Triangularizable.lean,Mathlib/LinearAlgebra/Basis/Fin.lean,Mathlib/LinearAlgebra/Basis/Flag.lean,Mathlib/LinearAlgebra/Eigenspace/Basic.lean,Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean,Mathlib/LinearAlgebra/Matrix/SchurTriangulation.lean 10 3 ['github-actions', 'or4nge19', 'wwylele'] nobody
0-9493
2 hours ago
1-32170
1 day ago
1-32145
1 day
39212 emlis42
author:emlis42
feat(Algebra\ContinuedFractions): add `partNums!` and `partDens!` This PR adds `partNums!` and `partDens!`, which provide infinite stream representations for the sequences of partial numerators and denominators of a generalized continued fraction. t-algebra new-contributor
label:t-algebra$
8/0 Mathlib/Algebra/ContinuedFractions/Basic.lean 1 2 ['github-actions'] nobody
0-9440
2 hours ago
0-9527
2 hours ago
0-9373
2 hours
38850 joelriou
author:joelriou
feat(Algebra/Homology): the injective model structure on bounded below cochain complexes When `C` is an abelian category with enough injectives, the category `CochainComplex.Plus C` of bounded below cochain complexes is endowed with a model category structure, where weak equivalences are quasi-isomorphisms, cofibrations are monomorphisms and fibrations are the epimorphisms that have a degreewise injective kernel. In future PR, we shall deduce the injective derivability structures on bounded below cochain complexes in `C` and its homotopy category, which shall allow the construction of right derived functors, and when it is shown that these derived functors are triangulated, it will be possible to refactor `Functor.rightDerived`. --- - [x] depends on: #39076 - [x] depends on: #38999 - [x] depends on: #38632 - [x] depends on: #38651 - [x] depends on: #38995 - [x] depends on: #38996 - [x] depends on: #38997 - [x] depends on: #38998 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory large-import 286/2 Mathlib.lean,Mathlib/Algebra/Homology/Factorizations/Basic.lean,Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean,Mathlib/Algebra/Homology/ModelCategory/Injective.lean,Mathlib/CategoryTheory/Abelian/EpiWithInjectiveKernel.lean 5 4 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] dagurtomas
assignee:dagurtomas
0-7938
2 hours ago
0-7938
2 hours ago
0-7785
2 hours
39214 Hagb
author:Hagb
refactor(Data/Finsupp/MonomialOrder): remove `.wf` (well foundedness) field from `MonomialOrder` Many properties still hold without the well-foundedness. Although Gröbner basis theory requires the monomial order to be well founded for the termination of the division algorithm (formalized in `MonomialOrder.div`), many properties that don't relay on the division or remainder still hold without the well-foundedness. Even the division algorithm can terminate in some cases where the monomial order isn't well founded. For example, if the divisors set is finite, then the algorithm can terminate w.r.t. `MonomialOrder.lex (σ := Nat)` even though it isn't well founded. Such cases cannot be directly stated if the formalization of monomial order requires well-foundedness. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 21/12 Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean 4 1 ['github-actions'] nobody
0-7615
2 hours ago
0-7858
2 hours ago
0-7704
2 hours
38840 peabrainiac
author:peabrainiac
feat(Topology): continuous germs of maps Add a predicate `Filter.Germ.Continuous` for continuity of germs between topological spaces, and bundled types `ContinuousGerm x Y` / `PointedContinuousGerm x y` of continuous germs at `x` resp. continuous germs at `x` taking `x` to `y`. --- See also #10977, which tried to introduce smooth germs between manifolds a while ago, though with a focus on pointwise algebraic operations instead of composability. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 177/0 Mathlib.lean,Mathlib/Topology/ContinuousGerm.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/Germ.lean 4 5 ['chrisflav', 'github-actions', 'j-loreaux', 'peabrainiac'] nobody
0-6602
1 hour ago
0-6602
1 hour ago
8-51207
8 days
39216 emlis42
author:emlis42
feat(Topology\Algebra\InfiniteSum): add `limUnder_eq_tprod` This PR adds `limUnder_eq_tprod` and `limUnder_eq_tsum`. t-topology new-contributor 10/0 Mathlib/Topology/Algebra/InfiniteSum/Defs.lean 1 2 ['github-actions'] nobody
0-5920
1 hour ago
0-6032
1 hour ago
0-5878
1 hour
39019 urkud
author:urkud
chore(*): reduce defeq abuse of `Set α = α → Prop` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt 17/16 Mathlib/Analysis/Complex/CoveringMap.lean,Mathlib/Analysis/Normed/Group/FunctionSeries.lean,Mathlib/Data/Nat/Order/Lemmas.lean,Mathlib/NumberTheory/EulerProduct/ExpLog.lean,Mathlib/NumberTheory/NumberField/Ideal/Asymptotics.lean,Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/FiberBundle/Basic.lean 8 3 ['JovanGerb', 'github-actions', 'urkud'] JovanGerb
assignee:JovanGerb
0-3885
1 hour ago
0-14478
3 hours ago
4-52166
4 days
39192 jayscambler
author:jayscambler
feat(InnerProductSpace/PiL2): det of a linear isometry has unit norm Adds `LinearIsometryEquiv.norm_det` and the real corollary `LinearIsometryEquiv.abs_det`. The proof uses the unitary matrix of a linear isometry in orthonormal bases, via `LinearIsometryEquiv.toMatrix_mem_unitaryGroup` and `Matrix.det_of_mem_unitary`. The supporting matrix lemma is moved from `Adjoint.lean` to `PiL2.lean`, where it no longer depends on adjoints. t-analysis new-contributor LLM-generated 36/10 Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean 2 7 ['github-actions', 'grunweg', 'jayscambler', 'wwylele'] nobody
0-3308
55 minutes ago
0-8541
2 hours ago
0-27848
7 hours
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 depends on `Option Q(PartialOrder $α)` instead of `Q(PartialOrder $α)`, and the constructors `Strictness.positive`/`Strictness.nonnegative` now have their `Q(PartialOrder $α)` typeclass arguments. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-meta 661/375 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/Interval/Basic.lean,Mathlib/Algebra/Order/Module/Field.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/Order.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.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/Factorial/DoubleFactorial.lean,Mathlib/Data/Nat/Totient.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean,Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/NumberField.lean,Mathlib/NumberTheory/Height/Projectivization.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/NumberTheory/SelbergSieve.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,MathlibTest/positivity.lean 54 76 ['HugLycan', 'JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster', 'leanprover-radar', 'mathlib-merge-conflicts'] dwrensha
assignee:dwrensha
0-2490
41 minutes ago
4-70202
4 days ago
47-25158
47 days
38534 AlexeyMilovanov
author:AlexeyMilovanov
refactor(Computability): bundle PFun into a structure with FunLike instance This PR refactors `PFun` from `def PFun α β := α → Part β` to a structure with a `FunLike` instance. [Discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Fix.20for.20fun_prop.20on.20PFun.20.28context.3A.20Computability.20Theory.29) ### Core Architectural Changes * **Structure Transition:** `PFun` is now a structure with a single field `toFun : α → Part β`. Raw lambdas are now explicitly packed using `PFun.mk` or `PFun.lift`. * **API Alignment:** Added the `FunLike (α →. β) α (Part β)` instance and `initialize_simps_projections`. Replaced direct `funext` usage with `DFunLike.ext`. Added comprehensive `@[simp]` lemmas for the structure (`mk_apply`, `coe_mk`, `toFun_eq_coe`, `lift_apply`). * **New Helpers:** Introduced `PFun.const` and `PFun.empty` to reduce boilerplate. Updated the `Inhabited` instance to use `PFun.empty` and added the `default_eq_empty` simp lemma. * **Renaming:** Renamed `Nat.Partrec.some` to `Nat.Partrec.id` (as it now represents `PFun.id ℕ`), and `const_part_some` to `const_some` for consistency. ### API & Breaking Changes * **Loss of Defeq:** `PFun` is no longer definitionally equal to a raw function. Basic lemmas (like `PFun.res_univ`) now require explicit extensionality (`ext x y; rfl`). * **`prodLift_fst_comp_snd_comp`:** Rewrote the LHS using explicit `PFun.mk` wrappers. This resolves a `simpNF` linter failure caused by the new `comp_lift` simp lemma. * **Return Type Changes:** Several core computability definitions (`Nat.Partrec.of_eq_tot`, `StateTransition.eval`) now strictly return or pattern-match on the new structure, breaking implicit coercions. ### Downstream Impact The refactor heavily impacts Computability Theory and Category Theory (`Category/PartialFun.lean`). The strict structure boundary breaks definitional equality, meaning tactics like `simp` and `grind` can no longer "see through" the function automatically. As a result, several proofs (e.g., `fix_aux`, `ppred`, `mem_eval`, and `unitIso`) grew in size, requiring explicit `ext` + `simp` breakdowns. ### Affected Files * **Core:** `Mathlib/Data/PFun.lean` * **Computability:** `Partrec`, `PartrecBasis`, `PartrecCode`, `RE`, `RecursiveIn`, `Ackermann`, `Halting`, `StateTransition`, `TuringDegree`, `TuringMachine/Config` *(Successfully removed the `set_option linter.flexible false` hack)* * **Category Theory:** `Category/PartialFun.lean` *(Successfully removed the `respectTransparency false` hack)* * **Other:** `Data/Finset/PImage.lean`, `NumberTheory/Dioph.lean` ### Note on LLM usage The core `PFun` change caused numerous downstream errors. I initially used an LLM to help draft fixes for these files. Afterwards, I spent a significant amount of time manually correcting and modifying all of the generated changes. new-contributor t-computability 1172/758 Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/Ackermann.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecBasis.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RE.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TuringDegree.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Data/Finset/PImage.lean,Mathlib/Data/PFun.lean,Mathlib/NumberTheory/Dioph.lean 14 7 ['AlexeyMilovanov', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib-merge-conflicts'] nobody
0-1973
32 minutes ago
0-1973
30 minutes ago
5-36931
5 days
39217 grunweg
author:grunweg
feat: `locallyIntegrableOn_smul_iff` From Sobolev spaces. Written by (some unspecified subset of) Floris, Filippo and me. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 42/0 Mathlib/MeasureTheory/Function/LocallyIntegrable.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean 2 7 ['github-actions', 'grunweg'] ADedecker
assignee:ADedecker
0-1492
24 minutes ago
0-4350
1 hour ago
0-4446
1 hour
39193 MichaelStollBayreuth
author:MichaelStollBayreuth
feat(NumberTheory/Height/Northcot): add instance Following up on #39215, this re-adds the module Mathlib.NumberTheory.Height.Northcott and adds a height-specific Northcott instance there (we anticipate adding more in the future; see the TODO). --- - [ ] depends on: #39215 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 42/0 Mathlib.lean,Mathlib/NumberTheory/Height/Northcott.lean 2 4 ['MichaelStollBayreuth', 'Ruben-VandeVelde', 'github-actions', 'mathlib-dependent-issues'] nobody
0-855
14 minutes ago
0-1831
27 minutes ago
0-21520
5 hours

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
29744 espottesmith
author:espottesmith
feat(Combinatorics): define directed hypergraphs This PR defines directed hypergraphs: ``` @[ext] structure DiHypergraph (α : Type*) where /-- The vertex set -/ vertexSet : Set α /-- The edge set -/ edgeSet : Set ((Set α) × (Set α)) /-- Each edge is a pair (s, d), where s ⊆ vertexSet and d ⊆ vertexSet -/ edge_src_dst_isSubset_vertexSet' : ∀ ⦃e⦄, e ∈ edgeSet → e.1 ⊆ vertexSet ∧ e.2 ⊆ vertexSet ``` Additional definitions: - tail/head stars and negative/positive stars - some special cases (B-Graph, F-Graph, BF-Graph, and what I'm calling a "non-endless" dihypergraph, where neither the source/tail nor the destination/head are empty) - Vertex and (hyper)edge adjacency - isolated vertices - empty and nonempty dihypergraphs The design employed here is based off of #28613, but this PR does not depend on that one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 391/0 Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean 2 2 ['github-actions', 'mathlib4-merge-conflict-bot'] YaelDillies
assignee:YaelDillies
154-24886
5 months ago
38-36529
38 days ago
96-23001
96 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 26 ['Maldooor', 'github-actions', 'lua-vr', 'mcdoll', 'samueloettl'] mcdoll
assignee:mcdoll
74-67131
2 months ago
12-20093
12 days ago
78-18451
78 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/Algebra/BigOperators/Finprod.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean 3 200 ['Rida-Hamadani', 'github-actions', 'grunweg', 'idontgetoutmuch'] fpvandoorn
assignee:fpvandoorn
71-13180
2 months ago
22-20293
22 days ago
67-26898
67 days
35504 JoaBjo
author:JoaBjo
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property Add the main analytic results for the exponential distribution: - moment-generating function `mgf id (expMeasure r) t = r / (r - t)` for `t < r` - mean `∫ x, x ∂(expMeasure r) = r⁻¹` - variance `Var[id; expMeasure r] = r⁻¹ ^ 2` - `ℒp` membership for all `p` - tail probability `P(X > x) = exp (-(r * x))` - memoryless property `P(X > s + t | X > s) = P(X > t)` The MGF is computed by reducing to the known improper integral `∫ exp(c * x)` on `Ioi`, and integrability is deduced by contradiction from the positive closed-form value. The mean and variance are computed via the Gamma function integral `∫₀^∞ x^(n-1) exp(-r x) dx = Γ(n) / rⁿ`. The memoryless property follows from the exponential identity `exp(-(r(s+t))) = exp(-rt) * exp(-rs)`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 200/0 Mathlib/Probability/Distributions/Exponential.lean 1 6 ['JoaBjo', 'Timeroot', 'github-actions'] kex-y
assignee:kex-y
66-2575
2 months ago
16-30865
16 days ago
32-29684
32 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'] eric-wieser
assignee:eric-wieser
63-55253
2 months ago
75-6599
75 days ago
77-40731
77 days
35316 mkaratarakis
author:mkaratarakis
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 4/5) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory new-contributor large-import 86/0 Mathlib/Analysis/Analytic/Order.lean 1 29 ['MichaelStollBayreuth', 'SnirBroshi', 'github-actions', 'kebekus', 'mathlib-dependent-issues', 'mkaratarakis'] MichaelStollBayreuth
assignee:MichaelStollBayreuth
62-15523
2 months ago
4-72649
4 days ago
28-20043
28 days
32555 ksenono
author:ksenono
feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 127/0 Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean 2 39 ['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] nobody
60-57645
1 month ago
24-16877
24 days ago
123-84712
123 days
28546 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`. Summary of additions: - **Full shift and shift action** - `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type). - Right shift `shift g x` with convention `(shift g x) h = x (h * g)`. - **Cylinders and topology** - `cylinder U x : Set (G → A)` for finite `U : Finset G`. - Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed. - Equality with dependent products: `cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API. - **Patterns, occurrences, and subshifts** - `Pattern A G` with finite `support : Finset G` and `data : support → A`. - `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law. - `forbids F` and `Subshift A G` (closed, shift-invariant subsets). - `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness. - **Language on finite shapes and counting** - `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`. - **Entropy along a shape sequence** - `limsupAtTop` (as an `sInf` of eventual upper bounds). - `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)` for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`). - **Specializations** - `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`. - `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`. Mathematical remarks: - The API is **shape-parametric**: entropy is defined along user-provided finite shapes. - On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss). This PR does not assume amenability; the family of shapes is an explicit input. Motivation: Provide a clean, reusable base for symbolic dynamics on groups in mathlib. Future work: - Add a Følner predicate and prove shape-independence / limit existence on amenable groups. - Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors). - Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch). t-dynamics new-contributor 746/0 Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean 3 187 ['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] urkud
assignee:urkud
60-46797
1 month ago
12-56007
12 days ago
167-6620
167 days
37720 cjrl
author:cjrl
feat(Data/Fintype/Card): existsUnique_notMem_image_of_injective_of_card_succ This pull requests adds a small theorem `existsUnique_notMem_image_of_injective_of_card_succ` to `Mathlib/Data/Fintype/Card` that says given an injective map f : α → β such that β has cardinality one more than α, there exists a unique element of β not in the image of f. This can be viewed as going in the opposite direction of `card_lt_of_injective_of_notMem`. This little fact is needed for our Latin Square PR #36698. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor t-set-theory 15/0 Mathlib/Data/Fintype/Card.lean 1 6 ['IvanRenison', 'cjrl', 'github-actions'] nobody
29-1145
29 days ago
29-1203
29 days ago
34-54900
34 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 17/0 Mathlib/Topology/DerivedSet.lean 1 6 ['NoneMore', 'github-actions', 'plp127', 'vihdzp'] urkud
assignee:urkud
18-66537
18 days ago
41-15193
41 days ago
41-68453
41 days
38114 javgomzar
author:javgomzar
feat(FinitelyPresentedGroup): add finite groups instance Add IsFinitelyPresented instance for finite groups. Co-authored-by: Hang Lu Su , Thomas Browning --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory new-contributor large-import 32/3 Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean 2 32 ['github-actions', 'javgomzar', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536', 'vihdzp'] mattrobball
assignee:mattrobball
17-66531
17 days ago
19-72570
19 days ago
22-75957
22 days
38344 robo7179
author:robo7179
feat(SimpleGraph/Coloring/VertexColoring): Matching is 2 colorable --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 51/0 Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean 1 5 ['SnirBroshi', 'github-actions', 'vlad902'] nobody
16-30779
16 days ago
19-84723
19 days ago
19-84955
19 days
37722 SabrinaJewson
author:SabrinaJewson
feat(Order/Cover): intervals equal singletons iff To complement `Set.Icc_eq_singleton_iff`, this introduces: - `Set.Ioc_eq_singleton_iff` - `Set.Ico_eq_singleton_iff` - `Set.Ioi_eq_singleton_iff` - `Set.Iio_eq_singleton_iff` - `Set.Ioo_eq_singleton_iff` Unforunately because of the order of the ands, the last cannot be made self-dual. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 39/0 Mathlib/Order/Cover.lean 1 3 ['github-actions', 'mathlib-merge-conflicts'] Komyyy and bryangingechen
assignee:bryangingechen assignee:Komyyy
14-66425
14 days ago
32-68864
32 days ago
34-55472
34 days
38027 8e7
author:8e7
feat(Combinatorics/SimpleGraph/Star): define star graphs Add a new definition `starGraph` and several key lemmas. Star graphs are a trivial class of tree, often used in constructive proofs regarding trees. An example use case is shown in #38334. --- All lemmas are hand written first, then golfed with the help of Claude Code. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 85/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean 2 39 ['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] nobody
13-58772
13 days ago
25-58718
25 days ago
27-56829
27 days
38364 openendings
author:openendings
feat: create Order/DirectedCompletePartialOrder/Defs.lean Define DirectedCompletePartialOrder and its interaction with iSup and sSup. --- A DirectedCompletePartialOrder is equivalently: - a partial order with LUBs of nonempty directed sets; - what happens when you remove ⊥ from a CompletePartialOrder; or - a ConditionallyCompletePartialOrder in which every directed set is BddAbove. Like CPOs, DCPOs are commonly studied in denotational semantics. Potential applications: - [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/590070848) -- defining infinite sums in an DCPO-enriched `AddCommMonoidWithTop` such as `ENat` or `ENNReal`. - [#Is there code for X? > Scott Induction](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Scott.20Induction/with/590112858) -- fixpoint theorems similar to `OmegaCompletePartialOrder`, generalised to arbitrary cardinalities. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 123/0 Mathlib.lean,Mathlib/Order/DirectedCompletePartialOrder/Defs.lean,docs/references.bib 3 4 ['SnirBroshi', 'github-actions', 'openendings'] nobody
12-75035
12 days ago
18-65155
18 days ago
19-39827
19 days
38551 TTony2019
author:TTony2019
feat(Analysis/Convex/Intrinsic): add `affineSpan_prod_eq` and `intrinsicInterior_prod_eq` ### Summary We prove that the affine span of a product set equals the product of the affine spans, and that the intrinsic interior of a product set equals the product of the intrinsic interiors. - `affineSpan_prod_eq`: for `s : Set P₁` and `t : Set P₂`, `affineSpan k (s ×ˢ t) = (affineSpan k s) ×ˢ (affineSpan k t)` as sets. - `intrinsicInterior_prod_eq`: for `s : Set P` and `t : Set Q`, `intrinsicInterior 𝕜 (s ×ˢ t) = intrinsicInterior 𝕜 s ×ˢ intrinsicInterior 𝕜 t`. These two theorems are added to `Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean` and `Mathlib/Analysis/Convex/Intrinsic.lean`. ### Collaboration Co-authored-by: @imathwy new-contributor 144/0 Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean,Mathlib/LinearAlgebra/Prod.lean 5 21 ['TTony2019', 'github-actions', 'wwylele'] nobody
12-61439
12 days ago
12-61503
12 days ago
15-5222
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'] fpvandoorn
assignee:fpvandoorn
11-66277
11 days ago
57-51362
57 days ago
57-51208
57 days
37682 SabrinaJewson
author:SabrinaJewson
refactor(Order/OrdContinuous): redefine left and right order continuity to not require preserving ⊥/⊤ `LeftOrdContinuous` currently requires that `f ⊥ = ⊥`, but this means that many functions that are perhaps intuitively left-continuous (like `f x = x + 1` on `ℝ≥0`) are not. In particular, this change means that functions between conditionally complete lattices are `LeftOrdContinuous` iff they are monotone and topologically left continuous (see `MonotoneOn.map_csSup_of_continuousWithinAt` for the reverse direction). If one wants the concept that existed before, one can either accept the `f ⊥ = ⊥` hypothesis separately or, if the function is between complete lattices, use the left side of a `GaloisConnection` (which is equivalent, although I think this is not yet in Mathlib). This removes the definitional equality of the type in favour of a structure. Since most of the time users will be working with the `sSup` versions and not with `IsLUB`, I think this is justified. As a consequence, this removes the definitional equality between `LeftOrdContinuous` and `RightOrdContinuous` of the dual – the latter could be redefined to re-add this, but we do have conversion functions. `LeftOrdContinuous.continuousWithinAt_Iic` is rewritten to accomodate these changes; the superfluous `DenselyOrdered` assumption is also removed. [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/LeftOrdContinuous.20requires.20f.28.E2.8A.A5.29.20.3D.20.E2.8A.A5/near/582932491) --- - [x] depends on: #37735 - [x] depends on: #37772 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-order 52/38 Mathlib/Order/OrdContinuous.lean,Mathlib/Order/SemiconjSup.lean,Mathlib/Topology/Order/Basic.lean 3 10 ['SabrinaJewson', 'astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] bryangingechen
assignee:bryangingechen
11-66271
11 days ago
31-75169
31 days ago
33-72124
33 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 11/0 Mathlib/Combinatorics/SimpleGraph/Hasse.lean 1 21 ['Rida-Hamadani', 'SnirBroshi', 'ertwro', 'github-actions', 'vlad902'] nobody
11-58205
11 days ago
22-55690
22 days ago
30-65316
30 days
38026 mrdouglasny
author:mrdouglasny
feat(Analysis/Calculus): define absolutely monotone functions ## Summary - Define `AbsolutelyMonotoneOn f s` for functions `f : ℝ → ℝ` that are smooth on `s` with all iterated derivatives within `s` nonneg - Prove closure under `add`, `smul`, `mul` - Show `exp`, `cosh`, constants, and powers are absolutely monotone on appropriate domains This is the first part of a split of #37879. Follow-up PRs will add: - Bernstein backward direction (nonneg coefficients → absolutely monotone) - Bernstein forward direction (absolutely monotone → analytic at 0) - Matrix applications (Schur product theorem for power series, entrywise exp) ## Test plan - [ ] CI passes (build + lint) - [ ] Verify `AbsolutelyMonotoneOn` structure and examples type-check 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.6 (1M context) t-analysis new-contributor LLM-generated 123/0 Mathlib.lean,Mathlib/Analysis/Calculus/AbsolutelyMonotone.lean,docs/references.bib 3 28 ['ADedecker', 'github-actions', 'j-loreaux', 'mrdouglasny', 'sgouezel', 'vihdzp', 'wwylele'] sgouezel
assignee:sgouezel
11-14443
11 days ago
11-14487
11 days ago
19-35469
19 days
37997 emlis42
author:emlis42
feat(Algebra/ContinuedFractions): generalize determinant formula to GenContFract Let $g$ be a `GenContFract K`. In this PR I generalize the determinant formula for continued fractions from the simple continued fraction case $$A_n B_{n+1} - B_n A_{n+1} = (-1)^n$$ to the generalized continued fraction product formula $$A_n B_{n+1} - B_n A_{n+1} = (-a_0) (-a_1) \dots (-a_n)$$ - The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API. - The use of `0` as the default partial numerator in `(g.partNums.get? i).getD 0` allows product formulation that remains valid when the fraction is terminated. t-algebra new-contributor large-import
label:t-algebra$
53/28 Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean 2 13 ['emlis42', 'github-actions', 'themathqueen', 'vihdzp'] ocfnash
assignee:ocfnash
11-270
11 days ago
14-14291
14 days ago
28-26354
28 days
38420 eliasjudin
author:eliasjudin
feat(Algebra/MvPolynomial): add coefficient lemma for uniqueAlgEquiv Adds `MvPolynomial.coeff_uniqueAlgEquiv` and `MvPolynomial.coeff_uniqueAlgEquiv_symm`, identifying coefficients under `MvPolynomial.uniqueAlgEquiv` in both directions. new-contributor t-algebra
label:t-algebra$
19/0 Mathlib/Algebra/MvPolynomial/Equiv.lean 1 5 ['eliasjudin', 'eric-wieser', 'github-actions'] kim-em
assignee:kim-em
9-81167
9 days ago
17-36619
17 days ago
18-10574
18 days
38316 tannerduve
author:tannerduve
feat(Order/OmegaCompletePartialOrder): least fixed point and Scott induction Adds `ContinuousHom.lfp` for endomorphisms on an ωCPO with `⊥`, as the `ωSup` of the iterate chain from `⊥`, together with `map_lfp`, `isFixedPt_lfp`, `lfp_le_fixed`, `isLeast_lfp`, and the Scott induction theorem `lfp_induction` (specialized from a more general seed-based `ωSup_iterate_induction`). For `Part.fix`, adds: * `Part.exists_mem_approx_of_mem_fix`: if `y ∈ Part.fix g x`, some finite approximation of `g` already contains `y`. * `Part.Fix.approx_eq_iterate_bot` and `Part.Fix.approxChain_eq_iterateChain`: bridges between `Fix.approx`/`approxChain` and `f^[n] ⊥`/`iterateChain`. * `Part.fix_eq_lfp`: `Part.fix g = ContinuousHom.lfp (.ofFun g hc)` when `g` is ω-Scott continuous. * `Part.fix_scott_induction`: Scott induction specialized to `Part.fix`. * `Part.fix_induction_mem`: membership induction on `Part.fix`, derived from `fix_scott_induction`. new-contributor 114/0 Mathlib/Control/LawfulFix.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,docs/references.bib 3 2 ['github-actions'] nobody
9-5115
9 days ago
20-67617
20 days ago
20-67989
20 days
38582 dennj
author:dennj
feat(LinearAlgebra/Matrix): add Hadamard matrices Introduce `Matrix.IsHadamard` over a general `Ring R`, with the basic theory: - `IsHadamard` and `IsComplexHadamard` predicates (Definitions 2.3.1 and 2.7.1 of de Launey–Flannery, *Algebraic Design Theory*). - `IsHadamard.det_sq`: the Hadamard determinant identity `(det A)² = n^n`. - `IsHadamard.det_ne_zero`: over an integral domain of characteristic zero. - `IsHadamard.transpose`: `Aᵀ` is Hadamard whenever `A` is (Theorem 2.3.6), proved over `[CommRing R] [IsDomain R] [CharZero R]` via the adjugate. - `IsHadamard.card_eq_sq_of_const_row_sum`: a Hadamard matrix with constant row sum `s` has order `s²` (slightly stronger than Theorem 2.3.7: the constant-column-sum hypothesis is implied by orthogonality). - `IsHadamard.kronecker`: the Sylvester (Kronecker product) construction. - `IsHadamard.four_dvd_card`: order of a Hadamard matrix of order > 2 is divisible by 4. `Matrix.mul_eq_smul_one_symm`: if `M * N = c • 1` and `det M ≠ 0` over an integral domain, then `N * M = c • 1`. Used here for the transpose proof, but generally useful, analogous to how `mul_eq_one_comm` works over stably finite rings, but covers the integral-domain case (e.g. `ℤ`, `ℤ[X]`) where matrix inverses don't exist. ## References Adds the de Launey–Flannery bibliography entry, cited from the new file. Human-made PR with LLM used for proof golfing and documentation t-algebra new-contributor
label:t-algebra$
155/0 Mathlib.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/LinearAlgebra/Matrix/HadamardMatrix.lean,docs/references.bib 5 14 ['JJYYY-JJY', 'dennj', 'eric-wieser', 'github-actions', 'themathqueen'] nobody
7-57749
7 days ago
14-16227
14 days ago
14-16073
14 days
38871 0xTerencePrime
author:0xTerencePrime
feat(Combinatorics/SimpleGraph): add parity lemmas for outer and inner vertices Adds three lemmas to `SimpleGraph.DegreeSum`: - `sum_degrees_option_zmod_two`: the handshaking lemma for `Option I` over ZMod 2 - `degree_none_zmod_two_eq_sum`: simp-normal form of the above - `card_degree_one_option_eq_outer_zmod_two`: under degree bound ≤ 2, count of degree-1 inner vertices equals outer vertex degree mod 2 t-combinatorics new-contributor 65/3 Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean 1 6 ['0xTerencePrime', 'SnirBroshi', 'github-actions'] nobody
7-54600
7 days ago
8-24828
8 days ago
8-24674
8 days
38897 0xTerencePrime
author:0xTerencePrime
feat(Combinatorics/SetFamily): formalize 1D Sperner's Lemma parity Formalizes the 1-dimensional Sperner's Lemma (parity version): given a coloring of the `n + 1` vertices of a subdivided line segment with two colors (`ZMod 2`), if the two endpoints have different colors, then the number of color-changing edges is odd. This is **distinct** from `IsAntichain.sperner` in `SetFamily.LYM`, which concerns antichains in a power set. This file formalizes the topological/combinatorial parity statement used as the base case in higher-dimensional Sperner arguments. ## Key declarations - `SpernerColoring`: type-safe coloring via `Fin (n + 1) → ZMod 2` - `edgeDiff`: color difference on adjacent vertices, computed in `ZMod 2` - `totalDiff`: telescoping sum of all edge differences - `diffEdges`: the `Finset` of bichromatic (color-changing) edges - `sperner_1d`: main theorem — `Odd (diffEdges c).card` ## Design notes - Using `Fin (n + 1) → ZMod 2` instead of `ℕ → ZMod 2` makes boundary conditions unrepresentable at the type level, eliminating out-of-bounds cases entirely. - The proof reduces to a telescoping sum in `ZMod 2`, using `CharTwo.add_self_eq_zero` to cancel all interior vertices, avoiding parity case splits. This is intended as the 1D base case, the approach generalizes to higher-dimensional Sperner's Lemma in future work. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 133/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/Sperner1D.lean 2 3 ['github-actions', 'grunweg'] nobody
7-45834
7 days ago
7-55984
7 days ago
7-55830
7 days
38049 WilliamCoram
author:WilliamCoram
feat: lemmas towards showing gaussNorm on MvPowerSeries is an absolute value We prove lemmas: ``gaussNorm_mul_le`` and ``gaussNorm_le_mul`` which will allow us to show it is an absolute value on Mv restricted power series. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 144/1 Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean 1 4 ['WilliamCoram', 'github-actions'] alreadydone
assignee:alreadydone
6-66439
6 days ago
27-9384
27 days ago
27-9230
27 days
38895 emlis42
author:emlis42
chore(Algebra/ContinuedFractions): golf This PR simplifies some proofs in `Algebra/ContinuedFractions` t-algebra new-contributor
label:t-algebra$
39/63 Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean,Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean 7 2 ['github-actions'] nobody
6-64950
6 days ago
6-70161
6 days ago
7-58310
7 days
37714 mortarsanjaya
author:mortarsanjaya
feat(Algebra/Order/Floor/Defs): `Nat.cast` is strictly monotone in `FloorSemiring` and `FloorRing` As title says, and without the `IsOrderedRing` assumption. Other than that, I removed the `IsOrderedRing` assumption from pretty much all the lemmas in `Algebra/Order/Floor/Defs` that could possibly have this assumption removed, and reduced some `IsStrictOrderedRing` assumptions to `IsOrderedRing` + `Nontrivial`. Due to strict monotonicity, we can also provide `CharZero` instance on `FloorSemiring` and `FloorRing`. Thus we can remove the `NeZero` and `Nontrivial` instances on them. The changes on `/Ring` and `/Semiring` are trivial changes due to some lemmas not requiring an `IsOrderedRing` instance anymore. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
96/39 Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean 5 24 ['dagurtomas', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mortarsanjaya'] eric-wieser
assignee:eric-wieser
6-50744
6 days ago
10-26515
10 days ago
34-25851
34 days
37062 tannerduve
author:tannerduve
feat(Computability): Turing join and semilattice structure on Turing degrees ## Summary - Add `Partrec.kronecker` (equality test) and `Partrec.join` (disjoint union by parity) in `Partrec.lean` - Prove `Nat.RecursiveIn` is closed under computable conditionals (`cond_const`, `cond`) - Show each component reduces to the join (`left_le_join`, `right_le_join`) and the join is the least upper bound (`join_le`) - Establish `SemilatticeSup` instance on `TuringDegree` t-computability new-contributor large-import 311/15 Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean 3 7 ['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'tannerduve'] Komyyy
assignee:Komyyy
6-50652
6 days ago
28-15646
28 days ago
28-77786
28 days
38951 thomaskwaring
author:thomaskwaring
feat(Order/PrimeSeparator): remove unnecessary hypotheses In `mem_ideal_sup_principal`, boundedness and distributivity were unused, and in `prime_ideal_of_disjoint_filter_ideal`, boundedness was only used to produce an element of the filter `F`, which is already nonempty by definition. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 9/19 Mathlib/Order/PrimeSeparator.lean 1 2 ['github-actions'] nobody
6-38525
6 days ago
6-38612
6 days ago
6-38458
6 days
37584 kennethgoodman
author:kennethgoodman
feat(Data/Nat/Fib): formalize Lamé's theorem ## Summary Formalize [Lamé's theorem](https://en.wikipedia.org/wiki/Lam%C3%A9%27s_theorem) (1844), the founding result of computational complexity theory. **Lamé's Theorem:** If the Euclidean algorithm on inputs `(a, b)` with `b ≤ a` takes `n + 1` division steps, then `b ≥ fib(n + 1)` and `a ≥ fib(n + 2)`. ### New definitions - `Nat.euclidSteps`: counts the number of division steps in the Euclidean algorithm on natural number inputs. ### New theorems - `Nat.fib_le_of_euclidSteps`: the main Lamé bound — Fibonacci lower bound on inputs given a step count. - `Nat.euclidSteps_le_of_lt_fib`: the contrapositive — step count upper bound given a Fibonacci bound on the smaller input. - `Nat.add_mod_le`: helper lemma that `b + a % b ≤ a` when `b ≤ a` and `0 < b`. ### Proof strategy Induction on `n`, tracking both elements of the pair. The key insight is that each Euclidean step replaces `(a, b)` with `(b, a % b)`, and since `a ≥ b + a % b` (because `a / b ≥ 1`), the Fibonacci recurrence `fib(n+3) = fib(n+2) + fib(n+1)` matches the structure of the algorithm. ### References - Gabriel Lamé, *Note sur la limite du nombre des divisions dans la recherche du plus grand commun diviseur entre deux nombres entiers*, Comptes rendus de l'Académie des sciences, 1844. --- ### AI usage disclosure Per the [Mathlib AI guidelines](https://leanprover-community.github.io/contribute/index.html#use-of-ai): Claude Code (Claude Opus 4.6) was used to assist with writing the Lean 4 proof code, fixing tactic errors, and drafting this PR description. The mathematical proof (induction on step count, tracking both pair elements through the Fibonacci recurrence) was designed by hand and verified on paper before formalization. I have reviewed and understand every line of the resulting Lean code and can explain all proof steps. --- - [x] builds cleanly (`lake build Mathlib.Data.Nat.Fib.Lame`) - [x] no `sorry` - [x] lines ≤ 100 characters, no trailing whitespace - [x] `autoImplicit false` - [x] docstrings on all public declarations new-contributor LLM-generated t-data 121/0 Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml 5 24 ['euprunin', 'github-actions', 'kennethgoodman', 'vihdzp', 'wwylele'] TwoFX
assignee:TwoFX
5-66460
5 days ago
30-23661
30 days ago
37-65872
37 days
37707 MavenRain
author:MavenRain
feat(Combinatorics/SimpleGraph): add IsMaximalClique/IsMaximalIndepSet, refactor IsMaximum* to MaximalFor Addresses #34962 new-contributor t-combinatorics 44/31 Mathlib/Combinatorics/SimpleGraph/Clique.lean 1 4 ['MavenRain', 'SnirBroshi', 'github-actions'] nobody
5-59425
5 days ago
5-60511
5 days ago
5-61997
5 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 50/0 Mathlib/RingTheory/Localization/Away/Basic.lean 1 8 ['chrisflav', 'github-actions', 'hommmmm'] chrisflav
assignee:chrisflav
5-44656
5 days ago
5-44656
5 days ago
28-28643
28 days
37718 SabrinaJewson
author:SabrinaJewson
feat(Order): add conversions from `Std` order typeclasses to Mathlib ones `{Preorder, PartialOrder, LinearOrder}.ofStd` exist to facilitate convenient translation from `Std` order typeclasses to Mathlib ones. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 366/0 Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean 3 2 ['github-actions'] nobody
4-67145
4 days ago
34-70056
34 days ago
34-70395
34 days
38014 cduenasnavarro
author:cduenasnavarro
feat(InformationTheory): linear codes over finite fields and minimum distance properties Define linear codes over a finite field `F` as finite-dimensional subspaces of `Fin n → F`, together with their minimum Hamming distance. Main definitions: * `LinearCode` * `minDist` * `LinearCodeWithDist` * `hammingSphere` Main results: * `minDist_eq_sInf_pairwiseDist`: characterisation of the minimum distance via pairwise distances * `disjoint_spheres`: Hamming spheres of radius `t` around distinct codewords are disjoint if `2 * t < d` Pending: * Choosing an adequate book reference --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability new-contributor 143/0 Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean 2 37 ['cduenasnavarro', 'github-actions', 'linesthatinterlace', 'rkirov', 'vihdzp', 'wwylele'] EtienneC30
assignee:EtienneC30
4-66245
4 days ago
27-85086
27 days ago
27-85695
27 days
38310 ZRTMRH
author:ZRTMRH
feat(Combinatorics/Quiver/Schreier): word evaluation and reachability Adds word evaluation and reachability results to the Schreier graph API. * `SchreierGraph.evalWord` : evaluates a word `List (S × Bool)` as an element of the ambient group, where `(s, true)` contributes `ι s` and `(s, false)` contributes `(ι s)⁻¹`. * `SchreierGraph.evalWord_eq_lift` : agreement with `FreeGroup.lift`. * `SchreierGraph.evalWord_mem_closure` : every word evaluates into the subgroup generated by `ι`. * `SchreierGraph.pathFromWord` : a Bool-tagged word yields a path in `Symmetrify (SchreierGraph V ι)` from `x` to `evalWord ι w • x`. * `SchreierGraph.reachable_iff` : two vertices are connected by a path in the symmetrification iff some element of the subgroup closure carries one to the other. Follow-up to #36320. This PR was written with AI assistance (Claude). The code has been reviewed by the author. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics large-import LLM-generated 157/0 Mathlib/Combinatorics/Quiver/Schreier.lean 1 2 ['github-actions'] nobody
4-52540
4 days ago
20-86014
20 days ago
20-85860
20 days
39023 TBUGTB
author:TBUGTB
feat(Algebra/Order): API lemmas on floor and abs Co-authored-by: Etienne Marion @EtienneC30 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra brownian new-contributor
label:t-algebra$
9/0 Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/Ring/Abs.lean 2 3 ['TBUGTB', 'github-actions'] nobody
4-34266
4 days ago
4-37455
4 days ago
4-37301
4 days
36832 KryptosAI
author:KryptosAI
chore(Data/Finset/Card): rename `pred_card_le_card_erase` to `sub_one_card_le_card_erase` ## Summary The name `pred_card_le_card_erase` suggests `Nat.pred` but the statement uses `- 1` (i.e., `Nat.sub 1`). Rename to `sub_one_card_le_card_erase` to match the actual statement. A deprecated alias is added for backwards compatibility. ### Files changed - `Mathlib/Data/Finset/Card.lean` — definition renamed + deprecated alias - `Mathlib/Data/Finset/Powerset.lean` — reference updated - `Mathlib/Combinatorics/Additive/SubsetSum.lean` — reference updated - `Mathlib/Algebra/Polynomial/EraseLead.lean` — reference updated Addresses the `Finset.pred_card_le_card_erase` item in #21584. ## AI disclosure I used Claude Code to explore the codebase (finding all references to rename) and to draft the PR description. I reviewed and understand all changes — these are straightforward renames with a deprecated alias. new-contributor 22/15 Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Combinatorics/SetFamily/Shadow.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Set/Card.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/RingTheory/Ideal/Operations.lean 9 8 ['KryptosAI', 'Multramate', 'dagurtomas', 'github-actions', 'mattrobball', 'ooovi'] nobody
4-21286
4 days ago
38-63326
38 days ago
52-73500
52 days
38527 archiebrowne
author:archiebrowne
feat(Analysis/Calculus): continuously differentiable actions define the class `ContDiffSMul 𝕜 M X n` which asserts that the map `(c, x) ↦ c • x` is `n` times continuously differentiable on `M × X`. Many of the results are the C^n analogues of those in the module Mathlib.Topology.Algebra.MulAction. t-differential-geometry new-contributor 317/24 Mathlib.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/ContDiffMulAction.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean 6 11 ['archiebrowne', 'github-actions', 'grunweg', 'peabrainiac'] PatrickMassot and grunweg
assignee:grunweg assignee:PatrickMassot
3-82927
3 days ago
3-83002
3 days ago
11-68757
11 days
37928 AlexeyMilovanov
author:AlexeyMilovanov
refactor(Computability.Encoding): unbundle Γ and remove FinEncoding This PR unbundles the alphabet `Γ` from the `Encoding` structure and completely removes `FinEncoding`. `Encoding`: The alphabet `Γ` is now an explicit parameter: `structure Encoding (α : Type u) (Γ : Type v)`. `FinEncoding`: Removed. Finiteness is now handled via standard typeclasses (e.g., `[Fintype Γ] (e : Encoding α Γ)`). Combinators: Functions like `finEncodingPair` are simplified to `encodingPair`, dropping the `fin` prefix and `[Fintype]` requirements where no longer needed. Downstream: Mechanically updated `Mathlib.Computability` and `Mathlib.ModelTheory` to pass the explicit `Γ` and use `[Fintype Γ]` where `FinEncoding` was previously required. new-contributor 87/67 Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean 2 7 ['AlexeyMilovanov', 'dagurtomas', 'github-actions', 'vihdzp'] nobody
3-81706
3 days ago
4-35311
4 days ago
30-15013
30 days
37527 bryanboehnke
author:bryanboehnke
feat(LocalRing/Etale): Finite étale extensions of local rings are monogenic Formalization of Lemma 3.2 from https://arxiv.org/abs/2503.07846: Given a finite extension of local rings R -> S, if the extension is étale, then there exists β ∈ S such that R[β] = S. Furthermore, if f(z) ∈ R[z] is the minimal polynomial of β, then f′(β) is a unit in S. This file also includes some relevant intermediate results used in the formalization of the proof of Lemma 3.1 from the same paper. Co-authored-by: George Peykanu Co-authored-by: Bianca Viray Co-authored-by: Grant Yang --- - [ ] depends on: #36421 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 148/0 Mathlib.lean,Mathlib/RingTheory/LocalRing/Etale.lean 2 5 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] riccardobrasca
assignee:riccardobrasca
3-66192
3 days ago
21-66464
21 days ago
22-887
22 days
39036 ajhendel
author:ajhendel
doc: fix Lean 3 namespace in DiophantineApproximation The implementation notes section references the Lean 3 namespace \`real.contfrac_legendre\`, but this was renamed to \`Real.ContfracLegendre\` during the port. This fixes the reference. --- Co-Authored-By: Claude Opus 4.6 t-number-theory new-contributor maintainer-merge 1/1 Mathlib/NumberTheory/DiophantineApproximation/Basic.lean 1 4 ['github-actions', 'tb65536'] MichaelStollBayreuth
assignee:MichaelStollBayreuth
3-66179
3 days ago
4-20007
4 days ago
4-19853
4 days
38223 Deicyde
author:Deicyde
feat(Geometry/Manifold): add `MfldCat`, the category of `C^n` manifolds We define `MfldCat 𝕜 n`: the category of `C^n` manifolds over a field `𝕜`, following the pattern of `TopCat` in `Mathlib.Topology.Category.TopCat.Basic`. We also implement `HasForget₂ (MfldCat 𝕜 n) TopCat`—the forgetful functor into the category of topological spaces. For more discussion see the Zulip thread: [#PR reviews > #38223 The Category of C^n Manifolds](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2338223.20The.20Category.20of.20C.5En.20Manifolds/with/587038032) Also added: `ContMDiffMap.id_apply`, `.coe_id` and `.coe_comp` which are comparable to `ContinuousMap` API. ### Future work - ✅ Define a Monoidal structure via product manifolds, analogous to `Manifold.Topology.Category.TopCat.Monoidal` #38560 - ✅ Define the tangent functor: `M ↦ TM`, `F ↦ F.tangentMap` from `MfldCat (n+1) 𝕜` to `MfldCat n 𝕜` #38270 - Functor `FGModuleCat 𝕜 ⥤ MfldCat 𝕜 n` sending a finite-dimensional `𝕜`-vector space to the manifold modeled on itself. Left as `TODO`. - Define `FGModuleCat 𝕜` as an enriched category over `MfldCat n 𝕜`. Then _smooth functors_ can be realized as endofunctors on the enriched category. This is the main motivation for this construction. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry new-contributor t-category-theory 224/0 Mathlib.lean,Mathlib/Geometry/Manifold/Category/MfldCat/Basic.lean,Mathlib/Geometry/Manifold/ContMDiffMap.lean 3 57 ['Deicyde', 'chrisflav', 'dagurtomas', 'github-actions', 'idontgetoutmuch', 'peabrainiac'] kim-em
assignee:kim-em
2-81897
2 days ago
2-85321
2 days ago
16-48883
16 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 38/0 Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean 2 16 ['IvanRenison', 'cjrl', 'ghseeli', 'github-actions', 'j-loreaux', 'vlad902'] b-mehta
assignee:b-mehta
2-66292
2 days ago
29-388
29 days ago
44-57433
44 days
38309 ntapiam
author:ntapiam
feat(Algebra/NonAssoc): dendriform algebras Define dendriform semirings and algebras --- This PR introduces dendriform structures such as dendriform semirings and algebras, and proves basic facts linking them to their pre-Lie counterparts. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
270/0 Mathlib.lean,Mathlib/Algebra/NonAssoc/Dendriform/Defs.lean,docs/references.bib 3 5 ['dagurtomas', 'github-actions', 'ntapiam'] ocfnash
assignee:ocfnash
2-66282
2 days ago
3-32060
3 days ago
18-37203
18 days
38343 mortarsanjaya
author:mortarsanjaya
chore(Data/Nat/Cast/Order/Ring): move two Nat lemmas to Data/Nat/Basic These two lemmas have no correlation with `Nat.cast`, and the proof can be golfed to fit `Data/Nat/Basic`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 23/27 Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean 2 6 ['dagurtomas', 'github-actions', 'mortarsanjaya'] joneugster
assignee:joneugster
2-66277
2 days ago
20-3429
20 days ago
20-3275
20 days
38373 Nicola9Falciola
author:Nicola9Falciola
feat (Algebra/FreeAbelianGroup /Finsupp) : The support of non zero element in a freeabeliangroup is non empty Add the lemma that for a nonzero a : FreeAbelianGroup X the support of it is non empty. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
3/0 Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean 1 7 ['Nicola9Falciola', 'SnirBroshi', 'github-actions'] ocfnash
assignee:ocfnash
2-66274
2 days ago
18-22017
18 days ago
19-10304
19 days
39090 EngelsVon
author:EngelsVon
feat(Analysis/Calculus/DifferentialForm): Stokes theorem on boxes for differential forms ## Summary This PR adds the first instances of the **generalized Stokes theorem for differential forms** in Mathlib, building on the existing `extDeriv` API from `Analysis.Calculus.DifferentialForm.Basic` and the divergence theorem from `MeasureTheory.Integral.DivergenceTheorem`. ### New files #### `Mathlib.Analysis.Calculus.DifferentialForm.BoxStokes` (310 lines, **fully proved**) Stokes theorem on rectangular boxes `[a, b] ⊂ ℝ^(m+1)` for differential forms. **Key definitions:** - `detTopForm`: the determinant as a continuous alternating top-form - `topFormDensity` / `topFormIntegral`: density and integral of top-form fields - `boxFaceComponent ω i`: the signed `i`-th face component of an `m`-form (`(-1)^i · ω(ê_i)`) - `boxBoundaryIntegral ω a b`: the signed boundary integral over `∂[a,b]` **Main theorem:** - `box_stokes_of_contDiff`: `∫_{[a,b]} dω = ∫_{∂[a,b]} ω` for `C¹` `m`-forms on `ℝ^(m+1)` The proof proceeds by: 1. Showing `topFormDensity (extDeriv ω) = divergence of (boxFaceComponent ω ·)` 2. Applying Mathlib's `integral_divergence_of_hasFDerivAt_off_countable'` #### `Mathlib.Analysis.Calculus.DifferentialForm.HalfSpaceStokes` (224 lines, partially proved) Stokes theorem on the upper half-space `{x : x_m ≥ 0}` with infrastructure. **Key definitions:** - `HalfSpace m`: `{x : Fin (m+1) → ℝ | x (lastCoord m) ≥ 0}` - `boundaryIntegral m ω`: integral of `ω` over `∂ℝ^{m+1}_+` **Key lemmas (proved):** - `norm_insertNth_ge_norm`: `‖x‖ ≤ ‖Fin.insertNth i v x‖` for sup norm - `formField_vanishes_at_insertNth_norm`: vanishing of form fields at large norms **Main theorem (statement, proof TODO):** - `halfSpace_stokes`: `∫_{ℝ^{m+1}_+} dω = ∫_{∂ℝ^{m+1}_+} ω` ### Relationship to existing Mathlib - `MeasureTheory.Integral.DivergenceTheorem` proves the divergence theorem for vector fields (`ℝⁿ⁺¹ → Eⁿ⁺¹`). This PR translates it into the language of differential forms (`E → E [⋀^Fin n]→L[𝕜] F`). - `Analysis.Calculus.DifferentialForm.Basic` defines `extDeriv`. This PR provides the first *integration* results for `extDeriv`. ### Why this belongs in Mathlib 1. **Fills a known gap**: Mathlib has no Stokes-type theorem for differential forms despite having `extDeriv` and the divergence theorem. 2. **Self-contained**: Box Stokes depends only on `extDeriv` API and the divergence theorem. 3. **Useful infrastructure**: `boxFaceComponent`, `topFormDensity`, and `norm_insertNth_ge_norm` are independently useful. ### Future work - Complete `halfSpace_stokes` (requires upstream API for `extDeriv` vanishing at zeros and `Fin.isClosedEmbedding_insertNth`) - Chart-level Stokes via coordinate changes - Partition of unity → manifold Stokes ## Checklist - [x] The formulation of the main theorem is mathematically correct - [x] Proofs follow Mathlib conventions (to the best of our knowledge) - [ ] Code compiles on Mathlib CI (not tested locally due to build time) - [ ] `#lint` passes (not tested locally) t-analysis new-contributor LLM-generated 1246/0 Mathlib.lean,Mathlib/Analysis/Calculus/DifferentialForm/BoxStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/FullSpaceStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/HalfSpaceStokes.lean 4 4 ['EngelsVon', 'SnirBroshi', 'github-actions'] nobody
2-20843
2 days ago
2-22456
2 days ago
2-62022
2 days
38829 AnandGokhale
author:AnandGokhale
feat(Analysis/ODE/Gronwall): added gronwall-bellman inequality Added 2 lemmas and 1 theorem to Analysis.ODE.Gronwall, making progress towards a TODO. Lemma 1: Wrapper for Fundamental Theorem of Calculus Lemma 2: Wrapper for the continuity of an integral on a closed, ordered interval Theorem: Gronwall bellman inequality, as stated with proof in Appendix of Hassan Khalil, Nonlinear control, 3rd edition. t-analysis new-contributor large-import 125/2 Mathlib/Analysis/ODE/Gronwall.lean 1 12 ['AnandGokhale', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-bors'] j-loreaux
assignee:j-loreaux
1-79453
1 day ago
2-79536
2 days ago
4-39932
4 days
37350 aditya-ramabadran
author:aditya-ramabadran
feat(Analysis/Distribution): define canonical maps between Schwartz/test functions, distributions/tempered distributions Defines these canonical maps: (1) continuous linear map from $\mathcal D$ to $\mathcal S$, and (2) induced (linear) restriction map from $\mathcal S'$ to $\mathcal D'$, as assigned by @ADedecker. --- Put in a separate file since Distribution.lean only imports TestFunction right now and I thought it was cleaner to do in a new bridge file with both the maps. Open to changing this though. * Made use of #36445 (proved first map locally on fixed support spaces first by local seminorm estimates, then used limitCLM) * Needed a real to complex bridge `TestFunction.ToComplexSchwartzMap` since distributions are defined on real-valued test functions but tempered distributions in mathlib are defined on complex-valued Schwartz functions * Induced map $\mathcal S'(E,F) \to \mathcal D'(Ω,F)$ is $\mathbb C$-linear The main important defs are `ContDiffMapSupportedIn.toSchwartzMapCLM` which is the local fixed-support part, then `TestFunction.toSchwartzMapCLM` (where the continuity uses limitCLM to glue the local continuous linear maps on each $\mathcal D_K$), and `TemperedDistribution.toDistributionLM` which is the linear map from tempered distributions to ordinary distributions. Tested with `lake env lean Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 226/0 Mathlib.lean,Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean 2 24 ['aditya-ramabadran', 'github-actions', 'j-loreaux'] j-loreaux
assignee:j-loreaux
1-14602
1 day ago
1-15549
1 day ago
33-15691
33 days
38869 TJHeeringa
author:TJHeeringa
feat(Analysis/InnerProductSpace): Add instance for quotient of InnerProductSpace --- Couldn't find the inner product space instance for a quotient of an inner product space. After confirming at [#Is there code for X? > Quotient of inner product space is inner product space](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Quotient.20of.20inner.20product.20space.20is.20inner.20product.20space/with/592464432), I made this PR. Defines an innerProductSpace instance on the quotient based on the isometry with the orthogonal complement, which is a closed subspace of the full space and thus has an innerProductSpace instance. AI usage: Didn't understand how to properly apply `quotient_norm_mk_eq K.toAddSubgroup x`. Claude suggested using convert. Otherwise no AI used, aside from acting as secondary Loogle. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 64/0 Mathlib/Analysis/InnerProductSpace/ProdL2.lean 1 28 ['TJHeeringa', 'github-actions', 'j-loreaux', 'themathqueen', 'wwylele'] j-loreaux
assignee:j-loreaux
1-2498
1 day ago
1-2498
1 day ago
6-64092
6 days
39156 Deicyde
author:Deicyde
chore(LinearAlgebra/Pi): Fix typos in `Submodule.pi` docstring The docstring referenced `pi I s` (the parameter is named `p` not `s`) and `p a` (the bound variable is `i` not `a`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy new-contributor
label:t-algebra$
2/2 Mathlib/LinearAlgebra/Pi.lean 1 3 ['Deicyde', 'github-actions'] nobody
0-81911
22 hours ago
0-82316
22 hours ago
0-82162
22 hours
38214 emlis42
author:emlis42
feat(Algebra/ContinuedFractions): add Euler's continued fraction This PR formalizes Euler’s continued fractions by providing `Euler` which construct one by giving head term and coefficients with some basic property. We also introduce a transformation `GenContFract.toEuler` that maps a generalized continued fraction `g : GenContFract K` to an equivalent Euler-form continued fraction. new-contributor t-algebra
label:t-algebra$
262/0 Mathlib.lean,Mathlib/Algebra/ContinuedFractions/Euler.lean 2 15 ['github-actions', 'mathlib-bors', 'wwylele'] themathqueen
assignee:themathqueen
0-65884
18 hours ago
18-7260
18 days ago
18-10858
18 days
38584 TJHeeringa
author:TJHeeringa
feat(Analysis/InnerProductSpace/Reproducing): Add outerKernel, mem_iff --- Adds the `outerKernel` definition and the theorem `mem_iff`. These are needed for proving statements involving embeddings of RKHS. I can split `mem_of_posSemidef` and `mem_iff` off into a different pull request if that is preferred. The theorems `mem_of_posSemidef` and `posSemidef_of_mem` are the two directions of `mem_iff`. `posSemidef_of_mem` is slightly stronger than the converse direction of `mem_iff` in the sense that it also specifies the constant `c` in the statement. The specified `c` is in fact the smallest possible `c` for which the statement holds. The statement `mem_of_posSemidef` proves `∃ (g : H), (g : X → V) = f`. We could instead write `f ∈ (coeCLM 𝕜 (H:=H)).range`. Making this change would require the addition of the line `simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]` in the beginning of the proof. The full beginning is then ``` lemma mem_of_posSemidef (f : X → V) {c : ℝ} (hc : ((c : 𝕜) ^ 2 • kernel H - outerKernel 𝕜 f).PosSemidef) : f ∈ (coeCLM 𝕜 (H:=H)).range := by simp only [LinearMap.mem_range, coe_coe, coeCLM_apply] let Laux : ... ``` Making a `MemRKHS` like MemLp and MemSobolev and then writing `MemRKHS H f` is also an option. Happy to change it to whatever is preferred. The proof of `mem_of_posSemidef` is based on the idea that any function f in the RKHS satisfies `=\sum_{n} ` for `x_n\in X` and `v_n\in V` by the reproducing property. We define the operator L(\sum_n K(\cdot,x_n)v_n) = \sum_{n} . This is bounded by the condition based on the kernels, and thus extends to a bounded linear operator on the RKHS. Its Riesz' representer agrees pointwise with f. AI: When asking how to avoid Classical.choose in constructing the operator L, Claude suggested the approach of going through the quotient. I made the proof using Claude as supplementary Loogle. Afterwards, I asked it to help shorted the proofs. Some suggestions for `mem_of_posSemidef` were applied. The other suggestions were not helping or not correct. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 122/1 Mathlib/Analysis/InnerProductSpace/Reproducing.lean 1 7 ['TJHeeringa', 'github-actions', 'themathqueen'] j-loreaux
assignee:j-loreaux
0-65873
18 hours ago
14-8368
14 days ago
14-8592
14 days
38628 tautschnig
author:tautschnig
feat(Data/ZMod/Basic): unit characterization for ZMod (p ^ d) Add two lemmas characterizing units in `ZMod (p ^ d)` for a prime `p`: * `ZMod.isUnit_natCast_of_not_dvd_pow`: a natural number not divisible by `p` is a unit in `ZMod (p ^ d)`. * `ZMod.prime_natCast_not_isUnit_pow`: the prime `p` is not a unit in `ZMod (p ^ d)` when `d ≥ 1`. These complement the existing `isUnit_prime_iff_not_dvd` (which characterizes when a *prime* is a unit in `ZMod n`) by characterizing when an *arbitrary* natural number is a unit in `ZMod (p ^ d)`. **Motivation.** Arithmetic verification over fixed-width bitvectors works in `ZMod (2 ^ d)`. A Gröbner basis solver over this ring needs to know which constants are invertible: odd constants are units (enabling algebraic simplification), while even constants are not (requiring fallback to SAT). These lemmas formalize that characterization for any prime, not just 2. Further work related to Gröbner basis will be published once #29203 (and, before that, #34873) have been merged. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 12/0 Mathlib/Data/ZMod/Basic.lean 1 4 ['dagurtomas', 'github-actions'] joneugster
assignee:joneugster
0-65872
18 hours ago
13-30583
13 days ago
13-30429
13 days
39082 emlis42
author:emlis42
feat(Analysis\Calculus\Deriv): add deriv_const_op This PR adds some lemmas so `simp` can automatically evaluate derivatives of partially applied heterogeneous operations such as `HAdd.hAdd`, `HMul.hMul` `HDiv.hDiv`, and `HPow.hPow`. t-analysis new-contributor 47/5 Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/FDeriv/Norm.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,MathlibTest/Deriv.lean 7 2 ['github-actions'] j-loreaux
assignee:j-loreaux
0-65863
18 hours ago
3-21459
3 days ago
3-22025
3 days
38275 TTony2019
author:TTony2019
feat: Add `AffineEquiv.image_intrinsicInterior` ## Summary This PR generalizes the existing lemma `AffineIsometry.image_intrinsicInterior` to the setting of affine equivalences, yielding the corresponding result `AffineEquiv.image_intrinsicInterior`. Since affine equivalences are more general than affine isometries, the proof requires an additional finite-dimensionality assumption. The key extra input is that in finite-dimensional spaces, an affine equivalence induces a homeomorphism via `AffineEquiv.toHomeomorphOfFiniteDimensional`, so the assumptions are adjusted accordingly. Apart from these extra assumptions, the argument is essentially the same as for `AffineIsometry.image_intrinsicInterior`. ## Collaboration This PR was developed together with @imathwy. t-analysis new-contributor 252/41 Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/LinearAlgebra/AffineSpace/Restrict.lean,Mathlib/Topology/Algebra/AffineSubspace.lean,Mathlib/Topology/Homeomorph/Defs.lean 5 25 ['github-actions', 'imathwy', 'j-loreaux', 'themathqueen'] j-loreaux
assignee:j-loreaux
0-58180
16 hours ago
0-58180
16 hours ago
9-136
9 days
38319 Zetetic-Dhruv
author:Zetetic-Dhruv
feat(Combinatorics/SetFamily): Assouad's dual VC bound Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family `𝒜 : Finset (Finset α)` has VC dimension at most `d`, then for any ground set `X : Finset α` the dual family `{𝒜.filter (· ∋ x) : x ∈ X}` has VC dimension at most `2 ^ (d + 1) - 1`. New declarations (in `Finset` namespace): - `dualFamily 𝒜 X`: for each `x ∈ X`, the subfamily `{A ∈ 𝒜 | x ∈ A}` - `mem_dualFamily` (`@[simp]`): membership characterisation - `exists_shatters_of_dualFamily_shatters`: Assouad's bitstring-coding lemma - `vcDim_dualFamily_le`: the headline VC bound Proof by Assouad's classical bitstring-coding argument. Sits on top of `Finset.shatterer` / `Finset.vcDim` from `Mathlib.Combinatorics.SetFamily.Shatter`. References: - P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13 - J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002, Section 10.3 Lemma 10.3.3 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 199/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean,docs/references.bib 3 34 ['Shreyas4991', 'YaelDillies', 'Zetetic-Dhruv', 'github-actions'] nobody
0-37089
10 hours ago
1-79762
1 day ago
18-40257
18 days
39162 anovickis
author:anovickis
feat(Topology/PartitionOfUnity): add pointwise_decomposition_finsum + companions Add three short lemmas to `Mathlib/Topology/PartitionOfUnity.lean` extending the existing `PartitionOfUnity` API: - `pointwise_decomposition_finsum` — for `f : X → ℝ` and `x ∈ s`, `f x = ∑ᶠ i, ρ i x · f x`. This is the pointwise step that lifts to integral linearity in measure-theoretic PoU integration: `∫_s f dμ = ∑ᶠ i, ∫_s (ρ i · f) dμ`. - `one_minus_sum_nonneg` — `0 ≤ 1 - ∑ᶠ i, ρ i x`. Direct rearrangement of the existing `sum_le_one` field; useful as a complement-mass remainder bound in chart-by-chart estimates. - `abs_le_one` — `|ρ i x| ≤ 1`. Combines the existing `nonneg` and `le_one`; convenience for absolute-value bounds. All three are short proofs using existing structure fields (`sum_eq_one`, `sum_le_one`, `nonneg`, `le_one`). These came up while writing chart-by-chart Stokes-on-manifold estimates where one wants to decompose `∫_M f` into chart-supported pieces using a partition of unity. The pointwise identity is the obvious first step; the other two are complementary algebraic bounds that show up in remainder estimates. --- 🤖 Generated with [Claude Code](https://claude.com/claude-code) t-topology new-contributor LLM-generated 27/0 Mathlib/Topology/PartitionOfUnity.lean 1 2 ['github-actions'] nobody
0-36887
10 hours ago
0-62168
17 hours ago
0-62014
17 hours
38848 jcreinhold
author:jcreinhold
feat(AlgebraicTopology/SimplicialSet): exists_isPushout_of_ne_top Every proper subcomplex of a simplicial set extends by attaching a single cell along its boundary, exhibited as a pushout of `∂Δ[n] ↪ Δ[n]`. This is the per-cell input for cell-by-cell filtrations of monomorphisms in `SSet`. Adapted from @joelriou 's [proof](https://github.com/joelriou/topcat-model-category/blob/813338a8c88cfe0096deed7e3ba7daf92d4a1c71/TopCatModelCategory/SSet/Boundary.lean#L187). I also added the supporting lemma `Types.isPullback_of_eq_setPreimage` (set-preimage square is a pullback in `Type u`). AI use: Claude helped locate `subtype_val_mono` and the `backward.isDefEq.respectTransparency` option. t-algebraic-topology new-contributor 120/3 Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean 2 22 ['github-actions', 'jcreinhold', 'joelriou', 'mckoen'] joelriou
assignee:joelriou
0-31721
8 hours ago
2-1117
2 days ago
8-56140
8 days
38755 TJHeeringa
author:TJHeeringa
feat(Analysis/innerProductSpace/GramMatrix): Add Gram.posSemidef_of_mapL --- `Analysis/innerProductSpace/TensorProduct` has a TODO for a continuous version of `TensorProduct.map`. One place which contains a proof for this is at [stack](https://math.stackexchange.com/a/3934668). This PR is lemma 1 of that. It is written with `.PosSemidef` instead of `≤` because the Löwner Order on matrices is only defined in lean for matrices with values in `𝕜`. No AI used. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 21/0 Mathlib/Analysis/InnerProductSpace/GramMatrix.lean 1 14 ['TJHeeringa', 'github-actions', 'j-loreaux', 'themathqueen'] urkud
assignee:urkud
0-21935
6 hours ago
0-21935
6 hours ago
9-86180
9 days
37716 slavanaprienko
author:slavanaprienko
feat(LinearAlgebra/Matrix/Determinant): Desnanot-Jacobi identity This PR adds the Desnanot-Jacobi identity (also known as the Lewis Carroll identity or Dodgson condensation): for any (n+2)×(n+2) matrix M over a commutative ring, $$\det(M) \cdot \det(M_{1,n}^{1,n}) = \det(M_1^1) \cdot \det(M_n^n) - \det(M_1^n) \cdot \det(M_n^1)$$ The proof follows Bressoud's *Proofs and Confirmations* (Cambridge University Press, 1999): multiply M by an auxiliary matrix built from columns of the adjugate, then compare determinants. This yields the identity premultiplied by det(M). To cancel, we pass to a universal polynomial ring (an integral domain with nonzero determinant), then specialize back to arbitrary commutative rings. It seems there's some interest in adding this: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Determinantal.20identity.20and.20the.20Cauchy.20matrix.20determinant/with/582946873 --- t-algebra new-contributor
label:t-algebra$
221/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Determinant/DesnanotJacobi.lean 2 11 ['SnirBroshi', 'github-actions', 'grunweg', 'kim-em', 'slavanaprienko'] nobody
0-20144
5 hours ago
1-3951
1 day ago
1-36618
1 day
38801 TBUGTB
author:TBUGTB
feat(Topology/Order): order topology on WithTop API lemmas Upstream lemmas on the order topology on WithTop from the brownian motion project. Co-authored-by: Kexing Ying --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology brownian new-contributor 12/0 Mathlib/Order/Filter/AtTopBot/Basic.lean 1 13 ['TBUGTB', 'github-actions', 'j-loreaux', 'plp127', 'vihdzp'] j-loreaux
assignee:j-loreaux
0-15135
4 hours ago
0-20700
5 hours ago
9-46292
9 days
28613 espottesmith
author:espottesmith
feat(Combinatorics): define undirected hypergraphs This PR defines undirected hypergraphs: ``` @[ext] structure Hypergraph (α : Type*) where /-- The vertex set -/ vertexSet : Set α /-- The hyperedge set -/ hyperedgeSet : Set (Set α) /-- All hyperedges must be subsets of the vertex set -/ hyperedge_isSubset_vertexSet : ∀ ⦃e⦄, e ∈ hyperedgeSet → e ⊆ vertexSet ``` In addition to the main definition, some additional definitions and related lemmas are provided: - vertex adjacency - hyperedge adjacency - vertex "stars" - special cases (loops, empty hypergraphs, trivial hypergraphs, complete hypergraphs, simple hypergraphs, k-uniform hypergraphs, and d-regular hypergraphs) - (some) hypergraph cardinality - subhypergraphs, induced subhypergraphs, and partial hypergraphs This implementation is certainly bare-bones. I'm submitting this PR at this point, rather than when my developments are more fleshed out, because there has been some interest in others contributing to hypergraph formalization in mathlib. In the near future, goals include: - defining incidence matrices (i.e., conversion from `Hypergraph α` to `Matrix α (Set α) β` - coersion/generalization of graph as 2-uniform hypergraph - conversion of a hypergraph into its associated clique graph/two-section graph - constructing the dual of a hypergraph (note: on first blush, this appears somewhat challenging, given that we define hyperedges as `Set α` rather than some other type `β`) - rank and co-rank - walks, paths, cycles, etc. on hypergraphs --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 281/0 Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean 2 143 ['b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot', 'tb65536'] b-mehta
assignee:b-mehta
0-12707
3 hours ago
0-17291
4 hours ago
87-81562
87 days
37071 ericluap
author:ericluap
feat: Dedekind completion of rationals is isomorphic to EReal t-order new-contributor 128/4 Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/DedekindCut.lean,Mathlib/Order/Completion.lean 4 52 ['ericluap', 'github-actions', 'vihdzp', 'wwylele'] vihdzp
assignee:vihdzp
0-12574
3 hours ago
0-12574
3 hours ago
23-7608
23 days
38967 abeldonate
author:abeldonate
doc(Algebra/Module/Projective): remove TODOs Remove the TODO list, since the have already been implemented on an instance. t-algebra new-contributor maintainer-merge
label:t-algebra$
0/7 Mathlib/Algebra/Module/Projective.lean 1 4 ['github-actions', 'robin-carlier'] nobody
0-11574
3 hours ago
6-14984
6 days ago
6-14830
6 days
39212 emlis42
author:emlis42
feat(Algebra\ContinuedFractions): add `partNums!` and `partDens!` This PR adds `partNums!` and `partDens!`, which provide infinite stream representations for the sequences of partial numerators and denominators of a generalized continued fraction. t-algebra new-contributor
label:t-algebra$
8/0 Mathlib/Algebra/ContinuedFractions/Basic.lean 1 2 ['github-actions'] nobody
0-9440
2 hours ago
0-9527
2 hours ago
0-9373
2 hours
39216 emlis42
author:emlis42
feat(Topology\Algebra\InfiniteSum): add `limUnder_eq_tprod` This PR adds `limUnder_eq_tprod` and `limUnder_eq_tsum`. t-topology new-contributor 10/0 Mathlib/Topology/Algebra/InfiniteSum/Defs.lean 1 2 ['github-actions'] nobody
0-5920
1 hour ago
0-6032
1 hour ago
0-5878
1 hour
39192 jayscambler
author:jayscambler
feat(InnerProductSpace/PiL2): det of a linear isometry has unit norm Adds `LinearIsometryEquiv.norm_det` and the real corollary `LinearIsometryEquiv.abs_det`. The proof uses the unitary matrix of a linear isometry in orthonormal bases, via `LinearIsometryEquiv.toMatrix_mem_unitaryGroup` and `Matrix.det_of_mem_unitary`. The supporting matrix lemma is moved from `Adjoint.lean` to `PiL2.lean`, where it no longer depends on adjoints. t-analysis new-contributor LLM-generated 36/10 Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean 2 7 ['github-actions', 'grunweg', 'jayscambler', 'wwylele'] nobody
0-3308
55 minutes ago
0-8541
2 hours ago
0-27848
7 hours
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 depends on `Option Q(PartialOrder $α)` instead of `Q(PartialOrder $α)`, and the constructors `Strictness.positive`/`Strictness.nonnegative` now have their `Q(PartialOrder $α)` typeclass arguments. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-meta 661/375 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/Interval/Basic.lean,Mathlib/Algebra/Order/Module/Field.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/Order.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.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/Factorial/DoubleFactorial.lean,Mathlib/Data/Nat/Totient.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean,Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/NumberField.lean,Mathlib/NumberTheory/Height/Projectivization.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/NumberTheory/SelbergSieve.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,MathlibTest/positivity.lean 54 76 ['HugLycan', 'JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster', 'leanprover-radar', 'mathlib-merge-conflicts'] dwrensha
assignee:dwrensha
0-2490
41 minutes ago
4-70202
4 days ago
47-25158
47 days
38534 AlexeyMilovanov
author:AlexeyMilovanov
refactor(Computability): bundle PFun into a structure with FunLike instance This PR refactors `PFun` from `def PFun α β := α → Part β` to a structure with a `FunLike` instance. [Discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Fix.20for.20fun_prop.20on.20PFun.20.28context.3A.20Computability.20Theory.29) ### Core Architectural Changes * **Structure Transition:** `PFun` is now a structure with a single field `toFun : α → Part β`. Raw lambdas are now explicitly packed using `PFun.mk` or `PFun.lift`. * **API Alignment:** Added the `FunLike (α →. β) α (Part β)` instance and `initialize_simps_projections`. Replaced direct `funext` usage with `DFunLike.ext`. Added comprehensive `@[simp]` lemmas for the structure (`mk_apply`, `coe_mk`, `toFun_eq_coe`, `lift_apply`). * **New Helpers:** Introduced `PFun.const` and `PFun.empty` to reduce boilerplate. Updated the `Inhabited` instance to use `PFun.empty` and added the `default_eq_empty` simp lemma. * **Renaming:** Renamed `Nat.Partrec.some` to `Nat.Partrec.id` (as it now represents `PFun.id ℕ`), and `const_part_some` to `const_some` for consistency. ### API & Breaking Changes * **Loss of Defeq:** `PFun` is no longer definitionally equal to a raw function. Basic lemmas (like `PFun.res_univ`) now require explicit extensionality (`ext x y; rfl`). * **`prodLift_fst_comp_snd_comp`:** Rewrote the LHS using explicit `PFun.mk` wrappers. This resolves a `simpNF` linter failure caused by the new `comp_lift` simp lemma. * **Return Type Changes:** Several core computability definitions (`Nat.Partrec.of_eq_tot`, `StateTransition.eval`) now strictly return or pattern-match on the new structure, breaking implicit coercions. ### Downstream Impact The refactor heavily impacts Computability Theory and Category Theory (`Category/PartialFun.lean`). The strict structure boundary breaks definitional equality, meaning tactics like `simp` and `grind` can no longer "see through" the function automatically. As a result, several proofs (e.g., `fix_aux`, `ppred`, `mem_eval`, and `unitIso`) grew in size, requiring explicit `ext` + `simp` breakdowns. ### Affected Files * **Core:** `Mathlib/Data/PFun.lean` * **Computability:** `Partrec`, `PartrecBasis`, `PartrecCode`, `RE`, `RecursiveIn`, `Ackermann`, `Halting`, `StateTransition`, `TuringDegree`, `TuringMachine/Config` *(Successfully removed the `set_option linter.flexible false` hack)* * **Category Theory:** `Category/PartialFun.lean` *(Successfully removed the `respectTransparency false` hack)* * **Other:** `Data/Finset/PImage.lean`, `NumberTheory/Dioph.lean` ### Note on LLM usage The core `PFun` change caused numerous downstream errors. I initially used an LLM to help draft fixes for these files. Afterwards, I spent a significant amount of time manually correcting and modifying all of the generated changes. new-contributor t-computability 1172/758 Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/Ackermann.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecBasis.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RE.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TuringDegree.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Data/Finset/PImage.lean,Mathlib/Data/PFun.lean,Mathlib/NumberTheory/Dioph.lean 14 7 ['AlexeyMilovanov', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib-merge-conflicts'] nobody
0-1973
32 minutes ago
0-1973
30 minutes ago
5-36931
5 days

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
38536 CoolRmal
author:CoolRmal
feat: a lemma about the symmetric difference of unions Created with the help of Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data easy 45/2 Mathlib/Data/Set/Lattice.lean,Mathlib/Order/CompleteBooleanAlgebra.lean 2 12 ['CoolRmal', 'SnirBroshi', 'eric-wieser', 'github-actions'] nobody
2-42455
2 days ago
4-78111
4 days ago
4-79749
4 days
39085 bryangingechen
author:bryangingechen
ci(shake.yaml): shake Archive, Counterexamples, MathlibTest; do not commit explain.txt cf. https://github.com/leanprover-community/mathlib4/pull/39080#discussion_r3209205008 and [#mathlib4 > shake @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/shake/near/593801927) CI easy 6/1 .github/workflows/shake.yaml 1 2 ['bryangingechen', 'github-actions'] nobody
1-77383
1 day ago
3-18891
3 days ago
3-18737
3 days
39150 wwylele
author:wwylele
chore(Algebra/LinearRecurrence): remove a defeq abuse The previous code abuses defeq between `Subtype E.IsSolution` (coming from `← Subtype.mk.injEq` rewrite) and `Subtype (· ∈ E.solSpace)` (coming from coercing submodule). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt easy
label:t-algebra$
2/2 Mathlib/Algebra/LinearRecurrence.lean 1 1 ['github-actions'] nobody
0-85572
23 hours ago
0-85645
23 hours ago
0-85491
23 hours
39152 wwylele
author:wwylele
chore(Algebra/BigOperators): remove a defeq abuse --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt easy
label:t-algebra$
1/2 Mathlib/Algebra/BigOperators/Ring/Finset.lean 1 1 ['github-actions'] nobody
0-85123
23 hours ago
0-85200
23 hours ago
0-85046
23 hours
39156 Deicyde
author:Deicyde
chore(LinearAlgebra/Pi): Fix typos in `Submodule.pi` docstring The docstring referenced `pi I s` (the parameter is named `p` not `s`) and `p a` (the bound variable is `i` not `a`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy new-contributor
label:t-algebra$
2/2 Mathlib/LinearAlgebra/Pi.lean 1 3 ['Deicyde', 'github-actions'] nobody
0-81911
22 hours ago
0-82316
22 hours ago
0-82162
22 hours
38974 Brian-Nugent
author:Brian-Nugent
chore: fix documentation of `LocallyQuasiFinite` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry easy 6/5 Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
0-65868
18 hours ago
5-78275
5 days ago
5-78121
5 days
39149 kbuzzard
author:kbuzzard
doc(Algebra/HierarchyDesign): fix typo in library note Fix instance name (error was possibly caused by the change in the instance naming algorithm). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) Maybe it was called that under the old algorithm? But it's called https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Int/Defs.html#Int.instAddGroup now. t-algebra easy
label:t-algebra$
1/1 Mathlib/Algebra/HierarchyDesign.lean 1 2 ['github-actions', 'plp127'] nobody
0-22758
6 hours ago
0-86199
23 hours ago
0-86045
23 hours

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
39011 Vierkantor
author:Vierkantor
chore(Algebra/Polynomial/Module): workaround for backward.inferInstanceAs This PR, like #38990, works around a `backward.inferInstanceAs` compatibility flag introduced by identifying `PolynomialModule` with `Finsupp` in our definitions. We introduce a new dsimp lemma `funLike_eq` that transfers the `FunLike` instances, and now we can use `PolynomialModule`'s `FunLike` instance, instead of the custom `CoeFun` instance. This is not a great approach, but it seems the least painful for the short term. The alternative would be to strictly enforce the defeq barrier between `PolynomialModule` and `Finsupp`, which would mean a substantial rewrite of this corner of Mathlib. We can't make `PolynomialModule` an `@[implicit_reducible]`, because we need different multiplication on it than `Finsupp` has. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt
label:t-algebra$
8/5 Mathlib/Algebra/Polynomial/Module/Basic.lean 1 1 ['github-actions'] nobody
5-8721
5 days ago
5-8805
5 days ago
5-8651
5 days
38990 Vierkantor
author:Vierkantor
chore(Algebra/DirectSum): workaround for `backward.inferInstanceAs` This PR works around a `backward.inferInstanceAs` compatibility flag introduced by identifying `DirectSum` with `DFinsupp` in our definitions. We introduce a new dsimp lemma `funLike_eq` that transfers the `FunLike` instances, and now we can use `DirectSum`'s `FunLike` instance, instead of the custom `CoeFun` instance. I unsqueezed a few `simp`s, which all ran pretty much instant on my machine so it shouldn't cause much slowdown. Also we fix two porting notes. This is not a great approach, but it seems the least painful for the short term. The alternative would be to strictly enforce the defeq barrier between `DirectSum` and `DFinsupp`, which would mean a substantial rewrite of this corner of Mathlib. We can't make `DirectSum` an `@[implicit_reducible]`, because we need different multiplication on it than `DFinsupp` has. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt t-ring-theory
label:t-algebra$
36/38 Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/Lie/DirectSum.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/Spectrum/Prime/RingHom.lean 9 2 ['JovanGerb', 'github-actions'] nobody
3-36423
3 days ago
5-36539
5 days ago
5-37414
5 days
39150 wwylele
author:wwylele
chore(Algebra/LinearRecurrence): remove a defeq abuse The previous code abuses defeq between `Subtype E.IsSolution` (coming from `← Subtype.mk.injEq` rewrite) and `Subtype (· ∈ E.solSpace)` (coming from coercing submodule). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt easy
label:t-algebra$
2/2 Mathlib/Algebra/LinearRecurrence.lean 1 1 ['github-actions'] nobody
0-85572
23 hours ago
0-85645
23 hours ago
0-85491
23 hours
39152 wwylele
author:wwylele
chore(Algebra/BigOperators): remove a defeq abuse --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra tech debt easy
label:t-algebra$
1/2 Mathlib/Algebra/BigOperators/Ring/Finset.lean 1 1 ['github-actions'] nobody
0-85123
23 hours ago
0-85200
23 hours ago
0-85046
23 hours
38957 wwylele
author:wwylele
chore(GroupTheory/DivisibleHull): remove `backward.privateInPublic` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt t-group-theory 5/12 Mathlib/GroupTheory/DivisibleHull.lean 1 5 ['github-actions', 'grunweg', 'jcommelin', 'wwylele'] jcommelin
assignee:jcommelin
0-60579
16 hours ago
0-60579
16 hours ago
6-19207
6 days
39019 urkud
author:urkud
chore(*): reduce defeq abuse of `Set α = α → Prop` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt 17/16 Mathlib/Analysis/Complex/CoveringMap.lean,Mathlib/Analysis/Normed/Group/FunctionSeries.lean,Mathlib/Data/Nat/Order/Lemmas.lean,Mathlib/NumberTheory/EulerProduct/ExpLog.lean,Mathlib/NumberTheory/NumberField/Ideal/Asymptotics.lean,Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/FiberBundle/Basic.lean 8 3 ['JovanGerb', 'github-actions', 'urkud'] JovanGerb
assignee:JovanGerb
0-3885
1 hour ago
0-14478
3 hours ago
4-52166
4 days