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 contains tables of

This dashboard was last updated on: October 29, 2025 at 10:00 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
26054 FMLJohn
author:FMLJohn
feat(RingTheory/GradedAlgebra/Homogeneous/Subsemiring): homogeneous subsemirings of a graded semiring --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) In this pull request, we have defined homogeneous subsemirings of `GradedRing 𝒜` where `𝒜 : ι → σ`, `SetLike σ A` and `AddSubmonoidClass σ A`. ## Main definitions For any `R : Subsemiring A`: * `Subsemiring.IsHomogeneous 𝒜 R`: The property that a subsemiring is closed under `GradedRing.proj`. * `HomogeneousSubsemiring 𝒜`: The structure extending subsemirings which satisfy `Subsemiring.IsHomogeneous`. t-ring-theory 120/0 Mathlib.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Subsemiring.lean 2 1 ['github-actions'] kim-em
assignee:kim-em
85-1314
2 months ago
85-1314
2 months ago
133-56425
133 days
24730 YaelDillies
author:YaelDillies
feat(RingTheory): group-like elements Define group-like elements in a bialgebra, ie elements such that `η a = 1` and `Δ a = a ⊗ₜ a`. We prove that group-like elements of a coalgebra over a domain are linearly independent, group-like elements of a bialgebra form a monoid, group-like elements of a Hopf algebra form a group. From Toric Co-authored-by: Michał Mrugała --- - [x] depends on: #24747 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory toric 309/0 Mathlib.lean,Mathlib/RingTheory/Bialgebra/GroupLike.lean,Mathlib/RingTheory/Coalgebra/GroupLike.lean,Mathlib/RingTheory/HopfAlgebra/GroupLike.lean 4 42 ['Julian-Kuelshammer', 'Parcly-Taxel', 'Whysoserioushah', 'YaelDillies', 'erdOne', 'eric-wieser', 'github-actions', 'leanprover-bot', 'mathlib4-dependent-issues-bot', 'smorel394'] eric-wieser
assignee:eric-wieser
85-1208
2 months ago
85-1208
2 months ago
171-44657
171 days
26770 Jun2M
author:Jun2M
feat(Combinatorics/Graph) : subgraph relations and operations on `Graph` This PR creates a new file `Combinatorics/Graph/Subgraph.lean`. In it, the PR introduces a partial order on graphs by subgraph relation, defines relations `IsInducedSubgraph`, `IsSpanningSubgraph` and `IsClosedSubgraph`. Further, it introduce operations `EdgeRestrict`, `EdgeDelete`, `induce` and `VertexDelete`. Co-authored-by: Peter Nelson --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 703/0 Mathlib.lean,Mathlib/Combinatorics/Graph/Subgraph.lean 2 1 ['github-actions'] awainverse
assignee:awainverse
83-32382
2 months ago
116-43860
3 months ago
116-43895
116 days
26765 KiringYJ
author:KiringYJ
feat(MeasureTheory/PiSystem): add π-λ theorem and SetLike instance Add two small features to `MeasureTheory/PiSystem`: 1. SetLike instance `instance : SetLike (DynkinSystem α) (Set α)` This lets us write `s ⊆ d` and `t ∈ d` for a DynkinSystem `d`, matching usual mathlib style. 2. `DynkinSystem.pi_lambda` lemma Classical π‑λ theorem: if a π‑system `s` is contained in a Dynkin system `d`, every set measurable for `σ(s)` is also in `d`. Currently, mathlib exposes this result only indirectly (e.g. via `generateFrom_eq`). Although logically equivalent, it is not obvious at first glance that those lemmas are the π‑λ theorem. The new lemma states the result in its familiar textbook form, so users can recognise and cite it immediately. Both pieces are under 10 lines, term‑mode only, and do not modify existing APIs. No breaking changes. No dependencies. new-contributor t-measure-probability 13/0 Mathlib/MeasureTheory/PiSystem.lean 1 13 ['EtienneC30', 'KiringYJ', 'github-actions', 'ocfnash'] RemyDegenne
assignee:RemyDegenne
82-32381
2 months ago
89-68430
2 months ago
116-56265
116 days
27534 PierreQuinton
author:PierreQuinton
feat: a typeclass for `sSup`/`sInf` to be lawful Adds lawful infima and suprema type classes. A preorder with lawful suprema: whenever a set has a least upper bound, `sSup` returns a least upper bound for that set. A preorder with lawful infima: whenever a set has a greatest lower bound, `sInf` returns a greastest lower bound for that set. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 121/8 Mathlib.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/LawfulSupInf.lean 3 25 ['PierreQuinton', 'YaelDillies', 'github-actions', 'plp127', 'vihdzp'] YaelDillies
assignee:YaelDillies
81-82558
2 months ago
93-65855
3 months ago
93-65881
93 days
24850 pechersky
author:pechersky
feat(Topology/UniformSpace/Ultra): uniform spaces induced by pseudometrics are ultra if system is ultra Any uniform space has a natural system of pseudometrics definable on it, comprised of those pseudometrics constructed from a descending chain of equivalence relation entourages. In a nonarchimedean uniformity, this pseudometric system induces the uniformity. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [x] depends on: #23111 t-topology 509/1 Mathlib.lean,Mathlib/Topology/MetricSpace/BundledFun.lean,Mathlib/Topology/UniformSpace/Ultra/Pseudometrizable.lean 3 8 ['ADedecker', 'fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'pechersky'] urkud
assignee:urkud
78-32398
2 months ago
141-19708
4 months ago
156-51634
156 days
28198 Sebi-Kumar
author:Sebi-Kumar
feat(Analysis/InnerProductSpace/PiL2): Add instances for EuclideanSpace rank and EuclideanSpace being infinite Add an instance for `Fact (Module.finrank 𝕜 (EuclideanSpace 𝕜 (Fin n)) = n)` which is needed to apply [stereographic'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Geometry/Manifold/Instances/Sphere.html#stereographic') to EuclideanSpace. Also add an instance for `Infinite (EuclideanSpace 𝕜 ι)` where `ι` is a nonempty fintype. I wasn't sure if these should go in separate pull requests, but they seemed similar enough to me. Thank you to Kenny Lau for the suggestions at [#mathlib4 > Instances for EuclideanSpace](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Instances.20for.20EuclideanSpace). --- To provide additional context, I am new to contributing to Mathlib, and I am doing so as a part of the Fields Undergraduate Summer Research Program at the University of Western Ontario under the supervision of Chris Kapulkin and Daniel Carranza. My goal is to contribute that the `n`-sphere is simply connected for `n > 1`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 6/0 Mathlib/Analysis/InnerProductSpace/PiL2.lean 1 1 ['github-actions'] urkud
assignee:urkud
72-32373
2 months ago
79-45609
2 months ago
79-45647
79 days
28072 kckennylau
author:kckennylau
feat(RingTheory/Valuation): make tactic rw_val_equiv Co-authored by Aaron Liu and Bhavik Mehta. A tactic to rewrite relations such as `max (v₁ x) (v₁ y) * v₁ z < 1` into `max (v₂ x) (v₂ y) * v₂ z < 1` , given `h : v₁.IsEquiv v₂`. Allowed relations are `≤`, `<`, `=`, `≠`. Allowed operations are: `0`, `1`, `v₁ r`, `⁻¹`, `^` (both `ℕ` and `ℤ`), `*`, `/`, `min`, `max`. Examples: ```lean example {R Γ₁ Γ₂ : Type} [Ring R] [LinearOrderedCommMonoidWithZero Γ₁] [LinearOrderedCommMonoidWithZero Γ₂] {v₁ : Valuation R Γ₁} {v₂ : Valuation R Γ₂} (h : v₁.IsEquiv v₂) {y z : R} : {x | v₁ x ^ 2 * min (v₁ y) (v₁ z) ≤ 1} = {x | v₂ x ^ 2 * min (v₂ y) (v₂ z) ≤ 1} := by rw_val_equiv h ``` It is also possible to use `←` to rewrite in the opposite direction, and to use `at h1 h3 ⊢` to specify which hypotheses (and/or goal) to rewrite, similar to the syntax of `rw`. There is also `rwa_val_equiv` to work like `rwa`. --- Zulip: [#Is there code for X? > Tactics for comparing equivalent valuations](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Tactics.20for.20comparing.20equivalent.20valuations) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 455/13 Mathlib/RingTheory/Valuation/Basic.lean,MathlibTest/Simproc/ValEquiv.lean 2 34 ['b-mehta', 'eric-wieser', 'github-actions', 'kckennylau', 'pechersky', 'plp127'] erdOne
assignee:erdOne
71-32388
2 months ago
81-54080
2 months ago
82-28576
82 days
28125 nonisomorphiclinearmap
author:nonisomorphiclinearmap
feat(Combinatorics): basic definition of simplicial complexes This PR introduces the basic definition of a finite (abstract) simplicial complex, located in Mathlib/Combinatorics/SimplicialComplex/Basic.lean. --- This is our first contribution to mathlib. This work was done as part of the Fields Institute Summer Undergraduate Program on formalization in topological combinatorics. Eventually, we aim to formalize Lovasz's proof of the Kneser Conjecture and this is a small stepping stone in that direction. Some other commits will shortly depend on this one. We would like to acknowledge the Fields Institute for Research in Mathematical Sciences for their sponsorship. We would also like to thank our supervisors, Professor Chris Kapulkin and Mr. Daniel Carranza, for their guidance and support throughout this project. We would also like to thank our group members Tom Lindquist and Quang Minh Nguyen for our fruitful discussions. new-contributor t-combinatorics 374/0 Mathlib.lean,Mathlib/Combinatorics/SimplicialComplex/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Category.lean,Mathlib/Combinatorics/SimplicialComplex/FacePoset.lean,Mathlib/Combinatorics/SimplicialComplex/Hom.lean 5 1 ['github-actions'] awainverse
assignee:awainverse
70-32396
2 months ago
81-50865
2 months ago
81-50901
81 days
28186 Sebi-Kumar
author:Sebi-Kumar
feat(Topology/Homotopy/Path): Add IsEquiv instance for Path.Homotopic Add `instance : IsEquiv (Path x₀ x₁) Homotopic` to the library. Allow use of lemmas like `of_eq` when proving two paths are homotopic. --- To provide additional context, I am relatively new to contributing to Mathlib, and I am doing so as a part of the Fields Undergraduate Summer Research Program hosted at the University of Western Ontario and supervised by Chris Kapulkin and Daniel Carranza. My goal is to prove that the `n`-sphere is simply connected for `n > 1`. Also, I am not super familiar with `IsEquiv` and when it should/shouldn't be used. I just wanted to use a lemma like `Path.Homotopic.of_eq` at one point while working on my code, and thought this was the best way to add such a result to the library. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-topology 5/0 Mathlib/Topology/Homotopy/Path.lean 1 4 ['Sebi-Kumar', 'github-actions', 'kckennylau'] PatrickMassot
assignee:PatrickMassot
70-32393
2 months ago
79-63723
2 months ago
79-63763
79 days
28399 Ruben-VandeVelde
author:Ruben-VandeVelde
feat: ring-theoretic fractions in Rat --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 47/0 Mathlib.lean,Mathlib/RingTheory/Localization/Rat.lean 2 1 ['github-actions'] robertylewis
assignee:robertylewis
67-32402
2 months ago
76-5338
2 months ago
76-5377
76 days
27245 rirarika
author:rirarika
feat: multivariate polynomial ring properties about irreducibility --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
88/0 Mathlib.lean,Mathlib/Algebra/MvPolynomial/Irreducible.lean 2 5 ['alreadydone', 'github-actions', 'mbkybky'] alreadydone
assignee:alreadydone
66-65190
2 months ago
103-7236
3 months ago
103-7271
103 days
28531 Ruben-VandeVelde
author:Ruben-VandeVelde
chore: remove Cardinal imports from Topology.Algebra.InfiniteSum.Group --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 51/15 Mathlib.lean,Mathlib/Analysis/BoxIntegral/UnitPartition.lean,Mathlib/Analysis/Normed/Group/Pointwise.lean,Mathlib/Analysis/Normed/Module/Convex.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Const.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/Algebra/InfiniteSum/Real.lean,Mathlib/Topology/Category/Stonean/Basic.lean,Mathlib/Topology/Instances/ENNReal/Lemmas.lean,Mathlib/Topology/Instances/NNReal/Lemmas.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean,Mathlib/Topology/MetricSpace/Thickening.lean,Mathlib/Topology/PartitionOfUnity.lean 16 4 ['Ruben-VandeVelde', 'YaelDillies', 'github-actions'] TwoFX
assignee:TwoFX
66-32368
2 months ago
73-43220
2 months ago
73-43195
73 days
28132 dupuisf
author:dupuisf
feat: preliminary `grind` tags for `IsUnit` This PR adds preliminary `grind` tags for the `IsUnit` predicate. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
61/17 Mathlib/Algebra/Group/Action/Units.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Ring/Units.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean 6 2 ['github-actions', 'mathlib4-merge-conflict-bot'] kim-em
assignee:kim-em
65-32373
2 months ago
74-28721
2 months ago
74-28696
74 days
28325 pechersky
author:pechersky
feat(WithZeroTopology): `locallyCompactSpace_iff_locallyFiniteOrder_units` On the way to golf/generalize the proof that locally compact valued fields have locally finite valuation groups as embodied in `Valued.integer.locallyFiniteOrder_units_mrange_of_isCompact_integer` ] --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-order t-topology 160/2 Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean,Mathlib/Topology/Compactness/Compact.lean 3 1 ['github-actions'] PatrickMassot
assignee:PatrickMassot
65-32370
2 months ago
77-14586
2 months ago
77-17288
77 days
27824 ChrisHughes24
author:ChrisHughes24
feat(Calculus): exists_gt_of_deriv_pos and variants --- I created a new file for this as I anticipate there will be many lemmas relating derivatives and monotonicity in future. Some lemmas relating deriviatives to monotonicity are already in mathlib and should maybe moved to the file (e.g. docs#HasDerivWithinAt.nonneg_of_monotoneOn). I stated them in as much generality as I could, copying the generality of `HasDerivWithinAt.nonneg_of_monotoneOn`. - [x] depends on: #28039 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 85/0 Mathlib.lean,Mathlib/Analysis/Calculus/Deriv/Order.lean 2 29 ['ChrisHughes24', 'EtienneC30', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] hrmacbeth
assignee:hrmacbeth
64-32399
2 months ago
74-62599
2 months ago
78-80288
78 days
26914 quangvdao
author:quangvdao
feat(Data/PFunctor/Univariate): more definitions for univariate `PFunctor` This PR defines several basic definitions of `PFunctor`, including zero, one, constants, monomials, coproduct (sum), product, sigma, pi, tensor product, universe lifting, and equivalence. We also add: (1) simple lemmas connecting the basic definitions, (2) an automatically derived ext lemma for `PFunctor` via `@[ext]` attribute Some things I'm not clear on: - I define `HAdd` and `HMul` instances for coproduct and product of poly functors having different universe levels. Should I also define `Add` and `Mul` instances for poly functors having the same universe level? - Is it ok to define notation for tensor product, i.e. `@[inherit_doc] scoped infixr:80 " ⊗ " => tensor`? I'm worried it might clash with other notation. - Need a double-check on the priority of notation. Some future definitions to add: - Various equivalences arising from arithmetic identities, e.g., `P + 0 ≃ₚ P`. - Definitions of Lenses and Charts (each of them will be a file or even a folder) - Exponential objects (corresponding to both `prod` and `tensor`) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 144/5 Mathlib/Data/PFunctor/Univariate/Basic.lean 1 19 ['alexkeizer', 'eric-wieser', 'github-actions', 'quangvdao'] eric-wieser
assignee:eric-wieser
62-65753
2 months ago
112-33460
3 months ago
112-33496
112 days
23238 YaelDillies
author:YaelDillies
feat: extended floor and ceil My motivation for this is to prove `ENat.toENNReal (⨆ i, f i) = ⨆ i, ENat.toENNReal (f i)` and `ENat.toENNReal (⨅ i, f i) = ⨅ i, ENat.toENNReal (f i)`. Kalle Kytölä independently needs this for his formalisation of statistical physics. From MiscYD --- - [x] depends on: #24781 - [x] depends on: #24782 See #15269 for a past attempt. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
235/0 Mathlib.lean,Mathlib/Algebra/Order/Floor/Extended.lean 2 25 ['YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'grunweg', 'kkytola', 'mathlib4-dependent-issues-bot', 'urkud'] alreadydone
assignee:alreadydone
62-60029
2 months ago
170-57394
5 months ago
218-23203
218 days
26484 peabrainiac
author:peabrainiac
feat(Geometry/Diffeology): basics of diffeological spaces Introduces diffeological spaces, smooth maps between them, the D-topology and the standard diffeology on finite-dimensional normed spaces. --- This PR continues the work from #21969. t-differential-geometry 471/0 Mathlib.lean,Mathlib/Geometry/Diffeology/Basic.lean,docs/references.bib 3 10 ['JovanGerb', 'github-actions', 'grunweg', 'lecopivo', 'peabrainiac'] grunweg
assignee:grunweg
61-4021
2 months ago
123-25237
4 months ago
123-29980
123 days
26240 grunweg
author:grunweg
perf(CommandLinterLinter): use Substring more Probably, these changes make little difference, but let's find out. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-linter RFC 14/15 Mathlib/Tactic/Linter/CommandStart.lean 1 5 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] joneugster
assignee:joneugster
61-3777
2 months ago
130-41340
4 months ago
130-45942
130 days
25920 BoltonBailey
author:BoltonBailey
feat(Data/Finsupp/Basic): `Finsupp.optionElim'` Similar to how Finsupp.cons constructs a map Fin (n + 1) →₀ M from a map Fin n →₀ M, we define Finsupp.optionElim' to construct a map Option α →₀ M from a map α →₀ M, given an additional value for none. We base this on the new optionEquiv definition. As a function, it behaves as Option.elim', hence the name. We prove a variety of API lemmas, based on those for Finsupp.cons, to bring the definitions more in line with the contents of Data/Finsupp/Fin. We also refactor to a new file to help avoid a too-long file and make this more analogous to Finsupp.cons Original PR: https://github.com/leanprover-community/mathlib4/pull/13861 - [x] depends on: #26309 migrated-from-branch t-data 114/23 Mathlib/Algebra/Category/MonCat/Adjunctions.lean,Mathlib/Data/Finsupp/Option.lean 2 15 ['BoltonBailey', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] eric-wieser
assignee:eric-wieser
58-12020
1 month ago
58-17066
1 month ago
122-73945
122 days
27308 xyzw12345
author:xyzw12345
feat(LinearAlgebra/SymmetricAlgebra): IsSymmetricAlgebra This PR continues the work from #24602. Original PR: https://github.com/leanprover-community/mathlib4/pull/24602 t-algebra
label:t-algebra$
78/0 Mathlib/LinearAlgebra/SymmetricAlgebra/Basic.lean,Mathlib/LinearAlgebra/SymmetricAlgebra/Basis.lean 2 3 ['github-actions', 'mattrobball', 'xyzw12345'] mattrobball
assignee:mattrobball
56-6502
1 month ago
100-69726
3 months ago
100-69770
100 days
26277 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(RingTheory/Congruence/Hom): prove basic isomorphisms theorems for ring congruences This file contains elementary definitions involving congruence relations and morphisms for semirings, rings, and algebras. * `RingCon.ker`: the kernel of a monoid homomorphism as a congruence relation * `RingCon.lift`, `RingCon.liftₐ`: the homomorphism / the algebra morphism on the quotient given that the congruence is in the kernel * `RingCon.map`, `RingCon.mapₐ`: homomorphism / algebra morphism from a smaller to a larger quotient * `RingCon.quotientKerEquivRangeS`, `RingCon.quotientKerEquivRange`, `RingCon.quotientKerEquivRangeₐ` : the first isomorphism theorem for semirings (using `RingHom.rangeS`), rings (using `RingHom.range`) and algebras (using `AlgHom.range`). * `RingCon.comapQuotientEquivRangeS`, `RingCon.comapQuotientEquivRange`, `RingCon.comapQuotientEquivRangeₐ` : the second isomorphism theorem for semirings (using `RingHom.rangeS`), rings (using `RingHom.range`) and algebras (using `AlgHom.range`). * `RingCon.quotientQuotientEquivQuotient`, `RingCon.quotientQuotientEquivQuotientₐ` : the third isomorphism theorem for semirings (or rings) and algebras It is an adaptation of what existed for multiplicative congruences (docs#Con) and is only useful for semirings which are not rings. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 554/2 Mathlib.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/RingTheory/Congruence/Defs.lean,Mathlib/RingTheory/Congruence/Hom.lean 5 4 ['AntoineChambert-Loir', 'eric-wieser', 'github-actions'] joneugster
assignee:joneugster
54-9050
1 month ago
85-1436
2 months ago
128-44050
128 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/) new-contributor t-combinatorics 375/0 Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean 2 52 ['b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot'] b-mehta
assignee:b-mehta
53-84846
1 month ago
53-84846
1 month ago
59-71028
59 days
29028 themathqueen
author:themathqueen
feat(Algebra/Star): define `unitary R →* StarAlgEquiv S R R` Every unitary defines a star-algebra automorphism (this is an extension of a special version of `MulSemiringAction.toRingEquiv` for unitaries). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
64/0 Mathlib.lean,Mathlib/Algebra/Star/UnitaryStarAlgAut.lean 2 14 ['eric-wieser', 'github-actions', 'themathqueen'] eric-wieser
assignee:eric-wieser
53-63442
1 month ago
61-931
2 months ago
62-57935
62 days
28511 YaelDillies
author:YaelDillies
feat(Finsupp): `congr!`-compatible version of `prod_congr` `congr!` doesn't like the `g1 x (f x)` appearing in the hypothesis of `Finsupp.prod_congr`: `f x` isn't a free variable. Note: A few proofs broke due to `simp` using `congr` lemmas internally. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
17/11 Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/Category/MonCat/Adjunctions.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean 5 12 ['JovanGerb', 'YaelDillies', 'eric-wieser', 'github-actions', 'kmill'] kmill
assignee:kmill
51-83480
1 month ago
74-3535
2 months ago
74-3568
74 days
24184 YaelDillies
author:YaelDillies
feat: `[G : H]` notation for the index of `H : Subgroup G` This is a cute notation which I wrote for FLT. Not sure whether we want it in mathlib nor how to include `relindex` in the picture. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra RFC
label:t-algebra$
5/0 Mathlib/GroupTheory/Index.lean 1 8 ['YaelDillies', 'erdOne', 'github-actions', 'j-loreaux', 'kbuzzard', 'mathlib4-merge-conflict-bot'] eric-wieser
assignee:eric-wieser
45-53692
1 month ago
45-53717
1 month ago
193-41430
193 days
29055 vihdzp
author:vihdzp
feat: `Ordinal.toENat` We essentially copy the Cardinal/ENat file but make it for ordinals instead. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2317758.20Ordinal.2EtoENat/near/479768508) for some prior discussion on this PR (particularly, the duplication and how there's no easy way to resolve it.) --- Moved from #17758. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 292/0 Mathlib.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/SetTheory/Cardinal/ENat.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/ENat.lean 6 1 ['github-actions'] alreadydone
assignee:alreadydone
45-32379
1 month ago
61-85011
2 months ago
61-85027
61 days
22039 YaelDillies
author:YaelDillies
feat: simproc for computing `Finset.Ixx` of natural numbers --- - [x] depends on: #22290 - [x] depends on: #22559 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-meta 315/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/FinsetInterval.lean,Mathlib/Util/Qq.lean 4 64 ['FLDutchmann', 'Paul-Lez', 'YaelDillies', 'eric-wieser', 'github-actions', 'grunweg', 'kckennylau', 'kim-em', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'urkud'] eric-wieser
assignee:eric-wieser
45-866
1 month ago
195-85498
6 months ago
251-46207
251 days
26544 vihdzp
author:vihdzp
feat(SetTheory/ZFC/Ordinal): Lean ordinals to ZFC ordinals We define `Ordinal.toZFSet` and prove that its outputs are precisely the ZFC ordinals. Moved from #19985. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-set-theory 166/5 Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/PSet.lean,Mathlib/SetTheory/ZFC/Rank.lean 4 23 ['alreadydone', 'github-actions', 'leanprover-community-bot-assistant', 'staroperator', 'vihdzp'] b-mehta
assignee:b-mehta
44-32374
1 month ago
52-932
1 month ago
78-64688
78 days
22043 YaelDillies
author:YaelDillies
chore: shortcut instance for `Neg ℤˣ` This lets us avoid importing `Ring` in downstream files (most of the effect is to come). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-algebra
label:t-algebra$
20/47 Mathlib.lean,Mathlib/Algebra/GCDMonoid/Nat.lean,Mathlib/Algebra/Group/Int/Units.lean,Mathlib/Algebra/Order/Ring/Abs.lean,Mathlib/Algebra/Ring/Int/Units.lean,Mathlib/Algebra/Ring/NegOnePow.lean,Mathlib/Data/Fintype/Units.lean,Mathlib/Data/Int/AbsoluteValue.lean,Mathlib/Data/Int/Associated.lean,Mathlib/GroupTheory/HNNExtension.lean,Mathlib/NumberTheory/NumberField/Basic.lean,MathlibTest/Zify.lean 12 17 ['YaelDillies', 'erdOne', 'eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib-bors'] eric-wieser
assignee:eric-wieser
44-4787
1 month ago
167-74224
5 months ago
252-47247
252 days
26580 vasnesterov
author:vasnesterov
feat(Tactic/Order): translate linear orders to `Int` It was [pointed out](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/tactic.20for.20partial.20orders/near/515897754) that `order` is not complete for linear orders with lattice operations (while it remains complete for linear orders without lattice operations and for general lattices without assuming linearity). The problem for linear orders with lattice operations is NP-hard, but it can be translated from an arbitrary type to `Int` and then solved using a smart and efficient procedure (such as `omega`). This PR implements such a translation within the `order` tactic. Co-authored-by: Aaron Liu --- - [x] depends on: #26354 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 300/29 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/Order/Graph/Basic.lean,Mathlib/Tactic/Order/Preprocessing.lean,Mathlib/Tactic/Order/ToInt.lean,MathlibTest/order.lean 7 5 ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vasnesterov'] alexjbest
assignee:alexjbest
43-66175
1 month ago
43-66183
1 month ago
107-80485
107 days
26110 YaelDillies
author:YaelDillies
feat: sharp monoids Define sharp monoids, which are the monoids whose only unit is `1`. This concept is useful in log geometry and in particular shows up in the theory of affine monoids. This concept already existed in the guise of `Subsingleton Mˣ`, but giving it a name makes it easier to refer to and uncovers some missing instances. From Toric --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) toric t-algebra
label:t-algebra$
51/30 Mathlib/Algebra/BigOperators/Associated.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Irreducible/Defs.lean,Mathlib/Algebra/Group/Pi/Units.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/Submonoid/Units.lean,Mathlib/Algebra/Group/Units/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/GroupWithZero/Divisibility.lean,Mathlib/Data/List/Prime.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/NumberTheory/DirichletCharacter/Basic.lean,Mathlib/RingTheory/ChainOfDivisors.lean,Mathlib/RingTheory/IntegralDomain.lean,Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean,Mathlib/RingTheory/Valuation/Integers.lean 18 7 ['YaelDillies', 'b-mehta', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot', 'vihdzp'] adomani
assignee:adomani
43-65325
1 month ago
47-59756
1 month ago
131-59797
131 days
25831 ScottCarnahan
author:ScottCarnahan
feat (RingTheory/HahnSeries): Powers of a binomial This PR introduces powers of a binomial `single g 1 - single g' 1` in a Hahn series, where the powers take values in a binomial ring. These series behave as one would expect with respect to addition of powers, and comparison with natural number powers. They are often used in the theory of vertex algebras. --- - [x] depends on: #25830 - [x] depends on: #27497 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24102.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24102* t-ring-theory 132/0 Mathlib.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/HahnSeries/Binomial.lean,Mathlib/RingTheory/HahnSeries/HEval.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean 5 13 ['ScottCarnahan', 'github-actions', 'kbuzzard', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] kbuzzard
assignee:kbuzzard
40-54452
1 month ago
75-41843
2 months ago
75-43297
75 days
29761 bwangpj
author:bwangpj
feat: Chinese Remainder Theorem for `ZMod n` Define `ZMod.equivPi`, the Chinese Remainder Theorem for `ZMod n`, decomposing it as a product of `ZMod` over its prime power factors. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 22/0 Mathlib/Data/Nat/Factorization/Basic.lean,Mathlib/Data/ZMod/QuotientRing.lean 2 8 ['Ruben-VandeVelde', 'bwangpj', 'github-actions', 'j-loreaux'] nobody
40-41053
1 month ago
40-41053
1 month ago
41-6036
41 days
29530 ShreckYe
author:ShreckYe
feat(Dynamics/PeriodicPts): some theorems for `Pi.map` in `Dynamics/PeriodicPts` analogous to those for `Prod.map` Split from #29204. Some namespace prefixes are added in `GroupTheory/OrderOfElement.lean` to distinguish the extra imports introduced. - [ ] depends on: #29528 large-import 77/8 Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/Dynamics/PeriodicPts/Lemmas.lean,Mathlib/GroupTheory/OrderOfElement.lean 3 2 ['github-actions', 'mathlib4-dependent-issues-bot'] dupuisf
assignee:dupuisf
40-32382
1 month ago
47-58215
1 month ago
47-58867
47 days
27306 xyzw12345
author:xyzw12345
feat: `lie_ring` tactic and `LieReduce` command This PR continues the work from #22196. Original PR: https://github.com/leanprover-community/mathlib4/pull/22196 t-meta 810/2 Mathlib.lean,Mathlib/Algebra/Lie/Derivation/AdjointAction.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LieAlgebra/Basic.lean,Mathlib/Tactic/LieAlgebra/LieRingNF.lean,Mathlib/Util/AtomM.lean,MathlibTest/lie_ring.lean,scripts/noshake.json 8 12 ['JovanGerb', 'github-actions', 'xyzw12345'] JovanGerb
assignee:JovanGerb
40-18396
1 month ago
50-22985
1 month ago
97-76462
97 days
29400 ShreckYe
author:ShreckYe
feat(`Algebra/BigOperators`): products of the results of insertion and removal on tuples and lists, and some needed lemmas large-import 102/0 Mathlib.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/BigOperators/Group/Vector/Basic.lean,Mathlib/Data/Fin/Tuple/Basic.lean 6 6 ['ShreckYe', 'bryangingechen', 'eric-wieser', 'github-actions'] bryangingechen
assignee:bryangingechen
39-44226
1 month ago
51-80178
1 month ago
51-80221
51 days
29562 ShreckYe
author:ShreckYe
feat(Analysis/SpecialFunctions/Trigonometric): tangent half-angle substitution t-analysis 82/0 Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean 1 1 ['github-actions'] urkud
assignee:urkud
39-32394
1 month ago
47-63636
1 month ago
47-63675
47 days
29235 yoh-tanimoto
author:yoh-tanimoto
feat(Topology/Algebra/Module/ClosedSubmodule): add `mapEquiv`, a variation of `ClosedSubmodule.map` for CLE add `ClosedSubmodule.mapEquiv` for continuous linear equivalence. In this case, a closed submodule is mapped to a closed submodule, so the definitions are easier and behave nicely with `closure` and `⊔`. motivation: needed to define standard subspaces in a Hilbert space (scalar multiplication by `Complex.I`) #29251 https://ems.press/content/serial-article-files/48171 - [x] depends on: #29230 for `Lattice` `CompleteLattice` t-topology 69/1 Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean 1 2 ['github-actions', 'mathlib4-dependent-issues-bot'] fpvandoorn
assignee:fpvandoorn
38-42128
1 month ago
46-61942
1 month ago
46-64228
46 days
29497 xyzw12345
author:xyzw12345
feat(Counterexamples): A ring such that dim A = 1 but dim A[x] = 3 In this PR, we constructed an example of a commutative ring `A` that satisfies `ringKrullDim A = 1` but `ringKrullDim A[X] = 3`, following the construction of https://math.stackexchange.com/questions/1267419/examples-of-rings-whose-polynomial-rings-have-large-dimension --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
176/0 Counterexamples.lean,Counterexamples/DimensionPolynomial.lean,Mathlib.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/RingTheory/KrullDimension/LocalRing.lean,Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean 7 15 ['github-actions', 'joelriou', 'kbuzzard', 'kckennylau', 'kim-em', 'xyzw12345'] joelriou
assignee:joelriou
36-34718
1 month ago
36-34718
1 month ago
47-64919
47 days
29688 tb65536
author:tb65536
feat(FieldTheory/IsGaloisGroup): prove the Galois correspondence for `IsGaloisGroup` This PR reproves the Galois correspondence for `IsGaloisGroup`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
89/0 Mathlib/FieldTheory/Galois/IsGaloisGroup.lean 1 1 ['github-actions'] joneugster
assignee:joneugster
36-32388
1 month ago
43-47104
1 month ago
43-47081
43 days
29624 mcdoll
author:mcdoll
feat(LinearAlgebra/LinearPMap): add definition of resolvent and first resolvent identity --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
180/2 Mathlib/LinearAlgebra/LinearPMap.lean 1 2 ['github-actions', 'mcdoll'] kim-em
assignee:kim-em
35-46156
1 month ago
43-57107
1 month ago
43-57084
43 days
28871 JaafarTanoukhi
author:JaafarTanoukhi
feat(Combinatorics/Digraph): Tournaments Define orientations and tournaments. Related to #26771. Co-authored-by: Rida Hamadani --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 62/0 Mathlib.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Digraph/Tournament.lean 3 5 ['JaafarTanoukhi', 'NotWearingPants', 'Rida-Hamadani', 'github-actions'] kmill
assignee:kmill
34-62043
1 month ago
65-52280
2 months ago
65-52313
65 days
28967 utkuokur
author:utkuokur
refactor(Combinatorics/SimpleGraph/Walk): simplify proof of "support_tail_of_not_nil" The proof of the lemma named "support_tail_of_not_nil" is shortened. Since "support_tail" is not needed anymore, it is removed. @[deprecated (since := "2025-08-26")] sign is added for the removed "support_tail". The library references to "support_tail" are replaced with "support_tail_of_not_nil". To keep [@simp] on "cons_support_tail" and avoid the linter error, the [@simp] of "support_tail_of_not_nil" (previously on "support_tail") is removed. There might be a better way that I am missing, to deal with the linter error. --- Additionally, a merge conflict with `master` was resolved by keeping the generalized `support_tail_of_not_nil` and reintroducing `support_tail` as a deprecated alias for compatibility. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 7/10 Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean 2 3 ['github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen'] awainverse
assignee:awainverse
34-53357
1 month ago
50-47529
1 month ago
63-63440
63 days
29596 alreadydone
author:alreadydone
chore(Algebra): extract `Submonoid.IsLocalizationMap` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
282/119 Mathlib.lean,Mathlib/Algebra/Module/LocalizedModule/IsLocalization.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Lemmas.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/RingTheory/Extension/Presentation/Submersive.lean,Mathlib/RingTheory/Localization/Defs.lean 7 3 ['github-actions', 'mathlib4-merge-conflict-bot'] kim-em
assignee:kim-em
34-32386
1 month ago
41-72343
1 month ago
45-85264
45 days
29488 Timeroot
author:Timeroot
feat: 'said' tactic Functionally similar to `says`, but explicitly not for checking output or even saying there ever was output. `X said Y` just means that `X` was part of the process for (a human, or machine, or both) to generate `Y`. Based on this [#mathlib4 > noisy simp says in CI @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/noisy.20simp.20says.20in.20CI/near/538443152) Zulip discussion --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 40/0 Mathlib/Tactic/Linter/UnusedTactic.lean,Mathlib/Tactic/Linter/UnusedTacticExtension.lean,Mathlib/Tactic/Says.lean,MathlibTest/says.lean 4 3 ['JovanGerb', 'MichaelStollBayreuth', 'github-actions'] JovanGerb
assignee:JovanGerb
33-32387
1 month ago
41-4361
1 month ago
49-23908
49 days
29771 Vierkantor
author:Vierkantor
refactor(TacticAnalysis): use full CommandElabM context in test Running the `rwMerge` linter on the whole of Mathlib reveals that the tactic analysis framework did not always correctly pass the environment to the test step of a pass. By running the test in a full `CommandElabM` and adding a `ContextInfo` and `TacticInfo`, we can access the right environment (using the `ctxI.runTacticCode` function). There are still a few subtle issues to do with notation but I would like to get this fix in first, since it involves some larger refactors. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 44/17 Mathlib/Tactic/TacticAnalysis.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean 3 7 ['adomani', 'bryangingechen', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] kim-em
assignee:kim-em
33-32381
1 month ago
40-66307
1 month ago
40-82835
40 days
29538 YaelDillies
author:YaelDillies
refactor(FractionalIdeal): use algebraic order theory API Instantiate instances earlier and use generic lemmas instead of the `FractionalIdeal`-specific ones. Also rename `_nonzero` in lemma names to `_ne_zero`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 158/176 Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/FractionalIdeal/Basic.lean,Mathlib/RingTheory/FractionalIdeal/Inverse.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean 8 1 ['github-actions'] chrisflav
assignee:chrisflav
31-32376
1 month ago
44-74486
1 month ago
44-74470
44 days
29512 grunweg
author:grunweg
feat: check for PR titles which do not start with "feat" etc. We ignore draft PRs and PRs with the WIP label. The set of checks is intentionally kept small, and could be expanded in the future. --- More basic version of #16303: given that mathlib's statistics will use the PR kind, let's make sure PR kinds are somewhat appropriate. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 365/0 .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/ValidatePRTitle.lean,lakefile.lean,scripts/README.md,scripts/check_title_labels.lean 10 17 ['bryangingechen', 'eric-wieser', 'github-actions', 'grunweg'] bryangingechen
assignee:bryangingechen
31-13912
1 month ago
48-62747
1 month ago
48-62723
48 days
25843 mitchell-horner
author:mitchell-horner
feat(Combinatorics/SimpleGraph): define `between` subgraphs The simple graph `G.between s t` is the subgraph of `G` containing edges that connect a vertex in the set `s` to a vertex in the set `t`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24948.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24948* t-combinatorics 86/0 Mathlib/Combinatorics/SimpleGraph/Bipartite.lean 1 1 ['github-actions'] b-mehta
assignee:b-mehta
31-2633
1 month ago
137-73145
4 months ago
137-73120
137 days
29369 vlad902
author:vlad902
feat(SimpleGraph): `IsSubwalk` of common Walk decompositions Add some helper lemmas to show that decompositions of walks are sub-walks. t-combinatorics 61/17 Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean 2 1 ['github-actions'] awainverse
assignee:awainverse
30-32389
1 month ago
53-57866
1 month ago
53-57909
53 days
29121 Ruben-VandeVelde
author:Ruben-VandeVelde
feat: MvPolynomial.symmetricSubalgebra.{aevalMultiset,sumPolynomial} --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 192/0 Mathlib.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Eval.lean 2 1 ['github-actions'] chrisflav
assignee:chrisflav
30-6927
1 month ago
60-32054
1 month ago
60-32086
60 days
29877 Komyyy
author:Komyyy
feat: inner product of the gradient Also, this PR enables the `conj` notation in the file. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 37/10 Mathlib/Analysis/Calculus/Gradient/Basic.lean 1 1 ['github-actions'] hrmacbeth
assignee:hrmacbeth
29-32373
29 days ago
36-77637
1 month ago
36-77615
36 days
29888 mcdoll
author:mcdoll
feat(Analysis/Normed): Extend densely defined LinearMaps to CLM This PR both adds a new and more user-friendly way to extend a CLM defined on a dense subspace. It also moves the old definition to the same file and as a side effect, we reduce the import tree. The moved parts are not modified except for adapting the sections and imports. Original definition of `ContinuousLinearMap.extend` was by Zhouhang Zhou in 2019 (mathlib3 PR #1649) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 254/86 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/LinearPMap.lean,Mathlib/Analysis/Normed/Operator/Completeness.lean,Mathlib/Analysis/Normed/Operator/Extend.lean,Mathlib/MeasureTheory/Integral/SetToL1.lean 5 2 ['github-actions', 'mcdoll'] hrmacbeth
assignee:hrmacbeth
29-32372
29 days ago
36-44840
1 month ago
36-62590
36 days
29909 Vierkantor
author:Vierkantor
feat(CI): add build output to CI workflows This PR uses the Zulip build report script (originally developed for the nightly-regression-report workflow) to add a summary of build output to other Zulip posts about workflow results. This allows us to more easily see the origin of a failure. This requires redoing the script a little to make it a bit more flexible, and the output is slightly reformatted to become consistent across the various workflows (4 of them that post to Zulip). We don't do so for the nightly-testing failures, since those run in a different workflow, and it would be a lot of work to access the command output from another workflow. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CI 93/69 .github/workflows/daily.yml,.github/workflows/nightly-docgen.yml,.github/workflows/nightly-regression-report.yml,scripts/zulip_build_report.sh 4 1 ['github-actions'] robertylewis
assignee:robertylewis
28-32365
28 days ago
35-70140
1 month ago
35-70118
35 days
25974 scholzhannah
author:scholzhannah
feat(Topology/Compactness/CompactlyCoherentSpace): compact coherentification (k-ification) This PR defines the notion of turning an arbitrary topological space into a compactly coherent space. Compactly coherent spaces are commonly referred to as "compactly generated spaces" or "k-spaces" in the literature while the operation of turning a space into such as space is called the "k-ification". There are however three different notions that are described with this name. To disambiguate we use the names "compactly coherent space" and "compactcoherentification" here. See [this wikipedia page](https://en.wikipedia.org/wiki/Compactly_generated_space) for an explanation of these notions. This PR continues the work from #25318. Original PR: https://github.com/leanprover-community/mathlib4/pull/25318 Co-authored-by: Floris van Doorn large-import t-topology 174/5 Mathlib/Topology/Compactness/CompactlyCoherentSpace.lean 1 4 ['github-actions', 'joelriou', 'scholzhannah'] ADedecker
assignee:ADedecker
28-2622
28 days ago
28-74744
28 days ago
127-55154
127 days
26287 mbkybky
author:mbkybky
feat(Data/ENat/Lattice): coercion to `WithBot ℕ∞` commutes with `biSup` The coercion from `ℕ∞` to `WithBot ℕ∞` commutes with `biSup` and `biInf`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 24/0 Mathlib/Data/ENat/Lattice.lean 1 5 ['github-actions', 'kckennylau', 'mbkybky'] ericrbg
assignee:ericrbg
27-69115
27 days ago
27-69115
27 days ago
107-70338
107 days
25969 101damnations
author:101damnations
feat(RepresentationTheory/Homological/GroupHomology/Functoriality): the degree 1 part of the corestriction-coinflation exact sequence Given a `G`-representation `A` and a normal subgroup `S` of `G`, this PR defines the corestriction-coinflation short complex `H₁(S, A) ⟶ H₁(G, A) ⟶ H₁(G ⧸ S, A_S)` induced by the natural inclusion `S → G` and projections `G → G / S, A → A_S`. We prove it's exact, and that the righthand map is an epimorphism. --- - [x] depends on: #21652 - [x] depends on: #21732 - [x] depends on: #21733 - [x] depends on: #21735 - [x] depends on: #21736 - [x] depends on: #21738 - [x] depends on: #25868 - [x] depends on: #25873 - [x] depends on: #25880 - [x] depends on: #25884 - [x] depends on: #25888 - [x] depends on: #25939 - [x] depends on: #25952 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --- *Earlier version at #22656.* t-algebra
label:t-algebra$
262/9 Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean,Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean 5 n/a ['101damnations', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
27-49990
27 days ago
unknown
unknown
26923 oliver-butterley
author:oliver-butterley
feat(Dynamics/BirkhoffSum): add the pointwise ergodic theorem (Birkhoff's) The Pointwise Ergodic Theorem, also known as Birkhoff's Ergodic Theorem. Co-authored-by: Lua Viana Reis - [x] depends on: #26074 - [x] depends on: #26807 - [x] depends on: #26810 - [x] depends on: #26840 - [x] depends on: #26842 - [x] depends on: #26848 - [x] depends on: #26851 - [x] depends on: #26852 - [x] depends on: #26853 - [x] depends on: #27008 - [x] depends on: #28901 Zulip: [PR thread](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2326923.20The.20pointwise.20ergodic.20theorem.20.28Birkhoff's.29/with/527835158) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-dynamics 401/0 Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Pointwise.lean 2 13 ['D-Thomine', 'github-actions', 'leanprover-community-bot-assistant', 'lua-vr', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] urkud
assignee:urkud
26-86299
26 days ago
64-18742
2 months ago
70-74609
70 days
29734 bwangpj
author:bwangpj
feat(Probability/Kernel): \phi-irreducibility of kernels Define powers of kernels, the Chapman-Kolmogorov equations, as well as \phi-irreducibility of kernels, following Robert-Casella, "Monte Carlo Statistical Methods", Definition 6.13. Co-authored-by: Matteo Cipollina @or4nge19 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 160/8 Mathlib.lean,Mathlib/Probability/Kernel/Composition/Comp.lean,Mathlib/Probability/Kernel/Composition/CompMap.lean,Mathlib/Probability/Kernel/Irreducible.lean,docs/references.bib 5 6 ['RemyDegenne', 'bwangpj', 'github-actions'] RemyDegenne
assignee:RemyDegenne
25-78326
25 days ago
35-67484
1 month ago
42-20122
42 days
29999 jeremypparker
author:jeremypparker
chore(Analysis/Fourier/AddCircle): remove stale comment --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 0/1 Mathlib/Analysis/Fourier/AddCircle.lean 1 2 ['Ruben-VandeVelde', 'github-actions', 'jeremypparker'] sgouezel
assignee:sgouezel
25-32394
25 days ago
33-1142
1 month ago
33-1175
33 days
29376 vlad902
author:vlad902
feat(SimpleGraph): helper lemmas for `Walk.IsSubwalk` t-combinatorics 29/0 Mathlib/Combinatorics/SimpleGraph/Walk.lean 1 1 ['github-actions'] awainverse
assignee:awainverse
25-2171
25 days ago
53-10088
1 month ago
53-10122
53 days
25814 vlad902
author:vlad902
feat(SimpleGraph): weaker condition for paths in acyclic graphs `IsAcyclic.isPath_iff_chain'` defines a weaker condition for proving that a walk is a path, in particular it shows that rather than proving that all vertices in the support of a walk are distinct, one must only show that consecutive edges are distinct (e.g. every other vertex must be distinct.) This leads to a simple corollary that trails are also paths in acyclic graphs. I had a need for this when formalizing Cayley graphs, since this condition maps cleanly onto words in free groups being reduced. --- *This PR continues the work from #25630.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/25630* t-combinatorics 38/0 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean 2 2 ['github-actions', 'vlad902'] kmill
assignee:kmill
25-1167
25 days ago
138-70980
4 months ago
138-70954
138 days
29164 vlad902
author:vlad902
feat(SimpleGraph): Hall's Marriage Theorem for bipartite graphs Derive the graph theoretic proof of Hall's marriage theorem from the combinatorial version. Note that I specifically implement this for the more general case of infinite graphs that are locally finite (e.g. every vertex has only finite neighbors.) As a result, the theorem depends on some category theoretic infrastructure required for the infinite combinatorial formulation of Hall's Marriage Theorem and hence I've placed the theorems into their own file to avoid requiring it in `Matching.lean` - [ ] depends on: #29162 t-combinatorics 130/7 Mathlib.lean,Mathlib/Combinatorics/Hall/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Hall.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,docs/1000.yaml 5 2 ['github-actions', 'mathlib4-dependent-issues-bot'] b-mehta
assignee:b-mehta
24-78852
24 days ago
45-21397
1 month ago
45-24620
45 days
25183 YaelDillies
author:YaelDillies
feat: convolution product on linear maps from a coalgebra to an algebra Construct the ring structure on linear maps `C → A` where `C` is a coalgebra and `A` an algebra, where multiplication is given by `(f * g)(x) = ∑ f x₍₁₎ * g x₍₂₎` in Sweedler notation or ``` | μ | | / \ f * g = f g | | \ / δ | ``` diagrammatically, where `μ` stands for multiplication and `δ` for comultiplication. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Mul.60.20instance.20on.20algebra.20homomorphisms.20from.20monoid.20algebra) From Toric Co-authored-by: Michał Mrugała Co-authored-by: Yunzhou Xie --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) toric t-algebra
label:t-algebra$
261/10 Mathlib.lean,Mathlib/Algebra/Algebra/Bilinear.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/RingTheory/Coalgebra/Basic.lean,Mathlib/RingTheory/Coalgebra/Convolution.lean,Mathlib/RingTheory/Regular/RegularSequence.lean 7 88 ['YaelDillies', 'erdOne', 'eric-wieser', 'github-actions', 'kbuzzard', 'smorel394', 'themathqueen'] kbuzzard
assignee:kbuzzard
24-10275
24 days ago
62-1132
2 months ago
156-53578
156 days
26720 vlad902
author:vlad902
feat(SimpleGraph): lemmas relating edges and darts to the support Useful lemmas to make it easier to pass between the support/edges/darts of a walk. - [x] depends on: #25812 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 27/0 Mathlib/Combinatorics/SimpleGraph/Walk.lean 1 9 ['b-mehta', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vlad902'] b-mehta
assignee:b-mehta
23-80500
23 days ago
23-80500
23 days ago
47-20615
47 days
29833 vlad902
author:vlad902
feat(Set): helper lemmas about set cardinality A few lemmas I needed in formalizing Dilworth's theorem and vertex covers. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 19/0 Mathlib/Data/Set/Card.lean 1 13 ['Ruben-VandeVelde', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'themathqueen', 'vlad902'] nobody
23-69949
23 days ago
24-42861
24 days ago
38-79190
38 days
26347 mans0954
author:mans0954
feat(Data/Finset/RangeDistance): abs_sub_lt_of_mem_finset_range This PR continues the work from #23161. Original PR: https://github.com/leanprover-community/mathlib4/pull/23161 t-data 30/0 Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean 3 2 ['github-actions', 'mans0954'] alreadydone
assignee:alreadydone
23-59138
23 days ago
85-85770
2 months ago
127-8775
127 days
26885 pechersky
author:pechersky
feat(Topology/ValuativeRel): ValuativeTopology 𝒪[K] and even when not a field, `ValuativeRel 𝒪[K]` This is an example of something achievable with the new declarations that wasn't possible with Valued Such that we can discuss the valuations on the subring without always using coercions But to achieve this, one needs some juggling of the value groups --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [x] depends on: #26834 - [ ] depends on : #30135 t-algebra t-topology t-number-theory
label:t-algebra$
73/0 Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean 2 9 ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] alreadydone
assignee:alreadydone
23-49991
23 days ago
62-52734
2 months ago
112-37740
112 days
26827 pechersky
author:pechersky
feat(Analysis/Normed/ValuativeRel): helper instance for NormedField --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [x] depends on: #26713 - [x] depends on: #26826 t-algebra t-analysis t-number-theory
label:t-algebra$
211/27 Mathlib.lean,Mathlib/Analysis/Normed/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean 3 33 ['ADedecker', 'adamtopaz', 'erdOne', 'github-actions', 'kbuzzard', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] kbuzzard
assignee:kbuzzard
23-32566
23 days ago
76-65283
2 months ago
113-44598
113 days
30009 ADedecker
author:ADedecker
chore: rename `IsTopologicalGroup.toUniformSpace` to `IsTopologicalGroup.rightUniformSpace` I have plans to finally do left and right uniformities properly, but I'd like to do some of the remaining before the fact to ease review. I also take this opportunity to remove a duplication of private lemmas `extend_Z_bilin_aux` and `extend_Z_bilin_key`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 104/184 Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/LocallyConvex/Bounded.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Group/Quotient.lean,Mathlib/Analysis/Normed/Operator/Compact.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Topology/Algebra/Group/Defs.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean,Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean,Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean,Mathlib/Topology/Algebra/UniformFilterBasis.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean,Mathlib/Topology/ContinuousMap/Algebra.lean 23 3 ['github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] PatrickMassot
assignee:PatrickMassot
23-32391
23 days ago
30-55181
1 month ago
31-68586
31 days
30246 dwrensha
author:dwrensha
make Nat.digits use well-founded recursion once again #25864 made `Nat.digits` structurally recursive, which has some benefits. In doing so, however, it added significant complexity. As brought up in [this zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/structural.20recursion.20instead.20of.20well.20founded/near/543172385), on the balance that PR might not be considered an improvement. The present PR reverts that change (but keeps a code golf that was bundled with it). Note that recent improvements to core Lean mean that `simp` can handle the structurally recursive version without a problem: ```lean example : digits 10 123456789 = [9,8,7,6,5,4,3,2,1] := by simp [digits, digitsAux] ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 7/45 Mathlib/Data/Nat/Digits/Defs.lean 1 7 ['alreadydone', 'dwrensha', 'github-actions', 'plp127'] nobody
23-32193
23 days ago
23-60722
23 days ago
23-60754
23 days
28557 ShreckYe
author:ShreckYe
feat(Data/Nat/Factorization): some results on equality of powers of naturals proved from factorization I came across some math olympiad problems in number theory that could benefit from these theorems, expecially those on the prime power equality `p ^ m = a ^ n`. A specialized `eq_of_factorization_eq'` is added BTW to help with proof search. t-data 100/0 Mathlib/Data/Nat/Factorization/Basic.lean,Mathlib/Data/Nat/Factorization/Defs.lean,Mathlib/Data/Nat/Factorization/PrimePow.lean 3 13 ['Ruben-VandeVelde', 'ShreckYe', 'github-actions'] pechersky
assignee:pechersky
23-20498
23 days ago
23-22182
23 days ago
70-16328
70 days
28484 euprunin
author:euprunin
chore(Data): deprecate `toReal_eq_toReal`, `count_eq_of_nodup` and `smul_mat_cons` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 16/25 Archive/Wiedijk100Theorems/BallotProblem.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/Data/List/Dedup.lean,Mathlib/Data/List/FinRange.lean,Mathlib/Data/List/Nodup.lean,Mathlib/LinearAlgebra/Matrix/Notation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Integral/Layercake.lean,Mathlib/Probability/Distributions/Exponential.lean,Mathlib/Probability/Independence/Integration.lean,Mathlib/Probability/Kernel/Condexp.lean,Mathlib/Topology/Instances/ENNReal/Lemmas.lean 13 13 ['b-mehta', 'bryangingechen', 'euprunin', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot', 'pechersky', 'qawbecrdtey'] pechersky
assignee:pechersky
22-61572
22 days ago
22-61572
22 days ago
72-5041
72 days
28950 Vierkantor
author:Vierkantor
fix(TacticAnalysis): remove syntax range check In #28802 we discovered the tactic analysis framework does not fire on declarations using `where` clauses. The reason is that `def foo where ...` gets turned into `def foo := { ... }`, and the `{ ... }` syntax is assigned a range outside of the `where ...` syntax; this causes the syntax range check to omit the whole declaration body. Moreover, [Verso involves pieces of syntax without any range at all](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Possible.20Verso.E2.80.93Mathlib.20conflict/with/543352839). So the range of a piece of syntax is essentially meaningless and we should not check it at all. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 18/11 Mathlib/Tactic/TacticAnalysis.lean,MathlibTest/TacticAnalysis.lean 2 3 ['Vierkantor', 'github-actions', 'thorimur'] robertylewis
assignee:robertylewis
22-61073
22 days ago
64-446
2 months ago
64-422
64 days
28389 euprunin
author:euprunin
chore(Algebra/Group/Subgroup): deprecate `sup_subgroupOf_eq` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
9/13 Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/GroupTheory/PGroup.lean 2 4 ['Ruben-VandeVelde', 'chrisflav', 'euprunin', 'github-actions'] chrisflav
assignee:chrisflav
22-47302
22 days ago
22-47761
22 days ago
45-85058
45 days
26985 agjftucker
author:agjftucker
feat(Analysis/Calculus/Implicit): define implicitFunOfProdDomain This PR continues the work from #16743. Original PR: https://github.com/leanprover-community/mathlib4/pull/16743 --- - [x] depends on: #28352 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 107/4 Mathlib/Analysis/Calculus/Implicit.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] hrmacbeth
assignee:hrmacbeth
22-32394
22 days ago
30-6482
1 month ago
30-8060
30 days
29425 pechersky
author:pechersky
feat(NumberTheory/Padics/Torsion): `HasEnoughRootsOfUnity ℤ_[p] (p - 1)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [x] depends on: #29403 - [x] depends on: #29404 - [x] depends on: #29405 - [x] depends on: #29408 - [x] depends on: #29424 t-ring-theory 179/0 Mathlib.lean,Mathlib/NumberTheory/Padics/Torsion.lean,Mathlib/RingTheory/ZMod/Torsion.lean 3 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] erdOne
assignee:erdOne
22-32389
22 days ago
29-63659
29 days ago
29-64292
29 days
29361 FlAmmmmING
author:FlAmmmmING
feat: Catalan generating function as a formal power series We introduce the Catalan generating function as a formal power series over `ℕ`. ## Main Definitions * `PowerSeries.catalanSeries`: The Catalan generating function as a power series. ## Main Results * `PowerSeries.sum_coeff_X_catalanSeries`: When `n` is a natural number, each term in the sum `coeff i X * catalan (n - i)` is 0 except for `i = 1`. * `PowerSeries.coeff_X_mul_catalanSeries`: The coefficient of `X * catalanSeries` at `X^n` is `catalan (n - 1)` when `n > 0`. * `PowerSeries.catalanSeries_one_add_X_mul_self_sq`: The Catalan generating function satisfies the equation `catalanSeries = 1 + X * catalanSeries ^ 2`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 71/0 Mathlib.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean 2 4 ['Ruben-VandeVelde', 'github-actions', 'wwylele'] kbuzzard
assignee:kbuzzard
21-8991
21 days ago
54-5066
1 month ago
54-5096
54 days
30107 grunweg
author:grunweg
chore: track occurrences of 'nonrec' as technical debt Matches leanprover-community/leanprover-community.github.io#689: only merge when that is deemed a good idea. -------- TODO: make the count more robust, for instance count all occurrences of "^nonrec " plus those of "^[private|protected] nonrec ". --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt CI 1/0 scripts/technical-debt-metrics.sh 1 1 ['github-actions'] robertylewis
assignee:robertylewis
20-32385
20 days ago
28-5273
28 days ago
28-5251
28 days
30116 FormulaRabbit81
author:FormulaRabbit81
feat(Measure): proof that a relatively compact set of measures is tight --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-measure-probability 196/2 Mathlib/MeasureTheory/Measure/Tight.lean 1 1 ['github-actions'] kex-y
assignee:kex-y
20-32385
20 days ago
27-42641
27 days ago
27-42674
27 days
29322 xroblot
author:xroblot
feat(RingTheory/Localization/AtPrime): bijection between prime ideals Let `R ⊆ S` be an extension of rings and `p` be a prime ideal of `R`. Denote by `Rₚ` the localization of `R` at the complement of `p` and by `Sₚ` the localization of `S` at the (image) of the complement of `p`. In this PR, we study the extension `Rₚ ⊆ Sₚ` and the relation between the (nonzero) prime ideals of `Sₚ` and the prime ideals of `S` above `p`. In particular, we prove that (under suitable conditions) they are in bijection. In a following PR #27706, we prove that the residual degree and ramification index are preserved by this bijection. Note. The new file `RingTheory.Localization.AtPrime.Extension` is imported in `RingTheory.Trace.Quotient` because one function from the latter was moved to the former, but the plan is eventually to move the isomorphisms proved in `RingTheory.Trace.Quotient` to `RingTheory.Localization.AtPrime.Basic` and `RingTheory.Localization.AtPrime.Extension` where they belong. This will be done in #27706. --- t-ring-theory 147/8 Mathlib.lean,Mathlib/RingTheory/DedekindDomain/Instances.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Localization/AtPrime/Extension.lean,Mathlib/RingTheory/Trace/Quotient.lean 6 11 ['chrisflav', 'github-actions', 'xroblot'] chrisflav
assignee:chrisflav
20-8793
20 days ago
20-8793
20 days ago
53-11763
53 days
30355 kckennylau
author:kckennylau
feat(Logic): graded functions This PR defines a class of graded functions, called `GradedFunLike`. It is intended to be used in #30312 to characterise a class of graded ring homomorphisms, where it is invoked as `[GradedFunLike F 𝒜 ℬ] [RingHomClass F A B]`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 41/0 Mathlib.lean,Mathlib/Data/FunLike/Graded.lean 2 1 ['github-actions'] nobody
19-78130
19 days ago
20-32201
20 days ago
20-32239
20 days
29856 mans0954
author:mans0954
feat(Analysis/Normed/Ring/Basic): Add NonUnitalNonAssocSeminormedRing and NonUnitalNonAssocNormedRing Adds the classes `NonUnitalNonAssocSeminormedRing` and `NonUnitalNonAssocNormedRing` and relaxes the `NonUnitalSeminormedRing` section to `NonUnitalNonAssocSeminormedRing`. Examples of non-unital non-associative normed rings include non-untial JB-algebras and non-unital JB*-algebras. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 110/11 Mathlib/Analysis/Normed/Ring/Basic.lean,MathlibTest/TCSynth.lean 2 1 ['github-actions'] ADedecker
assignee:ADedecker
19-59814
19 days ago
37-72355
1 month ago
37-72365
37 days
29871 zach1502
author:zach1502
feat(Matrix/Transvection): Gauss pivot determinant identity and pivot preservation This PR adds two lemmas formalizing standard Gaussian pivot identities: * `Matrix.Transvection.listTransvecCol_mul_mul_listTransvecRow_pivot`: After applying the canonical left/right transvection products that clear the last column and row, the pivot (bottom-right) entry of a matrix is unchanged. Marked `@[simp]`. * `Matrix.Transvection.det_eq_detTopLeft_mul_pivot`: If the pivot entry is nonzero, then the determinant of the matrix factors as the determinant of the top-left block times the pivot entry, after performing the canonical transvections. This is the usual Gauss–pivot determinant identity. * Added simple usage tests in `MathlibTest/matrix.lean` to check that the new lemmas are usable by `simp`/`simpa`. --- --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
94/0 Mathlib/LinearAlgebra/Matrix/Transvection.lean,MathlibTest/matrix.lean 2 3 ['github-actions', 'riccardobrasca', 'zach1502'] riccardobrasca
assignee:riccardobrasca
19-56246
19 days ago
36-48676
1 month ago
37-27739
37 days
29976 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Topology/Semicontinuous): lower bounds on compact sets Prove that lower semicontinuous functions attain their lower bound on nonempty compact sets, and the analogous lemma for upper semicontinuous functions. By the way, add several basic results for semicontinuous functions, relating the WithinAt, At, On versions. Co-authored with @ADedecker --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 300/1 Mathlib/Order/Filter/Extr.lean,Mathlib/Topology/Semicontinuous.lean 2 1 ['github-actions'] TwoFX
assignee:TwoFX
19-49832
19 days ago
33-51752
1 month ago
33-51728
33 days
28560 euprunin
author:euprunin
chore(Combinatorics/Quiver): golf entire `lift_spec` using `rfl` ---
Show trace profiling of lift_spec: <10 ms before, <10 ms after 🎉 ### Trace profiling of `lift_spec` before PR 28560 ```diff diff --git a/Mathlib/Combinatorics/Quiver/Symmetric.lean b/Mathlib/Combinatorics/Quiver/Symmetric.lean index 33e371b283..76a3371b36 100644 --- a/Mathlib/Combinatorics/Quiver/Symmetric.lean +++ b/Mathlib/Combinatorics/Quiver/Symmetric.lean @@ -164,6 +164,7 @@ def lift [HasReverse V'] (φ : Prefunctor V V') : | Sum.inl g => φ.map g | Sum.inr g => reverse (φ.map g) +set_option trace.profiler true in theorem lift_spec [HasReverse V'] (φ : Prefunctor V V') : Symmetrify.of.comp (Symmetrify.lift φ) = φ := by fapply Prefunctor.ext ``` ``` ✔ [147/147] Built Mathlib.Combinatorics.Quiver.Symmetric (1.3s) Build completed successfully (147 jobs). ``` ### Trace profiling of `lift_spec` after PR 28560 ```diff diff --git a/Mathlib/Combinatorics/Quiver/Symmetric.lean b/Mathlib/Combinatorics/Quiver/Symmetric.lean index 33e371b283..3adf874946 100644 --- a/Mathlib/Combinatorics/Quiver/Symmetric.lean +++ b/Mathlib/Combinatorics/Quiver/Symmetric.lean @@ -164,13 +164,10 @@ def lift [HasReverse V'] (φ : Prefunctor V V') : | Sum.inl g => φ.map g | Sum.inr g => reverse (φ.map g) +set_option trace.profiler true in theorem lift_spec [HasReverse V'] (φ : Prefunctor V V') : Symmetrify.of.comp (Symmetrify.lift φ) = φ := by - fapply Prefunctor.ext - · rintro X - rfl - · rintro X Y f - rfl + tauto theorem lift_reverse [h : HasInvolutiveReverse V'] (φ : Prefunctor V V') {X Y : Symmetrify V} (f : X ⟶ Y) : ``` ``` ✔ [147/147] Built Mathlib.Combinatorics.Quiver.Symmetric (1.2s) Build completed successfully (147 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-combinatorics easy 2/6 Mathlib/Combinatorics/Quiver/Symmetric.lean 1 1 ['github-actions'] awainverse
assignee:awainverse
19-44353
19 days ago
19-44353
19 days ago
72-60704
72 days
27664 pechersky
author:pechersky
feat(Topology,Analysis): discrete topology metric space and normed groups Explicit construction of the discrete topology metric space and normed groups where `dist x y = 1` for all `x != y` Provide PseudoMetricSpace, MetricSpace, Seminormed(Add)Group, and Normed(Add)Group constructions --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 137/0 Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Topology/MetricSpace/Basic.lean,Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean 3 4 ['github-actions', 'kckennylau', 'pechersky'] urkud
assignee:urkud
19-42655
19 days ago
91-22404
2 months ago
91-22389
91 days
27754 Parcly-Taxel
author:Parcly-Taxel
feat: `finCycle` as iterated `finRotate` Originally used in #25786, but eventually discovered to be unnecessary. t-logic 26/5 Mathlib/Logic/Equiv/Fin/Rotate.lean 1 1 ['github-actions', 'kckennylau'] fpvandoorn
assignee:fpvandoorn
19-41670
19 days ago
89-67140
2 months ago
89-67185
89 days
29744 espottesmith
author:espottesmith
feat(Combinatorics): define directed hypergraphs This PR defines directed hypergraphs: ``` @[ext] structure DiHypergraph (α : Type*) where /-- The vertex set -/ vertexSet : Set α /-- The edge set -/ edgeSet : Set ((Set α) × (Set α)) /-- Each edge is a pair (s, d), where s ⊆ vertexSet and d ⊆ vertexSet -/ edge_src_dst_isSubset_vertexSet' : ∀ ⦃e⦄, e ∈ edgeSet → e.1 ⊆ vertexSet ∧ e.2 ⊆ vertexSet ``` Additional definitions: - tail/head stars and negative/positive stars - some special cases (B-Graph, F-Graph, BF-Graph, and what I'm calling a "non-endless" dihypergraph, where neither the source/tail nor the destination/head are empty) - Vertex and (hyper)edge adjacency - isolated vertices - empty and nonempty dihypergraphs The design employed here is based off of #28613, but this PR does not depend on that one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 391/0 Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean 2 1 ['github-actions'] b-mehta
assignee:b-mehta
19-32392
19 days ago
41-81392
1 month ago
41-81437
41 days
30124 erdOne
author:erdOne
feat(RingTheory): `IsAdicComplete I R ↔ CompleteSpace R ∧ T2Space R` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-topology
label:t-algebra$
40/0 Mathlib/Order/Filter/Bases/Basic.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Topology.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Separation/Basic.lean 5 1 ['github-actions'] alreadydone
assignee:alreadydone
19-32390
19 days ago
26-81801
26 days ago
26-81904
26 days
30141 shalliso
author:shalliso
fix(Topology/Baire/Lemmas): fix index type in isMeagre_iUnion The index set ι needs to be of type Sort* instead of type Type* in isMeagre_iUnion otherwise I get the following message when I try to use it: typeclass instance problem is stuck, it is often due to metavariables Countable ?m.27 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-topology 1/1 Mathlib/Topology/GDelta/Basic.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
19-32386
19 days ago
26-45120
26 days ago
26-45154
26 days
29347 themathqueen
author:themathqueen
refactor(Algebra/Star/StarAlgHom): let `StarAlgEquiv` extend `StarRingEquiv` instead of `RingEquiv` Instead of having `StarAlgEquiv` extend `RingEquiv` and have properties `map_star'` and `map_smul'`, it now extends `StarRingEquiv` with only `map_smul'`. --- Will add more API in the next PR. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
29/36 Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean 2 5 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'themathqueen'] dupuisf and kbuzzard
assignee:dupuisf assignee:kbuzzard
19-25473
19 days ago
52-45309
1 month ago
54-68263
54 days
26975 Whysoserioushah
author:Whysoserioushah
feat: a norm_num extension for complex numbers co-authored-by : @thefundamentaltheor3m, @hrmacbeth --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 350/0 Mathlib.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/NormNum/NormNumI.lean,MathlibTest/norm_numI.lean 5 52 ['JovanGerb', 'Whysoserioushah', 'dupuisf', 'eric-wieser', 'github-actions', 'hrmacbeth'] robertylewis
assignee:robertylewis
18-75891
18 days ago
103-56515
3 months ago
103-60823
103 days
27047 YaelDillies
author:YaelDillies
feat: `MonoidHom.toAdditiveRight` as a `MulEquiv` From Toric --- - [x] depends on: #29800 I haven't yet been very thorough with the new lemmas. I first want to hear thoughts about the names [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) toric t-algebra
label:t-algebra$
31/7 Mathlib/Algebra/Group/TypeTags/Hom.lean 1 6 ['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] adomani
assignee:adomani
18-71616
18 days ago
18-71935
18 days ago
87-23028
87 days
29449 mitchell-horner
author:mitchell-horner
feat(Combinatorics/SimpleGraph): add Turán density related theorems Refactors `tendsto_turanDensity` and implements `turanDensity_eq_sInf` and `isContained_of_card_edgeFinset` (theorems that are common in proofs involving Turán density). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 51/14 Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean 1 13 ['YaelDillies', 'github-actions', 'mitchell-horner'] YaelDillies
assignee:YaelDillies
18-71181
18 days ago
23-17257
23 days ago
49-35330
49 days
25907 mans0954
author:mans0954
feat: low order roots of unity This PR continues the work from #25470. Original PR: https://github.com/leanprover-community/mathlib4/pull/25470 t-algebra
label:t-algebra$
182/0 Mathlib/Algebra/CharP/Invertible.lean,Mathlib/RingTheory/RootsOfUnity/Complex.lean 2 3 ['github-actions', 'mans0954', 'urkud'] kim-em
assignee:kim-em
18-32502
18 days ago
135-77843
4 months ago
135-77883
135 days
29947 JaafarTanoukhi
author:JaafarTanoukhi
feat(Combinatorics/Digraph): Maps Ported `SimpleGraph/Maps.lean` to `Digraph/Maps.lean` for future PRs related to issue #[26771](https://github.com/leanprover-community/mathlib4/issues/26771) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 476/0 Mathlib.lean,Mathlib/Combinatorics/Digraph/Maps.lean 2 1 ['github-actions'] awainverse
assignee:awainverse
18-32402
18 days ago
34-62325
1 month ago
34-62364
34 days
30148 mbkybky
author:mbkybky
chore(RingTheory/Spectrum/Prime/Module): golf `stableUnderSpecialization_support` using `mem_support_mono` Golf [Module.stableUnderSpecialization_support](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Spectrum/Prime/Module.html#Module.stableUnderSpecialization_support) using [Module.mem_support_mono](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Support.html#Module.mem_support_mono). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 2/6 Mathlib/RingTheory/Spectrum/Prime/Module.lean 1 1 ['github-actions'] chrisflav
assignee:chrisflav
18-32397
18 days ago
26-23696
26 days ago
26-23731
26 days
30180 mcdoll
author:mcdoll
feat(Analysis/Calculus): add a version of bounding iterated derivatives of compositions with fewer assumptions on differentiability --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 17/3 Mathlib/Analysis/Calculus/ContDiff/Bounds.lean 1 1 ['github-actions'] hrmacbeth
assignee:hrmacbeth
18-32393
18 days ago
25-58429
25 days ago
25-58467
25 days
30029 ADedecker
author:ADedecker
feat: define IsRightUniformGroup and IsLeftUniformGroup This mostly contains the definition and additional documentation. Future PRs will take care of expanding the theory, and proving in particular that `IsUniformGroup` is precisely the conjuction of these two typeclasses. --- - [x] depends on: #30025 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 199/36 Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean 2 12 ['ADedecker', 'github-actions', 'leanprover-bot', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] PatrickMassot
assignee:PatrickMassot
17-66609
17 days ago
30-55059
1 month ago
30-66290
30 days
29758 SnirBroshi
author:SnirBroshi
feat(RingTheory/RootsOfUnity): exp(pi * i * q) is a root of unity for rational q --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 28/1 Mathlib/RingTheory/RootsOfUnity/Complex.lean 1 5 ['Ruben-VandeVelde', 'SnirBroshi', 'github-actions', 'kckennylau'] chrisflav
assignee:chrisflav
17-64528
17 days ago
40-37203
1 month ago
40-44203
40 days
30163 SnirBroshi
author:SnirBroshi
feat(Data/Set/Lattice): useful equivalences of `biUnion` and `biInter` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 25/0 Mathlib/Data/Set/Lattice.lean 1 1 ['github-actions'] nobody
17-52776
17 days ago
25-73645
25 days ago
25-73695
25 days
30217 SnirBroshi
author:SnirBroshi
feat(Data/List/GetD): `getD` is surjective iff every element is in the list --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 19/0 Mathlib/Data/List/GetD.lean 1 2 ['github-actions', 'themathqueen'] nobody
17-51296
17 days ago
24-42802
24 days ago
24-42838
24 days
28793 grunweg
author:grunweg
feat: smooth immersions Define smooth immersions between manifolds. We use a definition which allows for corners, infinite dimension and arbitrary fields. Future PRs will - prove that immersions are C^n (#28796), - prove another characterisation of immersions: f is immersed at x iff the differential df_x splits, i.e. is injective, has closed range and its image has a closed complement, and in particular that a map between finite-dimensional manifolds over a complete field is an immersion iff its differential is injective, - use this to prove that the product (#28853) and composition of immersions is an immersion, - use this theory to give more conceptual proofs of half of `Manifold/Instances/Icc.lean` (#29077) - define smooth embeddings and immersed and embedded smooth submanifolds --- - [x] depends on: #28701 Most of the above has been done at https://github.com/grunweg/mathlib4/tree/MR-define-immersions. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 487/0 Mathlib.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,docs/references.bib 4 98 ['chrisflav', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'sgouezel'] sgouezel
assignee:sgouezel
17-47612
17 days ago
20-24687
20 days ago
31-48670
31 days
30047 ooovi
author:ooovi
feat(Combinatorics/SimpleGraph): edge labellings Add edge labellings for `SimpleGraph` as well as some basic lemmata. --- This is mostly a cleaned up part of @b-mehta's lean4 port of their [formalisation of an exponentially better upper bound on Ramsey numbers ](https://github.com/b-mehta/ExponentialRamsey/). I need these definitions for another project on Ramsey theory. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 234/3 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/EdgeLabelling.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean 5 45 ['YaelDillies', 'b-mehta', 'github-actions', 'ooovi', 'vlad902'] b-mehta
assignee:b-mehta
16-32376
16 days ago
23-67090
23 days ago
28-77550
28 days
30171 smmercuri
author:smmercuri
feat(DedekindDomain/AdicValuation): `le_one` lemmas for `HeightOneSpectrum.valuation` and specialisations to `Rat` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 55/0 Mathlib/RingTheory/DedekindDomain/AdicValuation.lean 1 5 ['erdOne', 'github-actions', 'smmercuri'] erdOne
assignee:erdOne
15-82552
15 days ago
25-63333
25 days ago
25-63364
25 days
30499 harahu
author:harahu
doc(AkraBazzi): minor tweaks and additions Broken out of #29464 to simplify review. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability 19/13 Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean 2 7 ['github-actions', 'grunweg', 'harahu'] nobody
15-76058
15 days ago
15-76058
15 days ago
15-79107
15 days
30285 kckennylau
author:kckennylau
chore: document Spec(R) notation in docstring of Spec #30272 changed the `Spec(R)` notation to scoped, so I am including this new information in the docstring of `AlgebraicGeometry.Spec`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 13/0 Mathlib/AlgebraicGeometry/Scheme.lean 1 1 ['github-actions'] alexjbest
assignee:alexjbest
15-32386
15 days ago
22-40557
22 days ago
22-40593
22 days
27254 yuanyi-350
author:yuanyi-350
2025 imo problem3 - [x] depends on: #28788 - [x] depends on: #28790 - [x] depends on: #28829 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) IMO 231/0 Archive.lean,Archive/Imo/Imo2025Q3.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean 3 28 ['github-actions', 'jsm28', 'kbuzzard', 'leanprover-community-bot-assistant', 'madvorak', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'themathqueen', 'wwylele', 'yuanyi-350'] jsm28
assignee:jsm28
15-3542
15 days ago
56-34484
1 month ago
90-9347
90 days
26961 mariainesdff
author:mariainesdff
feat(RingTheory/PowerSeries/Substitution): add API Co-authored-by: @AntoineChambert-Loir --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 57/5 Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean 2 13 ['Ruben-VandeVelde', 'github-actions', 'mariainesdff', 'mattrobball'] mattrobball
assignee:mattrobball
15-204
15 days ago
40-81264
1 month ago
88-14884
88 days
27567 themathqueen
author:themathqueen
feat(LinearAlgebra/TensorProduct/Associator): add `lid` and `assoc` tensor lemmas This adds `TensorProduct.lid_tensor` and `TensorProduct.assoc_tensor`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy
label:t-algebra$
31/2 Mathlib/LinearAlgebra/TensorProduct/Associator.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean 2 2 ['github-actions', 'themathqueen'] mattrobball
assignee:mattrobball
14-77489
14 days ago
79-53969
2 months ago
93-46797
93 days
30557 SnirBroshi
author:SnirBroshi
feat(Logic/Relation): a relation is reflexive iff it subsumes the equality relation feat(Logic/Relation): a relation is reflexive iff it subsumes the equality relation, and irreflexive iff the inequality relation subsumes it --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 6/0 Mathlib/Logic/Relation.lean 1 2 ['SnirBroshi', 'github-actions', 'vihdzp'] nobody
14-28684
14 days ago
14-49040
14 days ago
14-49078
14 days
30525 515801431
author:515801431
Polya_counting This PR introduces basic definitions and results about colorings under permutation group actions. A coloring is defined as a function X → Y, and the permutation group Equiv.Perm X acts on colorings by precomposition: (g • c) x = c (g⁻¹ • x) This formalizes the natural action of relabeling the elements of X. Main definitions MulAction (Equiv.Perm X) (X → Y): The action of the permutation group on colorings via precomposition. coloringEquiv (c₁ c₂ : X → Y) : Prop: Two colorings are equivalent if they lie in the same orbit under this action, i.e. ∃ f : Equiv.Perm X, f • c₁ = c₂. Main results smul_eq_iff_mem_stabilizer: Characterizes when two group actions on the same coloring are equal, showing that g • c = f • c ↔ f⁻¹ * g ∈ stabilizer c. coloringEquiv_equivalence: Proves that coloringEquiv defines an equivalence relation on X → Y. orbit_size_eq_index: Reformulates the orbit–stabilizer theorem in the context of colorings: |orbit c| = |Perm X| / |stabilizer c| Motivation These results provide foundational infrastructure for studying Burnside’s lemma and Pólya’s enumeration theorem in Mathlib, where the enumeration of distinct colorings up to symmetry plays a central role. new-contributor t-combinatorics 111/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean 2 2 ['IvanRenison', 'github-actions'] nobody
14-3704
14 days ago
15-26386
15 days ago
15-26424
15 days
29946 smmercuri
author:smmercuri
feat(InfinitePlace/Ramification): embeddings of unramified/ramified infinite places satisfy `IsUnmixed/IsMixed` --- - [x] depends on: #29945 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) FLT t-number-theory 67/1 Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean 1 4 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri', 'xroblot'] alexjbest
assignee:alexjbest
14-2854
14 days ago
29-84305
29 days ago
30-7984
30 days
30542 SnirBroshi
author:SnirBroshi
feat(Data/Sym/Sym2): `fromRel` is monotonic --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 11/1 Mathlib/Data/Sym/Sym2.lean 1 5 ['SnirBroshi', 'b-mehta', 'github-actions', 'vihdzp'] nobody
13-69795
13 days ago
14-79364
14 days ago
14-79397
14 days
28546 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… # Symbolic dynamics on groups: core API and entropy along finite shapes 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). new-contributor t-dynamics 751/0 Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/ToAdditive/GuessName.lean 3 84 ['Sfgangloff', 'eric-wieser', 'github-actions', 'kckennylau', 'sgouezel'] sgouezel
assignee:sgouezel
13-65514
13 days ago
13-65514
13 days ago
57-83044
57 days
30158 nicolaviolette
author:nicolaviolette
feat: combinatorics simplegraph basic --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 9/4 Mathlib/Combinatorics/SimpleGraph/Basic.lean 1 1 ['github-actions'] b-mehta
assignee:b-mehta
13-32383
13 days ago
25-84539
25 days ago
25-84573
25 days
30233 Komyyy
author:Komyyy
refactor(Topology/Sequences): generalize seq-compactness lemmas to metrizable space * [`IsSeqCompact.isCompact`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sequences.html#IsSeqCompact.isCompact) * [`UniformSpace.isCompact_iff_isSeqCompact`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sequences.html#UniformSpace.isCompact_iff_isSeqCompact) * [`UniformSpace.compactSpace_iff_seqCompactSpace`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sequences.html#UniformSpace.compactSpace_iff_seqCompactSpace) These are lemmas on uniform spaces which has countable uniformity, so can be generalized to pseudo-metrizable space. From [CLT](https://github.com/RemyDegenne/CLT) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-topology 20/7 Mathlib/Topology/Sequences.lean,docs/overview.yaml,docs/undergrad.yaml 3 1 ['github-actions'] grunweg
assignee:grunweg
13-32381
13 days ago
21-435
21 days ago
21-910
21 days
30602 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Walk): `mapLe` preservation lemmas feat(Combinatorics/SimpleGraph/Walk): specialize `map` preservation lemmas from for `mapLe` --- It's hard to use the existing `map` lemmas when dealing with `mapLe`, specifically the lemmas for `support`/`edges`/`edgeSet` contain a map in the `map` version but not in the `mapLe` version, since `mapLe` maps walks with `id`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 21/1 Mathlib/Combinatorics/SimpleGraph/Walk.lean 1 1 ['github-actions'] nobody
13-23379
13 days ago
13-23379
13 days ago
13-23440
13 days
30003 vlad902
author:vlad902
feat(Order): helper lemmas for `IsChain`/`IsAntichain` These were useful in formalizing Dilworth's theorem. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 23/2 Mathlib/Order/Antichain.lean,Mathlib/Order/Preorder/Chain.lean 2 23 ['YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vlad902'] YaelDillies
assignee:YaelDillies
12-45654
12 days ago
14-57082
14 days ago
32-24072
32 days
30626 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity/Connected): {`Subsingleton`, `Unique`, `Nonempty`} instances for `ConnectedComponent` feat(Combinatorics/SimpleGraph/Connectivity/Connected): add {`Subsingleton`, `Unique`, `Nonempty`} instances for `ConnectedComponent` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 4/4 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean 1 1 ['github-actions'] nobody
12-32312
12 days ago
12-32324
12 days ago
12-32369
12 days
29824 themathqueen
author:themathqueen
feat(Algebra/Order/Star): add `StarOrderedRing (Π i, A i)` --- - [x] depends on: #29823 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
38/0 Mathlib.lean,Mathlib/Algebra/Order/Star/Pi.lean 2 4 ['github-actions', 'mathlib4-dependent-issues-bot', 'themathqueen'] joneugster
assignee:joneugster
11-84628
11 days ago
19-84166
19 days ago
19-84565
19 days
28604 alreadydone
author:alreadydone
chore(Algebra/Ring/Defs): add two classes (minimally invasive version) Add the missing `NonAssocComm(Semi)ring` classes and add some missing instances between existing classes. Contrary to #28532, the approach here doesn't add any new `extends`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
59/17 Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean 3 21 ['alreadydone', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
11-65646
11 days ago
27-36588
27 days ago
28-9205
28 days
30037 linesthatinterlace
author:linesthatinterlace
feat: Fin.find update We currently define `Fin.find` in a way that is redundant (in the sense that it is just equivalent to `Fin.find?` in batteries). This PR replaces it with a definition that works closer to `Nat.find`, and links the new definition of `Fin.find` to `Fin.find?` in the natural way. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 159/104 Mathlib/Data/Fin/Tuple/Basic.lean 1 7 ['github-actions', 'linesthatinterlace', 'llllvvuu', 'mathlib4-merge-conflict-bot'] adamtopaz
assignee:adamtopaz
11-62793
11 days ago
29-59634
29 days ago
31-29139
31 days
28141 YaelDillies
author:YaelDillies
chore: deprecate `BialgHom.coe_toLinearMap` `BialgHom.toLinearMap` is a fake projection. From Toric --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory toric 5/11 Mathlib/RingTheory/Bialgebra/Hom.lean 1 8 ['YaelDillies', 'eric-wieser', 'github-actions'] alreadydone
assignee:alreadydone
11-43477
11 days ago
11-43477
11 days ago
81-9491
81 days
30559 SnirBroshi
author:SnirBroshi
feat(Data/Sym/Sym2): add `Sym2.diagSet` feat(Data/Sym/Sym2): add `Sym2.diagSet`, the set of elements on the diagonal --- This should help state theorems in simple graphs more easily (e.g. see `SimpleGraph.edgeSet_fromEdgeSet`, `SimpleGraph.edgeSet_sdiff_sdiff_isDiag`, `SimpleGraph.edgeSet_subset_setOf_not_isDiag`) and more importantly work with such statements. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 39/6 Mathlib/Data/Sym/Sym2.lean 1 1 ['github-actions'] nobody
11-34979
11 days ago
14-47241
14 days ago
14-47281
14 days
27606 CBirkbeck
author:CBirkbeck
Eisenstein q exp identity --- - [x] depends on: #26016 - [x] depends on: #27212 - [x] depends on: #27837 - [x] depends on: #27839 - [x] depends on: #27840 - [x] depends on: #28690 - [x] depends on: #27838 - [x] depends on: #27841 - [x] depends on: #27844 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import 124/6 Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean 1 11 ['MichaelStollBayreuth', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
11-32407
11 days ago
18-79400
18 days ago
19-58063
19 days
29980 mans0954
author:mans0954
refactor(RingTheory/Polynomial/Resultant/Quadratic): Re-implement QuadraticDiscriminant for R[X] Re-implement `Algebra/QuadraticDiscriminant` for polynomials. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/discriminants.20of.20low.20degree.20polynomials/with/538010519) --- - [ ] depends on: #29981 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 208/0 Mathlib.lean,Mathlib/RingTheory/Polynomial/Resultant/Quadratic.lean 2 3 ['JovanGerb', 'github-actions', 'mathlib4-dependent-issues-bot'] JovanGerb
assignee:JovanGerb
10-80525
10 days ago
20-52066
20 days ago
20-55949
20 days
30515 euprunin
author:euprunin
chore(Data/Nat): golf `findGreatest_eq_iff` using `grind` ---
Show trace profiling of findGreatest_eq_iff: 21 ms before, 39 ms after ### Trace profiling of `findGreatest_eq_iff` before PR 30515 ```diff diff --git a/Mathlib/Data/Nat/Find.lean b/Mathlib/Data/Nat/Find.lean index 4ac5779f75..8e95d6e030 100644 --- a/Mathlib/Data/Nat/Find.lean +++ b/Mathlib/Data/Nat/Find.lean @@ -176,6 +176,7 @@ lemma findGreatest_succ (n : ℕ) : lemma findGreatest_of_not (h : ¬ P (n + 1)) : findGreatest P (n + 1) = findGreatest P n := by simp [Nat.findGreatest, h] +set_option trace.profiler true in lemma findGreatest_eq_iff : Nat.findGreatest P k = m ↔ m ≤ k ∧ (m ≠ 0 → P m) ∧ ∀ ⦃n⦄, m < n → n ≤ k → ¬P n := by induction k generalizing m with ``` ``` ℹ [103/103] Built Mathlib.Data.Nat.Find (710ms) info: Mathlib/Data/Nat/Find.lean:180:0: [Elab.async] [0.021505] elaborating proof of Nat.findGreatest_eq_iff [Elab.definition.value] [0.020637] Nat.findGreatest_eq_iff [Elab.step] [0.020109] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) [Elab.step] [0.020104] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) [Elab.step] [0.020100] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) [Elab.step] [0.014891] by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) [Elab.step] [0.014884] by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) Build completed successfully (103 jobs). ``` ### Trace profiling of `findGreatest_eq_iff` after PR 30515 ```diff diff --git a/Mathlib/Data/Nat/Find.lean b/Mathlib/Data/Nat/Find.lean index 4ac5779f75..091200bd46 100644 --- a/Mathlib/Data/Nat/Find.lean +++ b/Mathlib/Data/Nat/Find.lean @@ -176,6 +176,7 @@ lemma findGreatest_succ (n : ℕ) : lemma findGreatest_of_not (h : ¬ P (n + 1)) : findGreatest P (n + 1) = findGreatest P n := by simp [Nat.findGreatest, h] +set_option trace.profiler true in lemma findGreatest_eq_iff : Nat.findGreatest P k = m ↔ m ≤ k ∧ (m ≠ 0 → P m) ∧ ∀ ⦃n⦄, m < n → n ≤ k → ¬P n := by induction k generalizing m with @@ -194,16 +195,7 @@ lemma findGreatest_eq_iff : rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] - constructor - · rintro ⟨hle, hP, hm⟩ - refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ - rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl - exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] - · rintro ⟨hle, hP, hm⟩ - refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, - fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ - rintro rfl - exact hk (hP k.succ_ne_zero) + grind lemma findGreatest_eq_zero_iff : Nat.findGreatest P k = 0 ↔ ∀ ⦃n⦄, 0 < n → n ≤ k → ¬P n := by simp [findGreatest_eq_iff] ``` ``` ℹ [103/103] Built Mathlib.Data.Nat.Find (704ms) info: Mathlib/Data/Nat/Find.lean:180:0: [Elab.async] [0.040019] elaborating proof of Nat.findGreatest_eq_iff [Elab.definition.value] [0.039235] Nat.findGreatest_eq_iff [Elab.step] [0.038893] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.038886] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.038881] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.033287] by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.033279] by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.022776] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.022745] rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.022740] rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.021688] grind Build completed successfully (103 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-data easy 1/10 Mathlib/Data/Nat/Find.lean 1 1 ['github-actions', 'vihdzp'] nobody
10-58648
10 days ago
10-58648
10 days ago
15-59100
15 days
30567 wwylele
author:wwylele
feat(Combinatorics): generating function for partitions This is the start of a series of PR aiming to prove two theorems related to partition: - [Glaisher's theorem](https://en.wikipedia.org/wiki/Glaisher%27s_theorem), which is a generalization of the existing [Euler's Partition theorem](https://github.com/leanprover-community/mathlib4/blob/master/Archive/Wiedijk100Theorems/Partition.lean). The proof will use the infinite generating function, upgrading the current proof that uses finite ones, and resolving this [TODO](https://github.com/leanprover-community/mathlib4/blob/master/Archive/Wiedijk100Theorems/Partition.lean#L66) - [Pentagonal number theorem](https://en.wikipedia.org/wiki/Pentagonal_number_theorem) and the recurrence relation on the partition function. I created a new file `Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean` to avoid importing PowerSeries stuff directly into the definition file, and along the way I moved the existing `Mathlib/Combinatorics/Enumerative/Partition.lean` to `Mathlib/Combinatorics/Enumerative/Partition/Basic.lean` . Not sure why github didn't recognize this as a file move, but there is no diff in that file and the total diff is much smaller --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 426/181 Archive/Wiedijk100Theorems/Partition.lean,Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Finsupp.lean,Mathlib/Combinatorics/Enumerative/Partition.lean,Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean 8 1 ['github-actions'] nobody
10-55719
10 days ago
10-57419
10 days ago
14-30511
14 days
30637 strihanje01
author:strihanje01
feat(Combinatorics/SetFamily/Lindstrom): Lindstrom's theorem for subfamilies with equal unions add Lindstrom's theorem and its strengthening for equal intersections --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 210/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/Lindstrom.lean 2 1 ['github-actions'] nobody
10-52313
10 days ago
11-59643
11 days ago
11-59689
11 days
22771 alreadydone
author:alreadydone
feat(Homotopy/Lifting): monodromy of covering maps and lifting criterion Define the monodromy of a covering map: given a path in the base space, lifting it through the covering map induces a bijection between the fibers at the two endpoints of the path. Definition 2.1 in https://ncatlab.org/nlab/show/monodromy. --- - [ ] depends on: #28234 - [x] depends on: #22649 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology 193/146 Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean,Mathlib/CategoryTheory/Groupoid.lean,Mathlib/Topology/Covering.lean,Mathlib/Topology/Homotopy/HomotopyGroup.lean,Mathlib/Topology/Homotopy/Lifting.lean,Mathlib/Topology/Homotopy/Product.lean 9 5 ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] PatrickMassot
assignee:PatrickMassot
10-48446
10 days ago
66-81107
2 months ago
144-35711
144 days
30315 SnirBroshi
author:SnirBroshi
feat(Topology/Connected/LocPathConnected): convenience lemma for `LocPathConnected` + `ConnectedSpace` → `PathConnectedSpace` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) awaiting-bench new-contributor t-topology 5/3 Mathlib/Topology/Connected/LocPathConnected.lean 1 12 ['SnirBroshi', 'github-actions', 'j-loreaux', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] PatrickMassot
assignee:PatrickMassot
4-64023
4 days ago
11-30235
11 days ago
20-78847
20 days
30322 kckennylau
author:kckennylau
feat(RingTheory): base change of graded algebra In this file we show that if `𝒜` is a graded `R`-algebra, and `S` is any `R`-algebra, then `S ⊗[R] 𝒜` (which is actually `fun i ↦ (𝒜 i).baseChange S`) is a graded `S`-algebra with the same grading. --- Split from #26061. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 269/48 Mathlib.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct/Decomposition.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Flat/Basic.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean,Mathlib/RingTheory/GradedAlgebra/TensorProduct.lean 12 1 ['github-actions'] dupuisf
assignee:dupuisf
10-32352
10 days ago
20-84074
20 days ago
20-84051
20 days
30432 kckennylau
author:kckennylau
feat(AlgebraicGeometry): define the non-vanishing locus of a set in Proj Given a subset `s : Set A`, the non-vanishing locus of `s` is the set of points whose corresponding prime ideal does not fully contain `s`. In other words, where not all elements of `s` vanish. I could not find a name for this in the literature. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 66/0 Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean 1 1 ['github-actions'] alexjbest
assignee:alexjbest
10-32350
10 days ago
18-4895
18 days ago
18-4929
18 days
30439 plp127
author:plp127
feat: `norm_num` extension for `IsSquare` on `Nat`, `Int`, `Rat` Write a `norm_num` extension to evaluate `IsSquare` for `Nat`, `Int`, `Rat`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 152/1 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/NormNum/IsSquare.lean,MathlibTest/norm_num_ext.lean 4 3 ['Rob23oba', 'github-actions', 'plp127'] dwrensha
assignee:dwrensha
10-32349
10 days ago
17-68708
17 days ago
17-68743
17 days
30224 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Hamiltonian): `p.support.get` is bijective --- - [x] depends on: #30223 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 7/0 Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean 1 2 ['github-actions', 'mathlib4-dependent-issues-bot'] kim-em
assignee:kim-em
10-14986
10 days ago
17-39476
17 days ago
17-40432
17 days
29765 YaelDillies
author:YaelDillies
feat: commutative monoids are internal monoids From Toric --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) toric t-category-theory 76/6 Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean 2 3 ['YaelDillies', 'eric-wieser', 'github-actions'] kim-em
assignee:kim-em
10-2239
10 days ago
41-8946
1 month ago
41-8979
41 days
29706 kim-em
author:kim-em
feat: add piCongrSigmaFiber and piCongrFiberwise equivalences ## Summary Add two new equivalence functions for working with fibers and sigma types: - `Equiv.piCongrSigmaFiber`: transforms between functions on sigma fibers and regular pi types - `Equiv.piCongrFiberwise`: lifts fiber-wise equivalences to product equivalences These functions are from the FLT (Fermat's Last Theorem) project and are useful for manipulating dependent function types indexed by fibers of a function. ## Details The new definitions allow for elegant transformations between: 1. Functions defined on sigma types representing fibers of a function 2. Regular dependent functions These are particularly useful in algebraic contexts where one needs to work with products indexed by fibers. ## Context This PR was prepared by Claude (Claude Code) based on the following prompt: > "Please read FLT/Mathlib/Logic/Equiv/Basic.lean, and also the corresponding file in the Mathlib repository. Please prepare a PR to Mathlib containing this content, putting it at an appropriate point in the corresponding Mathlib file. Make sure the PR is label FLT, and write in the PR comment an explanation that the PR was prepared by Claude, including quoting the prompting." The content is sourced from `/Users/kim/projects/lean/FLT/FLT/Mathlib/Logic/Equiv/Basic.lean` in the FLT project repository. 🤖 Generated with [Claude Code](https://claude.ai/code) FLT t-logic 39/0 Mathlib/Logic/Equiv/Basic.lean 1 5 ['Ruben-VandeVelde', 'github-actions', 'kim-em'] fpvandoorn
assignee:fpvandoorn
9-37144
9 days ago
42-74123
1 month ago
43-3930
43 days
27516 gaetanserre
author:gaetanserre
feat: add rational approximation lemma for suprema in `unitInterval` Add `sSup_eq_iUnion_rat` lemma that provides a rational approximation characterization of suprema in the unit interval. For monotone functions `f : α → I → ℝ`, the lemma establishes that the set of pairs where `a < sSup {x | f e.1 x < e.2}` equals the union over all rationals `q ∈ I` with `q > a` of the sets `{e | f e.1 q < e.2}`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 44/0 Mathlib/MeasureTheory/Constructions/UnitInterval.lean,Mathlib/Topology/UnitInterval.lean 2 7 ['gaetanserre', 'github-actions', 'mathlib4-merge-conflict-bot', 'ocfnash'] j-loreaux
assignee:j-loreaux
9-32376
9 days ago
65-69031
2 months ago
91-60026
91 days
28884 kim-em
author:kim-em
chore: deprecate ShiftLeft Int instance This PR proposes deprecating the `ShiftLeft Int` instance (which allows bit-shifting an integer by an integer), and similarly for `ShiftRight`. These are unused in Mathlib. I'm happy if someone wants to keep this, but I would ask that they: * fix the doc-strings to explain what happens for negative shifts * ~~restores the theorem `Int.shiftLeft_add` which I've commented out on `nightly-testing` (and then revert b33c9d7aaea on `nightly-testing`).~~ * ideally but optionally, complete the API, e.g. reducing shifts by casts back to shifts by a Nat t-data 22/3 Mathlib/Data/Int/Bitwise.lean 1 5 ['eric-wieser', 'github-actions', 'kim-em', 'mathlib4-merge-conflict-bot'] pechersky
assignee:pechersky
9-32375
9 days ago
43-32402
1 month ago
65-499
65 days
29014 ShreckYe
author:ShreckYe
feat(Data/List/Scan): some theorems that relate `scanl` with `foldl` I am not sure which is the best form of `getElem_scanl_eq_foldl_take` here, so I added several alternative forms. Feel free to remove any of them if necessary. t-data 35/0 Mathlib/Data/List/Scan.lean 1 9 ['ShreckYe', 'github-actions', 'themathqueen', 'vlad902'] pechersky
assignee:pechersky
9-32374
9 days ago
63-2489
2 months ago
63-2528
63 days
30041 josephmckinsey
author:josephmckinsey
feat(Algebra/Order/Floor): generalize mul_floor_div theorems to rings and semirings Generalize `mul_cast_floor_div_cancel` from `Field` and `Semifield` to `Ring` and `Semiring`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
43/31 Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semifield.lean,Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Analysis/Real/OfDigits.lean 4 10 ['Ruben-VandeVelde', 'github-actions', 'josephmckinsey'] joneugster
assignee:joneugster
9-32373
9 days ago
17-30469
17 days ago
17-65470
17 days
30424 maksym-radziwill
author:maksym-radziwill
feat(Analysis.Complex): Borel-Caratheodory theorem, part of PrimeNumberTheoremAnd+ upstreaming This PR adds a proof of the [Borel-Caratheodory theorem](https://en.wikipedia.org/wiki/Borel%E2%80%93Carath%C3%A9odory_theorem) following the [blueprint](https://alexkontorovich.github.io/PrimeNumberTheoremAnd/web/sect0004.html#a0000000021) of the [PrimeNumberTheoremAnd+](https://github.com/AlexKontorovich/PrimeNumberTheoremAnd/) project. This is part of the ongoing effort to upstream the StrongPNT version of the PrimeNumberTheoremAnd+ project into mathlib4. See also the [Zullip discussion](https://leanprover.zulipchat.com/#narrow/channel/423402-PrimeNumberTheorem.2B/topic/Merging.20with.20Morph/with/544246433) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 424/0 Mathlib.lean,Mathlib/Analysis/Complex/BorelCaratheodory.lean,docs/1000.yaml,docs/references.bib 4 7 ['Ruben-VandeVelde', 'github-actions', 'maksym-radziwill', 'wwylele'] grunweg
assignee:grunweg
9-32372
9 days ago
17-21536
17 days ago
18-39321
18 days
30144 alreadydone
author:alreadydone
feat(Data/Nat): kernel reducible binaryRec + Redefine `Nat.binaryRec` to allow kernel reduction. + Move some lemmas from Data/Nat/Bitwise to Data/Nat/BinaryRec. + Use `nsmulBinRec` for nsmul/zsmul on elliptic curves. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data t-algebra
label:t-algebra$
77/56 Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/Data/Nat/BinaryRec.lean,Mathlib/Data/Nat/BitIndices.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Size.lean 8 7 ['alreadydone', 'astrainfinita', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] nobody
9-31478
9 days ago
24-71150
24 days ago
25-32253
25 days
29723 Ruben-VandeVelde
author:Ruben-VandeVelde
feat: add TensorProduct.piScalarRight_symm_algebraMap --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) FLT t-algebra
label:t-algebra$
5/0 Mathlib/LinearAlgebra/TensorProduct/Pi.lean 1 5 ['Ruben-VandeVelde', 'github-actions', 'themathqueen'] joneugster
assignee:joneugster
9-8738
9 days ago
42-66280
1 month ago
42-66314
42 days
29969 smmercuri
author:smmercuri
refactor: use isometry extensions for completions at infinite places of number fields The API for `InfinitePlace.Completion` currently makes use of abstract results defined on absolute values, which all depend on the hypothesis of the form `∀ x, ‖f x‖ = v x`. This is equivalent to `f` being an isometry, and so many of these results can be bypassed and deprecated by using `Isometry.completion_extension` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 73/48 Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/NumberTheory/NumberField/AdeleRing.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean,Mathlib/Topology/MetricSpace/Completion.lean 4 2 ['github-actions', 'mathlib4-merge-conflict-bot'] TwoFX
assignee:TwoFX
9-8156
9 days ago
9-8418
9 days ago
32-31283
32 days
27270 EtienneC30
author:EtienneC30
chore: turn WithLp into a structure Turn `WithLp` into a one field structure, as was suggested many times on Zulip and discussed here: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithLp.60/near/526234806. Here is what this PR does: - The instances on `WithLp p α` which were defeq to those on `α` (algebraic instances, topology, uniformity, bornology) are now pulled back from `α` along `WithLp.equiv p α`. A few declarations are added to ease the process, such as versions of `WithLp.equiv` as a homeomorphism or a uniform isomorphism. - The `MeasurableSpace` structure was pushed forward from `α`. We now make it pulled back because it is much more convenient to prove that this preserves the `BorelSpace` instance. - It introduces some definitions to equip `α × β` with the Lp distance, and similarly for `Π i, α i`. This is then used to define relevant instances on type synonyms, such as for matrix norms. - The PR fixes all the defeq abuses (which break obviously). --- - [x] depends on: #28469 - [x] depends on: #28470 - [x] depends on: #28471 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-analysis 636/417 Archive/Hairer.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/Calculus/FDeriv/WithLp.lean,Mathlib/Analysis/InnerProductSpace/LinearPMap.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/InnerProductSpace/ProdL2.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/Matrix.lean,Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/Normed/Lp/LpEquiv.lean,Mathlib/Analysis/Normed/Lp/MeasurableSpace.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Lp/WithLp.lean,Mathlib/Analysis/Quaternion.lean,Mathlib/Analysis/RCLike/Inner.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean,Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/CrossProduct.lean,Mathlib/Geometry/Manifold/Instances/Icc.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/LinearAlgebra/Matrix/Hermitian.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/LinearAlgebra/Matrix/Spectrum.lean,Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean,Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/MeasureTheory/SpecificCodomains/WithLp.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean,Mathlib/NumberTheory/NumberField/Ideal/Asymptotics.lean,Mathlib/Probability/Distributions/Fernique.lean 34 64 ['EtienneC30', 'eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] j-loreaux
assignee:j-loreaux
9-17
9 days ago
9-39
9 days ago
75-926
75 days
30131 fpvandoorn
author:fpvandoorn
feat: alias_in attribute * A small wrapper for adding an alias of a declaration in another namespace. * application time `.afterCompilation` is necessary for `#eval` to work correctly * Docstrings are copied, jump-to-definition works (no test in the test file, but tested locally) * To be used for CW-complexes, where lemmas are frequently duplicated between `RelCWComplex` and `CWComplex`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) cc @scholzhannah t-meta 93/0 Mathlib.lean,Mathlib/Util/AliasIn.lean,MathlibTest/Util/AliasIn.lean 3 12 ['JovanGerb', 'fpvandoorn', 'github-actions'] JovanGerb
assignee:JovanGerb
8-71516
8 days ago
26-62376
26 days ago
26-62354
26 days
28818 SnirBroshi
author:SnirBroshi
feat(Data/Setoid/Basic): add theorems about lifting a function to its kernel Currently `ker_lift_injective` and `quotientKerEquivOfRightInverse` lift `f` to `ker f` in their definition. This PR makes this function available as `Setoid.kerLift f` and adds a few more theorems about it. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data maintainer-merge new-contributor 34/16 Counterexamples/AharoniKorman.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/Topology/Separation/Hausdorff.lean 4 32 ['SnirBroshi', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'pechersky'] pechersky
assignee:pechersky
8-64137
8 days ago
8-64137
8 days ago
61-7026
61 days
25799 dagurtomas
author:dagurtomas
feat(CategoryTheory): the universal property of localized monoidal categories This PR provides a monoidal structure on any functor out of a localized monoidal category whose precomposition with the localization functor is monoidal --- - [x] depends on: #29564 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --- *This PR continues the work from #24727.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/24727* t-category-theory 242/0 Mathlib.lean,Mathlib/CategoryTheory/Localization/Bifunctor.lean,Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Multifunctor.lean,Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean 6 21 ['dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] TwoFX
assignee:TwoFX
8-60058
8 days ago
8-60764
8 days ago
50-50312
50 days
30733 harahu
author:harahu
doc(Combinatorics): spell cliquefree as clique-free This change was initially suggested to me by Codex, as part of #30621, but it made sense to do this as a free-standing PR, since this change requires some justification, and this PR provides just that. The fact that Codex is encouraging this change does not mean much on its own, so I did my best to check the literature. Searching on Google Scholar yields a mere [four results](https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=%22cliquefree%22) for "cliquefree" and [423 results](https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=%22clique-free%22) for "clique-free". Based on these results, I think it is safe to say that "cliquefree" is quite idiosyncratic, and should be avoided. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 12/12 Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean 4 1 ['github-actions'] nobody
8-50119
8 days ago
8-50120
8 days ago
8-50164
8 days
29362 stepanholub
author:stepanholub
feat:(Data/List) add the notion of period of List and prove the Periodicity Lemma Add the concept of the period of a List (word, sequence) which is missing, and prove its basic nontrivial property describing under which conditions list can have two periods known as the Periodicity Lemma (aka Fine-Wilf Theorem). --- t-data new-contributor 227/0 Mathlib.lean,Mathlib/Data/List/PeriodicityLemma.lean 2 125 ['Ruben-VandeVelde', 'Timeroot', 'fpvandoorn', 'github-actions', 'madvorak', 'plp127', 'stepanholub', 'wwylele'] pechersky
assignee:pechersky
8-32381
8 days ago
34-53837
1 month ago
52-50034
52 days
30490 urkud
author:urkud
feat: derivative along the Lie bracket of vector fields --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 55/1 Mathlib/Analysis/Calculus/VectorField.lean 1 1 ['github-actions'] j-loreaux
assignee:j-loreaux
8-32375
8 days ago
16-23024
16 days ago
16-23063
16 days
30344 Deep0Thinking
author:Deep0Thinking
feat(MeasureTheory/Integral): add versions of `exists_eq_interval_average` and first mean value theorem for integrals Add the First mean value theorem for (unordered) interval integrals on ℝ. - `exists_eq_const_mul_interval_integral_of_continuous_on_of_ae_nonneg` - `exists_eq_const_mul_interval_integral_of_continuous_on_of_nonneg` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 290/41 Mathlib.lean,Mathlib/MeasureTheory/Integral/IntervalAverage.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean 3 9 ['Deep0Thinking', 'github-actions', 'plp127'] RemyDegenne
assignee:RemyDegenne
8-28322
8 days ago
20-49747
20 days ago
20-49780
20 days
30400 Equilibris
author:Equilibris
feat(Data/PFunctor): make M.corec' universe generic Previously `corec'` required the generating type reside in the same universe as the constructed object. This change corrects this by separating the universes. As corec takes the parameter (g : β → P (α ::: β)), (where α is a TypeVec.{u} and β is a Type u) it is forced into the same universe by how the TypeVec construction works. This means corec cant be generalised by this construction. --- A super simple change to make `corec'` univ generic. ```lean -- was def MvPFunctor.M.corec'.{u} {n : ℕ} (P : MvPFunctor.{u} (n + 1)) {α : TypeVec.{u} n} {β : Type u} (g₀ : β → P.A) (g₁ : (b : β) → P.drop.B (g₀ b) ⟹ α) (g₂ : (b : β) → P.last.B (g₀ b) → β) : β → P.M α := _ -- becomes def MvPFunctor.M.corec'.{u, v} {n : ℕ} (P : MvPFunctor.{u} (n + 1)) {α : TypeVec.{u} n} {β : Type v} (g₀ : β → P.A) (g₁ : (b : β) → P.drop.B (g₀ b) ⟹ α) (g₂ : (b : β) → P.last.B (g₀ b) → β) : β → P.M α := _ ``` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor easy 5/5 Mathlib/Data/PFunctor/Multivariate/M.lean 1 6 ['Equilibris', 'alexkeizer', 'github-actions', 'vihdzp'] nobody
7-84619
7 days ago
18-72225
18 days ago
18-72269
18 days
29517 pechersky
author:pechersky
feat(RingTheory/Torsion): torsion = union of roots of unity with additional API for Associates and rootsOfUnity sups --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [x] depends on: #29988 - [x] depends on: #29989 - [x] depends on: #29990 - [x] depends on: #29991 t-algebra
label:t-algebra$
156/8 Mathlib.lean,Mathlib/RingTheory/RootsOfUnity/Basic.lean,Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean,Mathlib/RingTheory/Torsion.lean 4 11 ['chrisflav', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] chrisflav
assignee:chrisflav
7-69869
7 days ago
7-69896
7 days ago
35-11117
35 days
29072 yury-harmonic
author:yury-harmonic
feat({Nat,Int}/ModEq): add lemmas --- I'm not sure that I named these lemmas correctly. Suggestions about better names are welcome! [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 189/26 Mathlib/Data/Int/ModEq.lean,Mathlib/Data/Nat/ModEq.lean 2 7 ['eric-wieser', 'github-actions', 'urkud', 'yury-harmonic'] nobody
7-68550
7 days ago
7-68611
7 days ago
8-37418
8 days
30758 Timeroot
author:Timeroot
chore: tag abs_inv and abs_div with grind= --- [![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/Order/Field/Basic.lean 1 n/a ['github-actions'] nobody
7-48708
7 days ago
unknown
unknown
30560 dwrensha
author:dwrensha
fix(LinearAlgebra/Alternating/Basic): avoid deep recursion in MultilinearMap.alternatization Makes `MultilinearMap.alternatization` an `irreducible_def` to avoid errors about deep recursion. This is an update of #15045 according to the suggestions in [this zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/kernel.20deep.20recursion.20detected/near/454301820). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
36/9 Mathlib/LinearAlgebra/Alternating/Basic.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,MathlibTest/DetOne.lean 3 5 ['dwrensha', 'eric-wieser', 'github-actions'] dagurtomas
assignee:dagurtomas
7-32364
7 days ago
14-46590
14 days ago
14-46629
14 days
27307 xyzw12345
author:xyzw12345
feat(RingTheory/GradedAlgebra): homogeneous relation This PR continues the work from #22279. Original PR: https://github.com/leanprover-community/mathlib4/pull/22279 t-ring-theory 391/0 Mathlib.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousRelation.lean 9 9 ['chrisflav', 'eric-wieser', 'github-actions', 'ocfnash', 'xyzw12345'] mattrobball
assignee:mattrobball
7-7254
7 days ago
85-58777
2 months ago
100-70092
100 days
27936 alreadydone
author:alreadydone
feat(Algebra): additivize Dvd and Prime `Prime` can't be directly additivized, so we introduce `Preprime`, which drops the `≠ 0` condition, and additivize it to `AddPrime`. To show that `Preprime` is a reasonable definition, we show its connection to `Irreducible` under `IsPrimal` and `IsRegular` conditions. We also show that an element in a product monoid is preprime iff one component is a unit and the other is preprime, and the same with `Preprime` replaced by `Irreducible`. Also additivize `IsPrimal`, `IsRelPrime` and `DecompositionMonoid`. The motivation is that the primality of `single g 1` in `AddMonoidAlgebra k G` is connected to the primality of `g` in `G`. --- I've checked [all 29 files](https://github.com/search?q=repo%3Aleanprover-community%2Fmathlib4%20%E2%88%A3%20to_additive&type=code) containing the `∣` symbol and the `to_additive` attribute and fixed the wrongly translated (`dvd` to `addDvd`) names. TODO: connect (Add)Dvd to [ExistsMul/AddOfLE](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.html#ExistsMulOfLE) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
400/191 Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/Divisibility/Basic.lean,Mathlib/Algebra/Divisibility/Finite.lean,Mathlib/Algebra/Divisibility/Hom.lean,Mathlib/Algebra/Divisibility/Prod.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Prime/Defs.lean,Mathlib/Algebra/Prime/Lemmas.lean,Mathlib/Algebra/Prime/Prod.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/GroupTheory/Coset/Card.lean,Mathlib/GroupTheory/Exponent.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/GroupTheory/GroupAction/Period.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/OrderOfElement.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/Tactic/ToAdditive/GuessName.lean 30 12 ['JovanGerb', 'adomani', 'alreadydone', 'bryangingechen', 'github-actions', 'mathlib4-merge-conflict-bot'] bryangingechen
assignee:bryangingechen
7-6992
7 days ago
7-7013
7 days ago
83-75777
83 days
30764 harahu
author:harahu
chore(FieldTheory): fix typos in NormalizedTrace This PR: - Fixes a few typos in the docstrings of this file. - Renames `normalizedTraceAux_eq_of_fininteDimensional` -> `normalizedTraceAux_eq_of_finiteDimensional` - Renames `normalizedTrace_eq_of_fininteDimensional_apply` -> `normalizedTrace_eq_of_finiteDimensional_apply` - Renames `normalizedTrace_eq_of_fininteDimensional` -> `normalizedTrace_eq_of_finiteDimensional` All three renames merely change "fininte" to "finite". --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
21/15 Mathlib/FieldTheory/NormalizedTrace.lean 1 n/a ['github-actions'] nobody
7-6943
7 days ago
unknown
unknown
30763 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): generalize `Connected` to `Preconnected` Generalize `Subgraph.Connected.sup`/`Subgraph.induce_union_connected`/`induce_union_connected`/`Connected.adj_union`/`induce_connected_adj_union` to require only preconnected rather than connected, slight golf, and deprecate the old versions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 59/32 Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean 1 1 ['github-actions'] nobody
7-934
7 days ago
7-44968
7 days ago
7-45007
7 days
30750 SnirBroshi
author:SnirBroshi
feat(Data/Quot): `toSet` and `equivClassOf` Define `toSet` which gets the set corresponding to an element of a quotient, and `equivClassOf` which gets the equivalence class of an element under a quotient. --- I found these definitions helpful when working with quotients, specifically `ConnectedComponents` of a `TopologicalSpace`. Additionally, I need `equivSigmaToSet` (in `Data/Setoid/Basic`) to prove things about `SimpleGraph.ConnectedComponent`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 179/0 Mathlib/Data/Quot.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Data/Setoid/Basic.lean 4 2 ['eric-wieser', 'github-actions'] nobody
7-924
7 days ago
7-76817
7 days ago
7-76860
7 days
30757 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Acyclic): `singletonGraph` and `subgraphOfAdj` are trees --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 30/1 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 3 1 ['github-actions'] nobody
7-918
7 days ago
7-52836
7 days ago
7-52883
7 days
30751 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Subgraph): a subgraph is induced (`IsInduced`) iff it is induced (`= induce`) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 11/0 Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 1 1 ['github-actions'] nobody
7-902
7 days ago
7-71175
7 days ago
7-71242
7 days
29728 ADA-Projects
author:ADA-Projects
feat(Topology/KrullDimension): add subspace dimension inequality This PR proves that subspaces have Krull dimension at most that of the ambient space: dim(Y) ≤ dim(X) for Y ⊆ X (theorem topologicalKrullDim_subspace_le). Supporting results about IrreducibleCloseds were refactored and moved from KrullDimension.lean to Closeds.lean for better modularity. Note: Some code/documentation generated with AI assistance (Gemini). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge new-contributor t-topology 63/30 Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Sets/Closeds.lean 2 46 ['ADA-Projects', 'erdOne', 'fpvandoorn', 'github-actions', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] erdOne
assignee:erdOne
7-821
7 days ago
8-40010
8 days ago
29-74123
29 days
30140 chrisflav
author:chrisflav
feat(AlgebraicGeometry): locally directed colimits in `P.Over ⊤ S` We lift the colimit properties of `Scheme` to `P.Over ⊤ S` if `IsLocalAtSource P`. In particular, `P.Over ⊤ S` has pushouts along open immersions and (small) coproducts. We also add two instances, that make ``` example {U X Y : Scheme.{u}} (f : U ⟶ X) (g : U ⟶ Y) [IsOpenImmersion f] [IsOpenImmersion g] : HasPushout f g := inferInstance ``` work. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 169/0 Mathlib.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/AlgebraicGeometry/LimitsOver.lean,Mathlib/CategoryTheory/Limits/MorphismProperty.lean,Mathlib/CategoryTheory/Limits/Over.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean 6 8 ['chrisflav', 'erdOne', 'github-actions'] alexjbest
assignee:alexjbest
6-79730
6 days ago
26-46304
26 days ago
26-46281
26 days
29569 chrisflav
author:chrisflav
chore(RingTheory/LocalProperties): add algebra versions of exactness lemmas The module variants are less convenient to apply directly in the case of algebras. From Pi1. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 67/0 Mathlib/RingTheory/LocalProperties/Exactness.lean 1 2 ['github-actions', 'mathlib4-merge-conflict-bot'] mattrobball
assignee:mattrobball
6-79533
6 days ago
6-79553
6 days ago
46-78190
46 days
27678 b-reinke
author:b-reinke
feat(GroupTheory/FreeGroup): reduction theorem for powers This PR adds the theorem `reduce_flatten_replicate`, it describes the reduction of a power of a reduced word in terms of its cyclic reduction. It is a part of a series of PR on the theory of cyclically reduced words. Upstreamed from the [EquationalTheories](https://github.com/teorth/equational_theories) project. - [x] depends on: #25966 - [x] depends on: #27672 - [x] depends on: #27673 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory large-import 51/0 Mathlib/GroupTheory/FreeGroup/CyclicallyReduced.lean 1 5 ['adomani', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
6-77380
6 days ago
7-7049
7 days ago
7-7060
7 days
30786 YaelDillies
author:YaelDillies
chore(CategoryTheory): namespace `Mon`, `Grp`, etc... After this is done, we can finally rename `Mod_` to `Mod`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 63/43 Mathlib/CategoryTheory/Monoidal/Bimon_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/CommMon_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mod_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean,Mathlib/CategoryTheory/Monoidal/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/CommMon_.lean,Mathlib/CategoryTheory/Monoidal/Comon_.lean,Mathlib/CategoryTheory/Monoidal/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Hopf_.lean,Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean,Mathlib/CategoryTheory/Monoidal/Mod_.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean 15 1 ['github-actions'] nobody
6-76788
6 days ago
6-76788
6 days ago
6-76850
6 days
30796 joelriou
author:joelriou
feat(Algebra/Homology): construction of left resolutions Given a fully faithful functor `ι : C ⥤ A` to an abelian category, we introduce a structure `Abelian.LeftResolutions ι` which gives a functor `F : A ⥤ C` and a natural epimorphism `π.app X : ι.obj (F.obj X) ⟶ X` for all `X : A`. This is used in order to construct a resolution functor `LeftResolutions.chainComplexFunctor : A ⥤ ChainComplex C ℕ`. This shall be used in order to derive the tensor product of modules and sheaves of modules. --- This PR continues the work from #22539. Original PR: https://github.com/leanprover-community/mathlib4/pull/22539 t-category-theory 273/19 Mathlib.lean,Mathlib/Algebra/Homology/HomologicalComplex.lean,Mathlib/Algebra/Homology/LeftResolutions/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean 4 3 ['github-actions', 'joelriou'] nobody
6-52283
6 days ago
6-53893
6 days ago
6-54147
6 days
26453 jburroni
author:jburroni
feat(Data/PNat/Basic): add order-related instances to PNat Add `SuccAddOrder ℕ+` and `NoMaxOrder ℕ+` instances. This allows, for example, the use of lemmas related to `Intervals` built with ℕ+. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 29/0 Mathlib.lean,Mathlib/Data/PNat/Order.lean 2 18 ['Ruben-VandeVelde', 'eric-wieser', 'github-actions', 'jburroni', 'kckennylau', 'vihdzp'] ericrbg
assignee:ericrbg
6-50617
6 days ago
6-50851
6 days ago
107-71698
107 days
30800 dagurtomas
author:dagurtomas
feat(Condensed): cartesian monoidal functor LightProfinite -> LightCondSet --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import 137/4 Mathlib.lean,Mathlib/Condensed/Light/Functors.lean,Mathlib/Topology/Category/CompHausLike/Cartesian.lean,Mathlib/Topology/Category/LightProfinite/Cartesian.lean 4 2 ['dagurtomas', 'github-actions'] nobody
6-43943
6 days ago
6-49662
6 days ago
6-49706
6 days
22662 plp127
author:plp127
feat: Localization.Away.lift (computably) This PR adds `Localization.Away.lift'` and `Localization.Away.lift`, computable alternatives to `Localization.awayLift`. --- - [x] depends on: #24791 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
74/0 Mathlib/RingTheory/Localization/Away/Basic.lean 1 17 ['eric-wieser', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'plp127', 'vihdzp'] riccardobrasca
assignee:riccardobrasca
6-32380
6 days ago
170-36774
5 months ago
236-36747
236 days
29033 faenuccio
author:faenuccio
feat(Analysis.LocallyConvex): a linear map is surjective iff its image contains a ball, or a closed ball, or a sphere Prove that a linear map is surjective if and only if its image contains either a ball or a sphere. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-analysis 135/15 Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/LocallyConvex/Basic.lean,Mathlib/Analysis/Normed/Module/Convex.lean,Mathlib/Analysis/Normed/Operator/Basic.lean 4 30 ['ADedecker', 'eric-wieser', 'faenuccio', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] urkud
assignee:urkud
6-32379
6 days ago
13-46461
13 days ago
14-35170
14 days
30259 erdOne
author:erdOne
feat(Valuation): uniformizer of discrete valuation --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 31/0 Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean 1 2 ['github-actions', 'pechersky'] alreadydone
assignee:alreadydone
6-32375
6 days ago
23-35079
23 days ago
23-35117
23 days
30336 kckennylau
author:kckennylau
feat(RingTheory): some lemmas about the irrelevant ideal This PR adds some lemmas about the irrelevant ideal of a graded ring, such as the fact that it is the iSup of each positively graded component. --- Split from #26061. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 49/5 Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean 1 1 ['github-actions'] mattrobball
assignee:mattrobball
6-32373
6 days ago
20-64674
20 days ago
20-64711
20 days
30337 kckennylau
author:kckennylau
chore: delete wrong docstring for irrelevant ideal The expression given `{a | ∀ (i : ι), i ≤ 0 → aᵢ = 0}` does not define an ideal, because it is not closed under (external) multiplication. For example, if x has grade 1 and y has grade -2, then x will be in this "ideal", but xy will not. Zulip discussion: [#mathlib4 > irrelevant ideal cannot be generalised](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/irrelevant.20ideal.20cannot.20be.20generalised/near/543800961) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 0/5 Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean 1 1 ['github-actions'] erdOne
assignee:erdOne
6-32372
6 days ago
20-59075
20 days ago
20-59112
20 days
30582 RemyDegenne
author:RemyDegenne
feat: extension of a function to the closure of a submodule - define the closure of a set in a complete space as an `AbstractCompletion` - add instances about submodules - add a coercion from a submodule to its topological closure - add induction lemmas on topological closures of submodules - define the extension of a function on a submodule to the closure of a submodule --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 138/1 Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/UniformSpace/AbstractCompletion.lean 2 1 ['github-actions'] PatrickMassot
assignee:PatrickMassot
6-32368
6 days ago
13-71777
13 days ago
13-71818
13 days
30768 tb65536
author:tb65536
chore(GroupTheory/Subgroup/Centralizer): replace `centralizer (zpowers s)` with `centralizer {s}` This PR fixes some lingering technical debt from two years ago: https://github.com/leanprover-community/mathlib3/pull/18965 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory t-algebra
label:t-algebra$
32/34 Mathlib/Algebra/Group/Subgroup/ZPowers/Lemmas.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/GroupAction/ConjAct.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/Subgroup/Centralizer.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/Topology/Algebra/Group/SubmonoidClosure.lean,Mathlib/Topology/Instances/AddCircle/Defs.lean 9 1 ['github-actions'] nobody
6-29916
6 days ago
6-47977
6 days ago
6-47955
6 days
30245 vlad902
author:vlad902
feat(Set): finite cardinality iff `[Finite]` Add a lemma making it easy to derive `Finite α` from `ENat.card α < ⊤`. Note that immediately above, the following three lemmas are defined: ```lean @[simp high] theorem card_eq_top_of_infinite [Infinite α] : card α = ⊤ := by ... @[simp] lemma card_eq_top : card α = ⊤ ↔ Infinite α := by ... @[simp] theorem card_lt_top_of_finite [Finite α] : card α < ⊤ := by ... ``` `card_lt_top` is the analog of `card_eq_top`, so symmetry implies that `card_lt_top_of_finite` should be marked `@[simp high]` and `card_lt_top` should be marked `@[simp]`. I find this use of `@[simp]` a bit surprising so I wanted to highlight this to reviewers. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 3/1 Mathlib/SetTheory/Cardinal/Finite.lean 1 4 ['b-mehta', 'github-actions', 'leanprover-bot'] b-mehta
assignee:b-mehta
6-29212
6 days ago
23-69112
23 days ago
23-69151
23 days
28766 yury-harmonic
author:yury-harmonic
feat(Nat/Factorial): use binary splitting for `ascFactorial`/`descFactorial` Mathlib has a `@[csimp]` lemma for `Nat.factorial`. This PR adds similar lemmas for `Nat.ascFactorial` and `Nat.descFactorial`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 49/25 Mathlib/Data/Nat/Factorial/Basic.lean 1 7 ['github-actions', 'pechersky', 'plp127', 'yury-harmonic'] pechersky
assignee:pechersky
6-26188
6 days ago
7-50845
7 days ago
52-5837
52 days
24627 pechersky
author:pechersky
feat(Topology/Algebra/Valued): `IsLinearTopology 𝒪[K] K` and `𝒪[K] 𝒪[K]` as well as `IsLinearTopology ℤ_[p] ℤ_[p]` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [ ] depends on: #26829 t-topology 191/26 Mathlib.lean,Mathlib/NumberTheory/Padics/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean 5 41 ['ADedecker', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'loefflerd', 'mathlib4-dependent-issues-bot', 'pechersky'] nobody
6-17052
6 days ago
6-28980
6 days ago
25-79440
25 days
29004 euprunin
author:euprunin
chore: change from `:= by rfl` to `:= rfl` For `@[simp]` lemmas this makes them usable by `dsimp`; others are stylistic cleanup (but they're now "`dsimp`-ready" if tagged later). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 138/242 Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/Group/AddChar.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/GroupWithZero/ProdHom.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean,Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean,Mathlib/Algebra/Homology/Single.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/OfAssociative.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Order/Hom/MonoidWithZero.lean,Mathlib/Algebra/Order/Hom/Ring.lean,Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Derivation.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Ring/Hom/Defs.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/Algebra/Vertex/HVertexOperator.lean,Mathlib/Algebra/Vertex/VertexOperator.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/Analysis/Asymptotics/ExpGrowth.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean,Mathlib/Analysis/Calculus/FDeriv/Prod.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Normed/Affine/Isometry.lean,Mathlib/Analysis/Normed/Group/Seminorm.lean,Mathlib/Analysis/Normed/Module/Span.lean,Mathlib/Analysis/SpecialFunctions/Complex/CircleAddChar.lean,Mathlib/Analysis/SpecialFunctions/Stirling.lean,Mathlib/CategoryTheory/Closed/Monoidal.lean,Mathlib/CategoryTheory/Distributive/Monoidal.lean,Mathlib/CategoryTheory/Limits/Presheaf.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean,Mathlib/CategoryTheory/Monoidal/Comon_.lean,Mathlib/CategoryTheory/Monoidal/Mod_.lean,Mathlib/CategoryTheory/Yoneda.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean,Mathlib/Data/Matrix/Basic.lean,Mathlib/Data/Nat/Factorization/PrimePow.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/PFunctor/Multivariate/Basic.lean,Mathlib/Data/Real/Embedding.lean,Mathlib/Data/Rel.lean,Mathlib/Data/Seq/Basic.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/Data/Set/Pairwise/Lattice.lean,Mathlib/Data/Subtype.lean,Mathlib/Geometry/Manifold/Bordism.lean,Mathlib/GroupTheory/Coxeter/Basic.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/GroupTheory/SpecificGroups/Quaternion.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean,Mathlib/LinearAlgebra/Dual/Defs.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/Projectivization/Action.lean,Mathlib/LinearAlgebra/RootSystem/Hom.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Pi.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/NumberTheory/FLT/Polynomial.lean,Mathlib/NumberTheory/FactorisationProperties.lean,Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean,Mathlib/NumberTheory/Padics/WithVal.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RingTheory/AlgebraTower.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/SetTheory/Surreal/Basic.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/Tactic/Module.lean,Mathlib/Tactic/NormNum/PowMod.lean,Mathlib/Topology/Algebra/Algebra/Equiv.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean,Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean,Mathlib/Topology/Category/TopCat/Opens.lean,Mathlib/Topology/ContinuousMap/Units.lean,Mathlib/Topology/LocallyFinsupp.lean,Mathlib/Topology/PartitionOfUnity.lean,Mathlib/Topology/Sets/Closeds.lean 95 23 ['eric-wieser', 'euprunin', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] TwoFX
assignee:TwoFX
6-16206
6 days ago
6-16232
6 days ago
35-24749
35 days
30547 mariainesdff
author:mariainesdff
feat(Algebra/Polynomial/AlgebraMap): add Polynomial.mapAlgHom lemmas Co-authored by: @AntoineChambert-Loir --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
35/0 Mathlib/Algebra/Polynomial/AlgebraMap.lean 1 n/a ['erdOne', 'github-actions', 'mariainesdff'] nobody
6-266
6 days ago
unknown
unknown
26332 Timeroot
author:Timeroot
feat(ModelTheory/Definability): TermDefinable functions This PR continues the work from #23506. Original PR: https://github.com/leanprover-community/mathlib4/pull/23506 t-logic 145/0 Mathlib/Data/Rel.lean,Mathlib/ModelTheory/Definability.lean,scripts/noshake.json 3 29 ['Timeroot', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] fpvandoorn
assignee:fpvandoorn
5-85845
5 days ago
5-85845
5 days ago
125-2180
125 days
30441 linesthatinterlace
author:linesthatinterlace
fix(Data/List/Sort): Deprecate and replace `List.Sorted` Deprecates `Sorted` and defines new special-case predicates to be used for preorders. --- `List.Sorted` is essentially an irrelevant definition, as it is identical to List.Pairwise, and we have some results about Sorted which also always apply to Pairwise or do so under certain conditions (and vice versa). We also commonly use Sorted to talk specifically about `<` and `<=`, which can be somewhat unwieldy. This PR deprecates `Sorted` (so that there should now be no non-deprecated definitions under that namespace), and adds in `SortedLE`, `SortedLT`, `SortedGE` and `SortedGT`, which are defined analogously to `List.Nodup` for Preorders (List.Nodup is a good example of somewhere where using a special case of Pairwise works well). The vision is that API for these can be created together and for many purposes will suffice. `insertionSort` has now been moved to be independent of any of this, though theorems are provided showing that it does link to these predicates in a linear order. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 780/521 Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean,Mathlib/Analysis/Convex/BetweenList.lean,Mathlib/Combinatorics/Young/YoungDiagram.lean,Mathlib/Data/Fin/Tuple/Sort.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/List/Nodup.lean,Mathlib/Data/List/NodupEquivFin.lean,Mathlib/Data/List/OfFn.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/List/Sort.lean,Mathlib/Data/Multiset/Sort.lean,Mathlib/Data/Nat/BitIndices.lean,Mathlib/Data/Nat/Factors.lean,Mathlib/LinearAlgebra/Matrix/Spectrum.lean,Mathlib/Logic/Equiv/Finset.lean,Mathlib/Logic/Equiv/Multiset.lean,Mathlib/NumberTheory/ADEInequality.lean,Mathlib/NumberTheory/Divisors.lean,Mathlib/Order/JordanHolder.lean,Mathlib/Order/Synonym.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/CantorNormalForm.lean,Mathlib/Tactic/Simproc/Factors.lean,Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean,Mathlib/Topology/Category/Profinite/Nobeling/Span.lean 25 53 ['github-actions', 'linesthatinterlace', 'mathlib4-merge-conflict-bot', 'vihdzp'] nobody
5-79431
5 days ago
6-4491
6 days ago
13-61930
13 days
26129 LessnessRandomness
author:LessnessRandomness
feat(Geometry/Euclidean/Angle/Unoriented): triangle inequality for angles This PR continues the work from #24206. Original PR: https://github.com/leanprover-community/mathlib4/pull/24206 new-contributor t-euclidean-geometry 202/15 Mathlib.lean,Mathlib/Analysis/Fourier/FiniteAbelian/Orthogonality.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean 8 85 ['JovanGerb', 'LessnessRandomness', 'Timeroot', 'github-actions', 'jsm28', 'mathlib4-merge-conflict-bot', 'themathqueen'] jsm28
assignee:jsm28
5-75120
5 days ago
8-61369
8 days ago
129-43944
129 days
30821 chriseth
author:chriseth
fix(Computability/Tape): introduce write-simplification theorem that uses `ListBlank.mk` Add a simplification theorem which is a version of `Tape.write_mk'` that solves a simplification dead-end: If we have an expression of the form `(Tape.mk' L (ListBlank.cons a (ListBlank.mk R))).write b`, the theorem `Tape.write_mk'` would be applicable, but lean instead uses `ListBlank.cons_mk`, which turns it into `(Tape.mk' L (ListBlank.mk (a :: R))).write b` and makes `Tape.write_mk` no longer applicable because it requires `ListBlank.cons a R`, reaching a dead-end. This PR adds an equivalent theorem whose LHS allows `ListBlank.mk (a :: R)`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor 7/0 Mathlib/Computability/Tape.lean 1 1 ['github-actions'] nobody
5-69150
5 days ago
5-69159
5 days ago
5-69202
5 days
30782 chenson2018
author:chenson2018
chore(ModelTheory/PartialEquiv): use grind for `le_partialEquivLimit` adaptation_note An adaption note in `FirstOrder.Language.DirectLimit.le_partialEquivLimit` notes two consecutive `simp` that cannot be combined. Replacing with `grind` solves this problem. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 2/5 Mathlib/ModelTheory/PartialEquiv.lean 1 6 ['chenson2018', 'github-actions', 'grunweg'] nobody
5-66465
5 days ago
5-66465
5 days ago
6-75587
6 days
30823 gasparattila
author:gasparattila
feat(Topology/MetricSpace/Closeds): Lipschitz continuity of union --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 30/0 Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2 1 ['github-actions'] nobody
5-65052
5 days ago
5-65062
5 days ago
5-65103
5 days
26457 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Mathlib/GroupTheory/Perm/MaximalSubgroups): maximal subgroups of the permutation group * `Equiv.Perm.isCoatom_stabilizer`: when `s : Set α` is not empty, nor its complementary subset, and if the cardinality of `s` is not half of that of `α`, then `MulAction.stabilizer (Equiv.Perm α) s` is a maximal subgroup of the symmetric group `Equiv.Perm α`. This is the *intransitive case* of the O'Nan-Scott classification. ## TODO * Appplication to primitivity of the action of `Equiv.Perm α` on finite combinations of `α`. * Finish the classification --- - [x] depends on: #26282 - [x] depends on: #26281 - [x] depends on: #26280 - [x] depends on: #26279 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 525/2 Mathlib.lean,Mathlib/GroupTheory/GroupAction/Jordan.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/Perm/MaximalSubgroups.lean,docs/references.bib 8 n/a ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
5-58114
5 days ago
unknown
unknown
27887 JovanGerb
author:JovanGerb
feat: `to_dual` attribute This PR defines the `to_dual` attribute for translating lemmas to their dual. This is useful in order theory and in category theory. It is built on top of the `to_additive` machinery. This PR only adds `@[to_dual]` tags in files that directly need to import `ToDual`, namely `Order/Defs/PartialOrder`, `Order/Notation` and `Combinatorics/Quiver/Basic`. Further tagging is left for (many) future PRs. This PR continues the work from #21719 Related (mathlib3) issues: - https://github.com/leanprover-community/mathlib3/issues/13461 - https://github.com/leanprover-community/mathlib3/issues/7691 Co-authored-by: @bryangingechen --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-meta 597/276 Mathlib.lean,Mathlib/Combinatorics/Quiver/Basic.lean,Mathlib/GroupTheory/Coset/Defs.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Notation.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ToAdditive/Frontend.lean,Mathlib/Tactic/ToAdditive/GuessName.lean,Mathlib/Tactic/ToAdditive/ToDual.lean,Mathlib/Tactic/ToDual.lean,MathlibTest/toAdditive.lean,scripts/noshake.json 15 15 ['JovanGerb', 'bryangingechen', 'github-actions', 'mathlib4-merge-conflict-bot'] alexjbest
assignee:alexjbest
5-41437
5 days ago
5-41459
5 days ago
51-43615
51 days
30739 JovanGerb
author:JovanGerb
feat(gcongr): use mdata instead of template This PR changes the implementation of `gcongr` patterns. Instead of carrying around another expression of the same shape, we put a metadata annotation in the actual goal, in order to keep track of where we want to apply more `gcongr` lemmas. This makes the implementation neater, and this is a necessary step towards supporting more operations in `gcongr`, such as those from the `congr!` tactic. This also means that the pattern given to the `gcongr` tactic is checked to be fully correct. This helped fix one pattern in mathlib that was `∑ _ : α, ?_`, but should have been `∑ _ : β, ?_`. Another change that this PR makes is that if the goal relation is `a → b`, then we run `whnf` on `a` and `b` before getting the two sides of the relation. This means that `x > y` is reduced to `y < x`. This is needed because we need to keep track of whether the metadata annotation is in the LHS or RHS, and we don't want to accidentally swap the two sides. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 160/163 Mathlib/NumberTheory/SiegelsLemma.lean,Mathlib/Order/Basic.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Core.lean,MathlibTest/GCongr/inequalities.lean,MathlibTest/GRewrite.lean 6 4 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] nobody
5-33399
5 days ago
5-63856
5 days ago
8-22739
8 days
29437 SnirBroshi
author:SnirBroshi
feat(Data/Seq): add Seq.subsequence and prove basic theorems about it I added `Seq.subsequence` to compose a sequence with a monotone function, creating a subsequence. Aliased to `Seq.comp` since it's a composition. I also added `Nat.le_induction_step_iff` which is needed to prove a subsequence is a sequence. This proves the comment at the top of `Defs.lean` that says "if `f n = none`, then `f m = none` for all `m ≥ n`" while `IsSeq` only talks about `n+1`. For completion I added the same statement for `Int`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-data new-contributor 104/0 Mathlib/Data/Int/Init.lean,Mathlib/Data/Nat/Init.lean,Mathlib/Data/Seq/Basic.lean,Mathlib/Data/Seq/Defs.lean 4 2 ['github-actions', 'mathlib4-merge-conflict-bot'] pechersky
assignee:pechersky
5-32398
5 days ago
41-79601
1 month ago
50-67090
50 days
29422 jsm28
author:jsm28
fix(Data/Finset/Max): Use `DecidableEq` for `insert` lemmas These `insert` in these lemma statements uses a `DecidableEq` instance derived from `LinearOrder`; make them syntactically more general by passing in a `DecidableEq` instance separately. (Some `insert` lemmas in this file already take `DecidableEq` hypotheses.) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 8/8 Mathlib/Data/Finset/Max.lean 1 2 ['eric-wieser', 'github-actions'] pechersky
assignee:pechersky
5-32398
5 days ago
51-30343
1 month ago
51-30320
51 days
30608 grunweg
author:grunweg
feat: another lemma about derivatives of parametric integrals On the path towards proving that integrating smooth functions is smooth. From the sphere-eversion project; I am just upstreaming this. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 125/0 Mathlib/Analysis/Calculus/ParametricIntegral.lean 1 3 ['Ruben-VandeVelde', 'github-actions'] j-loreaux
assignee:j-loreaux
5-32389
5 days ago
12-63751
12 days ago
12-63735
12 days
27244 xroblot
author:xroblot
feat(RingTheory/DedekindDomain): lifting an ideal in an extension is injective This PR develops some API for [FractionalIdeal.extendedHomₐ](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/FractionalIdeal/Extended.html#FractionalIdeal.extendedHom%E2%82%90) and in particular proves when it is an injective map. As a consequence, it deduces the fact that lifting an integral ideal in an extension of Dedekind domains is an injective map. Note: the import increase happens in a leaf file `Mathlib.RingTheory.FractionalIdeal.Extended` --- - [x] depends on: #28800 t-ring-theory large-import 60/9 Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean 2 7 ['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'xroblot'] kbuzzard
assignee:kbuzzard
5-3848
5 days ago
5-3866
5 days ago
91-51100
91 days
30684 YaelDillies
author:YaelDillies
chore: deprecate `monoidalOfHasFiniteProducts` Over the summer, this was replaced everywhere with `CartesianMonoidalCategory.ofHasFiniteProducts`, but hadn't been deprecated. --- I would personally be very happy to also delete the finite coproduct stuff, but we don't yet have cocartesian-monoidal categories to replace them. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-category-theory 92/92 Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean 1 11 ['YaelDillies', 'github-actions', 'joelriou'] nobody
5-3574
5 days ago
5-69336
5 days ago
8-40662
8 days
29885 xroblot
author:xroblot
feat(DedekindDomain): lift a basis in a disjoint extension when the different ideals are coprime Let `A ⊆ B` be a finite extension of Dedekind domains and assume that `A ⊆ R₁, R₂ ⊆ B` are two subrings such that `Frac R₁ ⊔ Frac R₂ = Frac B`, `Frac R₁` and `Frac R₂` are linearly disjoint over `Frac A`, and that `𝓓(R₁/A)` and `𝓓(R₂/A)` are coprime where `𝓓` denotes the different ideal and `Frac R` denotes the fraction field of a domain `R`. This PR constructs a `R₁`-basis of `B` by lifting an `A`-basis of `R₂`. --- - [x] depends on: #29770 t-algebra
label:t-algebra$
153/4 Mathlib/RingTheory/DedekindDomain/LinearDisjoint.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
4-86135
4 days ago
5-4125
5 days ago
5-4448
5 days
29582 YaelDillies
author:YaelDillies
chore: rename `_root_.prop` to `instFiniteProp` This was a surprising name! --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data easy 1/1 Mathlib/Data/Fintype/EquivFin.lean 1 12 ['YaelDillies', 'bryangingechen', 'eric-wieser', 'github-actions', 'grunweg', 'plp127'] nobody
4-80164
4 days ago
4-80164
4 days ago
21-71823
21 days
19046 j-loreaux
author:j-loreaux
feat: define class `SemigroupAction` --- If I can get this building with minimal performance impact, I would like to change the names to: `MulAction → MonoidAction` `SemigroupAction → MulAction` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
48/26 Mathlib/Algebra/Azumaya/Matrix.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/Hom.lean,Mathlib/Algebra/Group/Action/Prod.lean,Mathlib/Algebra/Group/Action/TypeTags.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/GroupTheory/CoprodI.lean,Mathlib/LinearAlgebra/Eigenspace/Matrix.lean,Mathlib/LinearAlgebra/FreeModule/Finite/Quotient.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean,Mathlib/RingTheory/Trace/Basic.lean 13 11 ['alreadydone', 'github-actions', 'j-loreaux', 'jcommelin', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'urkud'] jcommelin
assignee:jcommelin
4-72920
4 days ago
61-48632
2 months ago
67-75916
67 days
29284 Jlh18
author:Jlh18
feat(CategoryTheory): naturality lemmas for Core construction Lemmas for PR #29283 to prove that `Core` is the right adjoint to the forgetful functor from `Cat` to `Grpd`. These lemmas are more general than that setting, and need not be stated in the bundled format. - [ ] depends on: #29250 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 59/0 Mathlib/CategoryTheory/Core.lean 1 16 ['Jlh18', 'adomani', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] kim-em
assignee:kim-em
4-70718
4 days ago
4-70718
4 days ago
33-55256
33 days
30548 fbarroero
author:fbarroero
feat(Analysis/Polynomial/MahlerMeasure): the Mahler measure of a linear polynomial and applications We prove `` theorem logMahlerMeasure_X_sub_C (z : ℂ) : (X - C z).logMahlerMeasure = log⁺ ‖z‖ `` and `` theorem logMahlerMeasure_eq_log_leadingCoeff_add_sum_log_roots (p : ℂ[X]) : p.logMahlerMeasure = log ‖p.leadingCoeff‖ + ((p.roots).map (fun a ↦ log⁺ ‖a‖)).sum `` --- - [x] depends on: #30681 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-analysis 144/2 Mathlib/Analysis/Polynomial/MahlerMeasure.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
4-69391
4 days ago
4-69442
4 days ago
9-39852
9 days
30855 Ruben-VandeVelde
author:Ruben-VandeVelde
fix: deprecate IsTotal in favour of Std.Total --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) RFC 208/111 Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/List/Sort.lean,Mathlib/Data/Multiset/Sort.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Ordmap/Invariants.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/Prod/Basic.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/Sigma/Lex.lean,Mathlib/Data/Sigma/Order.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Comparable.lean,Mathlib/Order/Compare.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Directed.lean,Mathlib/Order/Filter/FilterProduct.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/PropInstances.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/Order/UpperLower/CompleteLattice.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/Topology/EMetricSpace/BoundedVariation.lean 33 1 ['github-actions'] nobody
4-68954
4 days ago
4-69065
4 days ago
4-69043
4 days
28728 or4nge19
author:or4nge19
feat(PerronFrobenius): introduce Irreducible and Primitive Matrices and relations to Quiver This PR develops a graph-theoretic interface for studying nonnegative square matrices over `R` through the quiver formed by their strictly positive entries. It shows the equivalence between positivity of suitable matrix powers and existence of directed paths in this quiver. ------------ - [ ] depends on: #28696 - [ ] depends on:#29754 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 274/1 Mathlib.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean,docs/references.bib 4 39 ['github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash', 'or4nge19'] ocfnash
assignee:ocfnash
4-65711
4 days ago
4-66471
4 days ago
15-4040
15 days
30354 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity/WalkCounting): a spanning subgraph has the same or more connected components --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 8/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean 2 4 ['SnirBroshi', 'github-actions', 'ocfnash'] nobody
4-64447
4 days ago
4-64447
4 days ago
20-10538
20 days
30859 jessealama
author:jessealama
fix(CI): count only merged PRs in new contributor check Fixes #30858 The "Label New Contributors" workflow was counting all closed PRs when determining contributor experience, but it should only count merged PRs. This PR updates the workflow to use the GitHub search API with `is:merged` to properly filter for merged pull requests only. Now contributors are correctly identified as "new" based on their merged contributions, not just any closed PRs. CI 10/12 .github/workflows/label_new_contributor.yml 1 2 ['github-actions', 'grunweg'] nobody
4-60976
4 days ago
4-66558
4 days ago
4-66605
4 days
27258 JovanGerb
author:JovanGerb
Imo2020 q6 Original PR: #23431 This PR adds a solution to IMO 2020 Q6. It follows the solution that I found when I was participating in the IMO. I used the statement formalization that was given by @jsm28. --- - [x] depends on: #27257 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) IMO 337/0 Archive.lean,Archive/Imo/Imo2020Q6.lean 2 9 ['dwrensha', 'github-actions', 'mathlib4-dependent-issues-bot'] dwrensha
assignee:dwrensha
4-51277
4 days ago
36-64476
1 month ago
36-65757
36 days
30827 dagurtomas
author:dagurtomas
feat(Condensed): free light condensed module can be taken in an equivalent small category --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-condensed 20/2 Mathlib/Condensed/Light/Small.lean 1 1 ['github-actions'] nobody
4-50443
4 days ago
5-60513
5 days ago
5-60556
5 days
30866 staroperator
author:staroperator
feat(GroupTheory/Finiteness): well-quasi-ordered monoid must be finitely generated This is a trivial corollary that I forgot to add in #30840. Not an instance, since well-quasi-order is much stronger than finitely generated. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory easy 4/0 Mathlib/GroupTheory/Finiteness.lean 1 1 ['github-actions'] nobody
4-49694
4 days ago
4-49694
4 days ago
4-49846
4 days
30825 dagurtomas
author:dagurtomas
feat(CategoryTheory/Monoidal): some API for `Monoidal.Functor.transport` - Transporting a monoidal structure on functors along a natural isomorphism makes that natural isomorphism a monoidal natural transformation - Some lemmas about the unit, counit, tensorator and cotensorator isomorphisms for transported monoidal structures - Monoidal functors after pre/postcomposing with monoidal equivalences of categories --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 102/0 Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean 2 1 ['github-actions'] nobody
4-49240
4 days ago
5-64126
5 days ago
5-64173
5 days
30867 erdOne
author:erdOne
feat(RingTheory/Etale): standard etale maps --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 315/1 Mathlib.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/Algebra/Polynomial/Taylor.lean,Mathlib/RingTheory/Etale/StandardEtale.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean 5 1 ['github-actions'] nobody
4-39462
4 days ago
4-39535
4 days ago
4-45984
4 days
29526 llllvvuu
author:llllvvuu
feat: `Multiset.map f` identifies `f` up to permutation Motivation: Reason about `Fintype`-indexed families via `Multiset` equality. Example use case 1: ```lean theorem Matrix.IsHermitian.cfc_eigenvalues {d : Type*} [Fintype d] [DecidableEq d] {M : Matrix d d 𝕜} (hM : M.IsHermitian) (f : ℝ → ℝ) (hcfc : Matrix.IsHermitian (cfc f M) := cfc_predicate f M) : ∃ (e : d ≃ d), hcfc.eigenvalues = f ∘ hM.eigenvalues ∘ e := by have := hcfc.roots_charpoly_eq_eigenvalues.symm rw [hM.charpoly_cfc_eq f, Polynomial.roots_prod] at this; swap · simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero] simp_rw [Polynomial.roots_X_sub_C, Multiset.bind_singleton] at this have he := (Multiset.compTriple_equivOfMapUnivEq this).comp_eq simp_rw [← Function.comp_def RCLike.ofReal, ← Function.comp_def f, Function.comp_assoc] at he exact ⟨_, RCLike.ofReal_injective.comp_left he.symm⟩ ``` Example use case 2 (on top of https://github.com/leanprover-community/mathlib4/pull/29610): ```lean theorem LinearMap.Eigenbasis.μ_equiv {ι ι' R G : Type*} [Fintype ι] [Fintype ι'] [CommRing R] [IsDomain R] [AddCommGroup G] [Module R G] [Module.Free R G] [Module.Finite R G] {f : Module.End R G} (B₁ : f.Eigenbasis ι) (B₂ : f.Eigenbasis ι') : ∃ e : ι ≃ ι', B₁.μ = B₂.μ ∘ e := by classical have := congr(Polynomial.roots $(B₁.charpoly_eq.symm.trans B₂.charpoly_eq)) rw [Polynomial.roots_prod, Polynomial.roots_prod] at this; rotate_left · simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero] · simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero] simp_rw [Polynomial.roots_X_sub_C, Multiset.bind_singleton] at this exact ⟨Multiset.equivOfMapUnivEq this, (Multiset.compTriple_equivOfMapUnivEq this).comp_eq.symm⟩ ``` Co-authored-by: Aristotle Harmonic --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 35/0 Mathlib/Data/Multiset/Fintype.lean 1 8 ['Ruben-VandeVelde', 'github-actions', 'llllvvuu', 'vihdzp', 'wwylele'] pechersky
assignee:pechersky
4-32389
4 days ago
48-30795
1 month ago
48-30788
48 days
30423 erdOne
author:erdOne
feat(RingTheory): API for valuative rel --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 164/28 Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean 2 2 ['github-actions', 'pechersky'] mariainesdff
assignee:mariainesdff
4-32386
4 days ago
18-40300
18 days ago
18-40333
18 days
30431 kckennylau
author:kckennylau
feat(RingTheory): a homogeneous submodule is the span of its homogeneous elements --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 22/0 Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean 2 1 ['github-actions'] mariainesdff
assignee:mariainesdff
4-32385
4 days ago
18-5900
18 days ago
18-5942
18 days
30391 rudynicolop
author:rudynicolop
feat(Data/List): list splitting definitions and lemmas This PR continues the work from #24395. Original PR: https://github.com/leanprover-community/mathlib4/pull/24395 t-data new-contributor 151/2 Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/List/TakeDrop.lean 2 4 ['BoltonBailey', 'github-actions', 'rudynicolop'] nobody
4-23059
4 days ago
19-38959
19 days ago
19-38997
19 days
30873 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Walk): induce.mapLe = induce Inducing a walk to `G[s]` and then mapping to `G[s']` is the same as inducing to `G[s']` when `s ⊆ s'`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 5/0 Mathlib/Combinatorics/SimpleGraph/Walk.lean 1 1 ['github-actions'] nobody
4-20103
4 days ago
4-20107
4 days ago
4-20153
4 days
30120 FernandoChu
author:FernandoChu
feat(CategoryTheory): Pullback of equalizer is an equalizer We show that the pullback of an equalizer (seen as a subobject) along some morphism `h` is the subobject that comes from the equalizer of the two original arrows precomposed with `h`. A `TODO` was completed in the process. This is a prerequisite of the [MTT project](https://github.com/kyoDralliam/model-theory-topos), which aims to use the internal language of toposes to reason about e.g. sheaves. large-import t-category-theory 112/2 Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/CategoryTheory/Subobject/FactorThru.lean,Mathlib/CategoryTheory/Subobject/Limits.lean 5 6 ['FernandoChu', 'github-actions', 'joelriou'] joneugster
assignee:joneugster
4-19371
4 days ago
4-75712
4 days ago
19-35820
19 days
29982 hrmacbeth
author:hrmacbeth
feat: new `isolate` tactic This PR adds a new tactic, `isolate`, which "solves for x" in an equation or relation. For example: ```lean example (a b : ℝ) (f : ℝ → ℝ) : 5 * f a - 3 < b := by isolate f a -- new goal: `⊢ f a < (b + 3) / 5` ``` The `isolate` tactic may generate side goals, if these are necessary to justify the transformation. The tactic will attempt to justify such side goals using `positivity` (as in the above example), unification, or type class inference, but if unsuccessful will present them to the user. For example: ```lean example (a b c : ℝ) (f : ℝ → ℝ) : c * f a - 3 < b := by isolate f a -- new goal: `⊢ f a < (b + 3) / c` -- second (side) new goal: `⊢ 0 < c` ``` The `isolate` tactic is extensible. Coverage may be extended to new relations and new operations-to-be-undone by tagging appropriate lemmas with the new `@[isolate]` attribute. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-meta 863/3 Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Isolate.lean,Mathlib/Tactic/Isolate/Core.lean,Mathlib/Tactic/Isolate/Tagging.lean,Mathlib/Tactic/Relation/Symm.lean,MathlibTest/Isolate/Heavyweight.lean,MathlibTest/Isolate/Lightweight.lean,scripts/noshake.json 12 24 ['JovanGerb', 'PatrickMassot', 'github-actions', 'hrmacbeth', 'kim-em'] JovanGerb
assignee:JovanGerb
4-16454
4 days ago
32-44539
1 month ago
32-44522
32 days
30870 tb65536
author:tb65536
refactor(FieldTheory/*): partially switch over from `Polynomial.Splits` to `Polynomial.Factors` This PR is part of a larger effort to switch over from `Polynomial.Splits` to `Polynomial.Factors`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
183/118 Mathlib/Algebra/CubicDiscriminant.lean,Mathlib/Algebra/Polynomial/Factors.lean,Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/Analysis/Complex/Polynomial/GaussLucas.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Finite/GaloisField.lean,Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/FieldTheory/Minpoly/ConjRootClass.lean,Mathlib/FieldTheory/PolynomialGaloisGroup.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/FieldTheory/SplittingField/IsSplittingField.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean,Mathlib/LinearAlgebra/Matrix/Spectrum.lean,Mathlib/NumberTheory/Cyclotomic/Basic.lean,Mathlib/RingTheory/Discriminant.lean,Mathlib/RingTheory/Norm/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Vieta.lean,Mathlib/RingTheory/Trace/Basic.lean,Mathlib/Topology/Algebra/Polynomial.lean 23 1 ['github-actions'] riccardobrasca
assignee:riccardobrasca
4-1413
4 days ago
4-4715
4 days ago
4-4693
4 days
30869 tb65536
author:tb65536
refactor(FieldTheory/IsAlgClosed,IsSepClosed): redefine in terms of `Polynomial.Factors` This PR redefines `IsAlgClosed` and `IsSepClosed` in terms of `Polynomial.Factors` rather than in terms of `Polynomial.Splits (RingHom.id k)`. This is part of a larger effort to switch over from `Polynomial.Splits` to `Polynomial.Factors`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
13/7 Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/IsSepClosed.lean 2 1 ['github-actions'] riccardobrasca
assignee:riccardobrasca
4-1411
4 days ago
4-37031
4 days ago
4-37010
4 days
30609 FlAmmmmING
author:FlAmmmmING
feat(Combinatorics/Enumerative/Catalan.lean): Add definition of large and small Schroder. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 128/1 Mathlib/Combinatorics/Enumerative/Catalan.lean 1 1 ['github-actions'] nobody
4-233
4 days ago
12-72977
12 days ago
12-73021
12 days
27433 YaelDillies
author:YaelDillies
refactor: make `⇑e⁻¹ = ⇑e.symm` simp The motivation here is that the spelling `⇑e⁻¹` is only available when `e` is an automorphism, while the `⇑e.symm` one is available for all isomorphisms. However we do not want to simplify `e⁻¹ = e.symm` (without the coercions to function) since `e⁻¹` is an algebraic expression and `e.symm` is not. We consider that applying the coercion to functions gets us out of algebra land, and therefore it is okay to "dealgebraise" the expression further. From BrauerGroup and ClassFieldTheory --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CFT 216/257 Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/GroupTheory/Perm/Basic.lean,Mathlib/GroupTheory/Perm/Centralizer.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean,Mathlib/Logic/Equiv/Set.lean 16 10 ['YaelDillies', 'dwrensha', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] dwrensha
assignee:dwrensha
3-82564
3 days ago
4-4445
4 days ago
72-54533
72 days
30880 themathqueen
author:themathqueen
feat(Analysis/InnerProductSpace): finite-dimensional inner product space with coalgebra implies an algebra structure A finite-dimensional inner product space with a coalgebra structure also has an algebra structure by taking adjoints of the comultiplication map and counit map, i.e., `x * y = (adjoint comul) (x ⊗ₜ y)` and `algebraMap = adjoint counit`. TODO: There is also the opposite implication, i.e., a finite-dimensional inner product space with an algebra structure implies a coalgebra where `counit = adjoint Algebra.linearMap` and `comul = adjoint mul'`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 123/0 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Coalgebra.lean,Mathlib/Analysis/InnerProductSpace/TensorProduct.lean 3 1 ['github-actions'] nobody
3-75556
3 days ago
3-75896
3 days ago
3-81475
3 days
30881 FlAmmmmING
author:FlAmmmmING
feat(RingTheory/PowerSeries/Schroder.lean) : Define the generating function for large and small Schroder number Define the generating function for large and small Schroder number. Main result : Prove some lemmas and the generating function of large Schroder. Todo : Prove the generating function of small Schroder. - depends on: #30609 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 349/1 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/RingTheory/PowerSeries/Schroder.lean 3 1 ['github-actions'] nobody
3-74759
3 days ago
3-80653
3 days ago
3-80643
3 days
30876 erdOne
author:erdOne
chore(RingTheory): redefine `FormallySmooth` in terms of `Ω[S⁄R]` and `H¹(L_{S/R})` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 372/416 Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Field.lean,Mathlib/RingTheory/Etale/Kaehler.lean,Mathlib/RingTheory/Etale/Pi.lean,Mathlib/RingTheory/RingHom/Etale.lean,Mathlib/RingTheory/RingHom/Smooth.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Smooth/Kaehler.lean,Mathlib/RingTheory/Smooth/Local.lean,Mathlib/RingTheory/Smooth/Locus.lean,Mathlib/RingTheory/Smooth/Pi.lean,Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean,Mathlib/RingTheory/Unramified/Basic.lean,Mathlib/RingTheory/Unramified/Pi.lean 14 6 ['erdOne', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] nobody
3-69563
3 days ago
4-4429
4 days ago
4-7902
4 days
30132 callesonne
author:callesonne
feat(Bicategory/Functor/Strict): add `StrictPseudofunctor` This PR adds the notion of a strict pseudofunctor, where the coherence isomorphisms are equalities. This will be useful for #25561 where I define the bicategory of groupoids. --- - [x] depends on: #30134 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 174/2 Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean 1 8 ['callesonne', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
3-69198
3 days ago
3-69266
3 days ago
4-75279
4 days
27414 staroperator
author:staroperator
feat(ModelTheory): Semilinear sets are closed under intersection, difference and complement Separated from #27100. This PR proves that semilinear sets in cancellative monoids are closed under intersection, set difference and complement (requires finitely generated). We prove these results on `ℕ ^ k` first (which are private) and then generalize to any cancellative monoids. --- - [x] depends on: #27082 - [x] depends on: #27086 - [x] depends on: #27088 - [x] depends on: #27096 - [x] depends on: #27342 - [x] depends on: #27955 - [x] depends on: #28670 - [x] depends on: #29032 - [x] depends on: #29034 - [x] depends on: #29035 - [x] depends on: #29749 - [x] depends on: #29784 - [x] depends on: #29793 - [x] depends on: #30840 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 713/4 Mathlib.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean 3 37 ['YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'staroperator'] fpvandoorn
assignee:fpvandoorn
3-68770
3 days ago
3-68770
3 days ago
17-36560
17 days
30584 xroblot
author:xroblot
feat(RingTheory): add `NormalClosure` --- t-ring-theory 133/0 Mathlib.lean,Mathlib/RingTheory/NormalClosure.lean 2 9 ['github-actions', 'riccardobrasca', 'xroblot'] mariainesdff
assignee:mariainesdff
3-65767
3 days ago
12-81247
12 days ago
12-81243
12 days
28769 chrisflav
author:chrisflav
feat(RingTheory/Extension/Cotangent): presentation is submersive if `I/I²` has a suitable basis Let `P` be a presentation of an algebra with kernel `I`. We show that if `I/I²` has a basis given by the images of the relations and the module of Kaehler differentials has a basis given by the differentials of the free generators (those that don't appear in the Jacobian matrix), then `P` is submersive. We will later deduce from this a presentation-independent characterization of standard smooth algebras. From Pi1. --- - [x] depends on: #28767 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 305/11 Mathlib.lean,Mathlib/Algebra/Module/Submodule/Ker.lean,Mathlib/Algebra/Module/Submodule/LinearMap.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Module/Submodule/Range.lean,Mathlib/Analysis/InnerProductSpace/Symmetric.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/LinearAlgebra/Basis/Exact.lean,Mathlib/LinearAlgebra/Finsupp/Defs.lean,Mathlib/LinearAlgebra/Finsupp/Span.lean,Mathlib/LinearAlgebra/Finsupp/Supported.lean,Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Projection.lean,Mathlib/RingTheory/Extension/Cotangent/Basic.lean,Mathlib/RingTheory/Extension/Cotangent/Free.lean 16 7 ['chrisflav', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
3-65760
3 days ago
3-65760
3 days ago
6-62107
6 days
29253 FernandoChu
author:FernandoChu
feat(CategoryTheory): (Co)limits in preorders Characterize (co)limits in preorders as glbs/lubs, plus some other instances. large-import new-contributor t-category-theory 162/45 Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean,Mathlib/CategoryTheory/Discrete/Basic.lean,Mathlib/CategoryTheory/Limits/Preorder.lean,Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean,Mathlib/CategoryTheory/Limits/Shapes/Preorder/Fin.lean,Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/InfSemilattice.lean,Mathlib/CategoryTheory/Sites/Plus.lean 9 19 ['FernandoChu', 'github-actions', 'joelriou'] joelriou
assignee:joelriou
3-61409
3 days ago
4-55029
4 days ago
47-17981
47 days
30232 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): add `ConnectedComponent.toSubgraph` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 43/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 3 19 ['SnirBroshi', 'YaelDillies', 'github-actions'] YaelDillies
assignee:YaelDillies
3-60118
3 days ago
3-60118
3 days ago
23-27315
23 days
30887 vihdzp
author:vihdzp
chore: golf `finTwoArrowEquiv'` ...and generalize some theorems around it. --- #30538 got merged before I could fully realize these suggestions. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
21/25 Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/BigOperators/Finsupp/Fin.lean 2 1 ['github-actions'] nobody
3-57362
3 days ago
3-61373
3 days ago
3-61415
3 days
30885 erdOne
author:erdOne
chore(RingTheory): better defeqs for `PrimeSpectrum.preimageOrderIsoTensorResidueField` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 84/30 Mathlib/RingTheory/Ideal/Prime.lean,Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean,Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean 3 1 ['github-actions'] nobody
3-55010
3 days ago
3-63954
3 days ago
3-64004
3 days
27953 CoolRmal
author:CoolRmal
feat(ProbabilityTheory): Conditional Jensen's Inequality This PR adds conditional Jensen's inequality. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 526/10 Mathlib.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean 5 4 ['EtienneC30', 'github-actions', 'mathlib4-merge-conflict-bot'] sgouezel
assignee:sgouezel
3-53681
3 days ago
19-25388
19 days ago
27-61822
27 days
30895 callesonne
author:callesonne
feat(Bicategory/Modification/Pseudo): define modifications between strong natural transformations of pseudofunctors This PR adds modifications between strong natural transformations of pseudofunctors. At the same time, it improves the existing code on modifications between oplax natural tranformations of oplax functors (by removing some simp lemmas). This is a migration of #18254 to a fork. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 338/57 Mathlib.lean,Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Modification/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean 6 1 ['github-actions'] nobody
3-52804
3 days ago
3-54876
3 days ago
3-54922
3 days
30826 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): map a walk to its own subgraph While this is not very interesting on its own, it opens the possibility of mapping a walk to any graph, given a graph homomorphism from the walk's subgraph. --- Related: #30590 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 15/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean 1 1 ['github-actions'] nobody
3-50038
3 days ago
5-61720
5 days ago
5-61768
5 days
30882 themathqueen
author:themathqueen
feat(Data/Nat/Fib): the Cassini and Catalan identities The [Cassini and Catalan identities](https://en.wikipedia.org/wiki/Cassini_and_Catalan_identities) are identities for the Fibonacci numbers. * Cassini's identity: `fib (n + 1) * fib (n - 1) - fib n ^ 2 = (-1) ^ n` for nonzero `n`. * Catalan's identity: `fib (x + a) ^ 2 - fib (x + 2 * a) * fib x = fib a ^ 2 * (-1) ^ x` for nonzero `x` and `a`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data t-algebra
label:t-algebra$
93/0 Mathlib.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Nat/Fib/Lemmas.lean 3 13 ['github-actions', 'themathqueen', 'vihdzp'] nobody
3-38560
3 days ago
3-41965
3 days ago
3-42689
3 days
30389 euprunin
author:euprunin
fix: correctly apply `hint` priority (was always set to default 1000 due to a bug) Fixes #29831. In addition to fixing the bug, this PR also adjusts the (now-working) tactic priorities to ensure that: * `bound` is tested _after_ `aesop` (`bound` calls `aesop` and is therefore stronger) * `group` is tested _after_ `ring` (`group` calls `ring` and is therefore stronger) A bug in the parsing code below caused the priority value to be ignored, resulting in all hints using the default priority of 1000 regardless of the `register_hint` priority parameter: ```lean elab (name := registerHintStx) "register_hint" p:("(" "priority" ":=" num ")")? tac:tactic : command => liftTermElabM do -- remove comments let prio := match p with | some stx => match stx.raw[3]?.bind Syntax.isNatLit? with | some n => n | none => 1000 | none => 1000 let tac : TSyntax `tactic := ⟨tac.raw.copyHeadTailInfoFrom .missing⟩ addHint prio tac ``` Fixed by simplifying the syntax to take a mandatory numeric priority argument and extracting it directly via `prio.raw.isNatLit?`, removing the index-based parsing and the silent fallback to 1000. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta bug 81/46 Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Bound.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/Field.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/Finiteness.lean,Mathlib/Tactic/GCongr.lean,Mathlib/Tactic/Group.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linarith.lean,Mathlib/Tactic/NoncommRing.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Ring/RingNF.lean,MathlibTest/hint.lean 16 8 ['BoltonBailey', 'euprunin', 'github-actions', 'mathlib4-merge-conflict-bot'] nobody
3-34437
3 days ago
5-67011
5 days ago
18-39416
18 days
30436 wwylele
author:wwylele
feat(Topology/InfiniteSum): tprod_one_{add/sub}_ordered This extends the existing `Finset.prod_one_sub_ordered` to infinite sum/product, and also adds the more natural `add` version. Together with some previous PRs about infinite sum/prod and powerseries, this is part of my effort of upstreaming useful stuff from https://github.com/wwylele/PentagonalNumberTheorem. It starts getting into niche lemma, so suggestions such that not wanting this in mathlib, or it should be stated in a different form, are all welcomed. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 44/0 Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Ring.lean 2 1 ['github-actions'] grunweg
assignee:grunweg
3-32378
3 days ago
10-57427
10 days ago
17-77152
17 days
30599 wwylele
author:wwylele
feat(RingTheory): geometric series of (Mv)PowerSeries Also abstracted the common part for both PowerSeries and normed rings into `Summable.tsum_pow_mul_one_sub` / `Summable.one_sub_mul_tsum_pow`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 111/15 Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/RingTheory/MvPowerSeries/Order.lean,Mathlib/RingTheory/MvPowerSeries/PiTopology.lean,Mathlib/RingTheory/PowerSeries/Order.lean,Mathlib/RingTheory/PowerSeries/PiTopology.lean,Mathlib/Topology/Algebra/InfiniteSum/Ring.lean 6 1 ['github-actions'] erdOne
assignee:erdOne
3-32375
3 days ago
10-56710
10 days ago
13-31394
13 days
30646 xroblot
author:xroblot
feat(RingTheory/Ideal): the inertia degree and ramification index are less than the rank Also prove that `primesOverFinset` is less than the rank. These are all easy consequences of [Ideal.sum_ramification_inertia](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.sum_ramification_inertia) --- t-ring-theory 50/9 Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean 2 5 ['erdOne', 'github-actions', 'xroblot'] erdOne
assignee:erdOne
3-32373
3 days ago
10-65104
10 days ago
11-2684
11 days
30841 staroperator
author:staroperator
feat(SetTheory/ZFC): add `ZFSet.iUnion` which is just `sUnion (range f)`. We add a new definition for it instead of making `⋃ i, f i` a notation of `sUnion (range f)`, because the simp normal form of `(sUnion (range f)).toSet` is not `⋃ i, (f i).toSet`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory maintainer-merge 45/11 Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/Rank.lean,Mathlib/SetTheory/ZFC/VonNeumann.lean 4 11 ['YaelDillies', 'github-actions', 'staroperator', 'vihdzp'] nobody
3-29435
3 days ago
4-72288
4 days ago
5-1320
5 days
30853 JovanGerb
author:JovanGerb
feat(LinearAlgebra/AffineSpace/Simplex): `CoeFun` instance for `Simplex` This PR introduces the notation `s i` to refer to the `i`th vertex of simplex `s`, which replaces the current `s.points i`. It does this by adding a `CoeFun` instance. I first tried using `FunLike`, but this came with some different problems related to discrimination tree indexing in `simp`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 348/337 Archive/Imo/Imo2019Q2.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/Geometry/Euclidean/Angle/Sphere.lean,Mathlib/Geometry/Euclidean/Circumcenter.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/Geometry/Euclidean/MongePoint.lean,Mathlib/Geometry/Euclidean/Projection.lean,Mathlib/Geometry/Euclidean/SignedDist.lean,Mathlib/Geometry/Euclidean/Simplex.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean 14 5 ['JovanGerb', 'github-actions', 'jsm28'] nobody
3-26428
3 days ago
4-76598
4 days ago
4-76575
4 days
30894 dupuisf
author:dupuisf
feat(CStarAlgebra): the log is operator monotone This PR shows that the logarithm is operator monotone, i.e. `CFC.log` is monotone on `{a : A | IsStrictlyPositive a}` where `A` is a unital C*-algebra. Note that we rename `Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.ExpLog` to `Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.ExpLog.Basic` in order to add `Order.lean` in that folder with the main result. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 382/175 Mathlib.lean,Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Order.lean,Mathlib/Analysis/SpecialFunctions/Log/RpowTendsto.lean 7 1 ['github-actions'] nobody
3-22386
3 days ago
3-28407
3 days ago
3-28390
3 days
30679 themathqueen
author:themathqueen
feat(RingTheory/MatrixAlgebra): `Matrix.kronecker` as an algebra equivalence --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
32/0 Mathlib/RingTheory/MatrixAlgebra.lean 1 2 ['github-actions', 'themathqueen'] nobody
2-80115
2 days ago
3-58274
3 days ago
9-69941
9 days
25901 callesonne
author:callesonne
feat(Bicategory/Opposites): add 1-cell opposite bicategory This PR adds the 1-cell opposite bicategory, where only the 1-morphisms are reversed. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 166/13 Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Opposites.lean,Mathlib/CategoryTheory/Opposites.lean 3 15 ['callesonne', 'github-actions', 'joelriou', 'leanprover-bot', 'leanprover-community-bot-assistant'] nobody
2-77307
2 days ago
3-43293
3 days ago
3-58178
3 days
30852 bryangingechen
author:bryangingechen
ci: wrapper script for grouping lake build output logs and extracting issues Currently the output of `lake build` and `lake build --no-build` in our build worfklows are each placed into collapsible log groups. This grouping is too coarse, since to find warnings and errors still takes scrolling or searching through potentially thousands of lines after opening the group. This PR adds a helper script for use in GitHub actions workflows which wraps `lake build` and groups consecutive sequences of "normal", "info", "warning" and "error" log lines into separate collapsible log groups. For examples, see: - [grouping of trace blocks from proof widgets](https://github.com/leanprover-community/mathlib4/actions/runs/18804230623/job/53656010644#step:20:31) - [warning and error groups in Mathlib](https://github.com/leanprover-community/mathlib4/actions/runs/18811606357/job/53673576603#step:20:31) - [another example of warning and error groups in Mathlib](https://github.com/leanprover-community/mathlib4/actions/runs/18811662691/job/53673707777#step:20:31) Note that while a build is in progress, lines in an open log group are still printed and visible, so this change will not make it more difficult to see how far along a build is. As mentioned above, we're already grouping log output; this change attempts to make the grouping more helpful. The wrapper script also saves details about issues in the build (`warning`, `error`, `info` messages from `lake build`) into a JSON file for future use, e.g. determining which PR in a bors batch might have an error. Because our build steps do not have permission to write to `GITHUB_OUTPUT`, when we invoke this wrapper, we write the build summary file to `.lake/build_summary_*.json`. cf. [#mathlib reviewers > grouping lake build output in GitHub actions logs](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/grouping.20lake.20build.20output.20in.20GitHub.20actions.20logs/with/546907609) Written with help from Claude and OpenAI Codex, but checked by me. --- This is a version of #30836 re-opened from a branch in this for easier testing. CI 1202/9 .github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build-testing.yaml,.github/workflows/build.yml,.github/workflows/build_fork.yml,scripts/README.md,scripts/lake-build-with-retry.sh,scripts/lake-build-wrapper.py 8 6 ['bryangingechen', 'github-actions'] nobody
2-72055
2 days ago
3-27407
3 days ago
4-72773
4 days
30594 j-loreaux
author:j-loreaux
feat: generalize continuity results for the continuous functional calculus Under suitable conditions `x ↦ cfc f (a x)` is continuous. Previously these conditions were that there was a single compact set on which `f` was continuous, and which contained the spectra of all `a x`. However, this is a bit too stringent for some purposes and so we generalize it here. In particular, it suffices that the spectra `a x` are covered by a family of compact sets `s x` (on each of which `f` is continuous) satisfying the property that each `s x₀` contains the spectra `a x` for `x` sufficiently close to `x₀`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 94/81 Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean 1 2 ['dupuisf', 'github-actions'] ADedecker
assignee:ADedecker
2-67497
2 days ago
13-45277
13 days ago
13-45267
13 days
30901 bryangingechen
author:bryangingechen
ci: only run deprecated declaration removal if a PR doesn't already exist The action we're using to open PRs is designed to force-push over the branch it uses [by design](https://github.com/peter-evans/create-pull-request/blob/main/docs/common-issues.md#disable-force-updates-to-existing-pr-branches), but this can potentially wipe out work in progress on that branch. I use the same method as in [update_dependencies.yml](https://github.com/leanprover-community/mathlib4/blob/985bd66bf494c03376b6dbd2898f4873b5df6a77/.github/workflows/update_dependencies.yml#L41-L58) to only run that step if there's no open PR from the branch. Also change the schedule to monthly, since every week might be too ambitious, given the pace of progress on #30759. --- CI 32/3 .github/workflows/remove_deprecated_decls.yml 1 3 ['bryangingechen', 'github-actions'] nobody
2-65415
2 days ago
3-49849
3 days ago
3-49827
3 days
30932 urkud
author:urkud
chore(TangentCone): split file It will be easier for me to generalize the definition this way. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed 811/692 Mathlib.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/Calculus/TangentCone/Basic.lean,Mathlib/Analysis/Calculus/TangentCone/Defs.lean,Mathlib/Analysis/Calculus/TangentCone/DimOne.lean,Mathlib/Analysis/Calculus/TangentCone/Pi.lean,Mathlib/Analysis/Calculus/TangentCone/Prod.lean,Mathlib/Analysis/Calculus/TangentCone/ProperSpace.lean,Mathlib/Analysis/Calculus/TangentCone/Real.lean,Mathlib/Analysis/RCLike/TangentCone.lean,Mathlib/Geometry/Manifold/MFDeriv/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean 14 2 ['github-actions', 'urkud'] nobody
2-59579
2 days ago
2-64521
2 days ago
2-70353
2 days
29082 grunweg
author:grunweg
RFC: tag `IsInducing` and `Is{Open,Closed,}Embedding` with `fun_prop` I have not tested if this is usable in practice; perhaps it is not. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 37/5 Mathlib/Topology/Constructions.lean,Mathlib/Topology/Defs/Induced.lean,Mathlib/Topology/Maps/Basic.lean 3 3 ['github-actions', 'grunweg', 'jcommelin'] ocfnash
assignee:ocfnash
2-57374
2 days ago
61-51045
2 months ago
61-51075
61 days
30843 kim-em
author:kim-em
chore: don't require README for scripts/ subdir contents Currently, if you create a subdirectory in `scripts/`, CI requires that the README file mentions each individual file in that subdirectory. The new behaviour only requires mentioning the subdirectory itself in the README file. t-linter maintainer-merge 7/6 scripts/lint-style.lean 1 5 ['github-actions', 'grunweg', 'kim-em'] grunweg
assignee:grunweg
2-57107
2 days ago
2-57107
2 days ago
3-61697
3 days
30946 jessealama
author:jessealama
feat(SetLike): add exists_not_mem_of_ne_top lemma Adds a bridging lemma for `SetLike` structures: if `s ≠ ⊤` and the top element coerces to the universal set, then there exists an element not in `s`. This generalizes a pattern that was specific to `AffineSubspace` and makes it available for all `SetLike` structures (submodules, subalgebras, etc.) where `⊤ = univ`. Extracted from #30854 per reviewer feedback: https://github.com/leanprover-community/mathlib4/pull/30854#discussion_r2462326156 --- **Potential reviewers** (recent contributors to `Mathlib/Data/SetLike/Basic.lean`): - @kim-em - @themathqueen t-data 9/0 Mathlib/Data/SetLike/Basic.lean 1 1 ['github-actions'] nobody
2-48287
2 days ago
2-48295
2 days ago
2-48340
2 days
30948 jessealama
author:jessealama
feat(AffineSubspace): add nonemptiness lemmas for affine span of range This PR adds two small lemmas showing that if the affine span of the range of a function is nonempty, then the index type must be nonempty. These lemmas were extracted from the closed PR #30854 following reviewer feedback to submit smaller, more focused PRs. cc @eric-wieser @bryangingechen t-algebra
label:t-algebra$
16/0 Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean 1 1 ['github-actions'] nobody
2-46707
2 days ago
2-46714
2 days ago
2-46760
2 days
30669 harahu
author:harahu
doc(Algebra): typo fixes Found with help from Codex, curated by me. I've tried to limit the PR to changes that are easy to verify. Should you find it difficult to review any particular part of this PR, know that I have nothing against trimming this PR down in favor of smaller free-standing PRs for the difficult-to-review parts. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
45/45 Mathlib/Algebra/AddConstMap/Basic.lean,Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Algebra/BrauerGroup/Defs.lean,Mathlib/Algebra/CharZero/AddMonoidHom.lean,Mathlib/Algebra/Field/Action/ConjAct.lean,Mathlib/Algebra/Field/Power.lean,Mathlib/Algebra/Field/ULift.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Homology/ComplexShapeSigns.lean,Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/Factorizations/Basic.lean,Mathlib/Algebra/Homology/HomologySequenceLemmas.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean,Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean,Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean,Mathlib/Algebra/Homology/HomotopyCofiber.lean,Mathlib/Algebra/Homology/Localization.lean,Mathlib/Algebra/Lie/Free.lean,Mathlib/Algebra/Lie/InvariantForm.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Lie/Sl2.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/TraceForm.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Algebra/Polynomial/Lifts.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/Algebra/SkewMonoidAlgebra/Single.lean 30 1 ['github-actions'] kim-em
assignee:kim-em
2-32354
2 days ago
9-80873
9 days ago
9-85521
9 days
30213 SnirBroshi
author:SnirBroshi
feat(Data/List/GetD): golf and add lemmas for `get` and `getElem?` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 18/16 Mathlib/Data/List/GetD.lean 1 11 ['SnirBroshi', 'eric-wieser', 'github-actions', 'themathqueen'] nobody
2-31140
2 days ago
2-31140
2 days ago
23-84575
23 days
30954 chrisflav
author:chrisflav
chore(RingTheory/Extension/Presentation): unprivate auxiliary definition for composition This definition appears when unfolding `Presentation.comp`, so it should not be private. We also fix the name to make it convention compliant. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 14/13 Mathlib/RingTheory/Extension/Presentation/Basic.lean 1 1 ['github-actions'] nobody
2-29329
2 days ago
2-29406
2 days ago
2-29384
2 days
30214 SnirBroshi
author:SnirBroshi
feat(Data/List/Basic): add `Fin` variants of `*mem_iff_getElem` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 8/0 Mathlib/Data/List/Basic.lean 1 4 ['SnirBroshi', 'eric-wieser', 'github-actions'] nobody
2-28950
2 days ago
2-78338
2 days ago
24-43737
24 days
29956 SnirBroshi
author:SnirBroshi
feat(Algebra/Polynomial): small and useful lemmas added many small and useful lemmas about polynomials --- Moves these 4 theorems from `Mathlib.Algebra.Polynomial.Monic` to `Mathlib.Algebra.Polynomial.Degree.Lemmas`: - `degree_map_eq_of_injective` - `natDegree_map_eq_of_injective` - `leadingCoeff_map_of_injective` - `nextCoeff_map` `Monic.lean` imports `Lemmas.lean` so users are not affected. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
268/90 Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/Eval/Coeff.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Algebra/Polynomial/Eval/Degree.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/FieldTheory/NormalizedTrace.lean,Mathlib/RingTheory/Trace/Basic.lean 16 69 ['SnirBroshi', 'erdOne', 'github-actions', 'kckennylau', 'leanprover-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] ocfnash
assignee:ocfnash
2-24247
2 days ago
2-25893
2 days ago
30-77712
30 days
30216 SnirBroshi
author:SnirBroshi
feat(Data/List/Basic): `get` is surjective iff every element is in the list --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 16/0 Mathlib/Data/List/Basic.lean 1 13 ['SnirBroshi', 'eric-wieser', 'github-actions', 'themathqueen'] nobody
2-23674
2 days ago
2-28181
2 days ago
23-78693
23 days
30958 kim-em
author:kim-em
feat: preparations for LawfulOfScientific `LawfulOfScientific`, and grind support for it, will be added shortly. This is PR contains the prerequisites which can already go in `master`. c.f. https://github.com/leanprover/lean4/pull/10971 and the [`lean-pr-testing-10971`](https://github.com/leanprover-community/mathlib4-nightly-testing/commit/4f3ca5121a48872248a70a5098b608cdd13caeca) branch. 11/0 Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Data/Rat/Cast/Lemmas.lean 2 1 ['github-actions'] nobody
2-20532
2 days ago
2-20722
2 days ago
2-20699
2 days
29507 zhuyizheng
author:zhuyizheng
feat(MeasureTheory): derivative integrable functions Part of originally planned #29092. We prove that: * If `f` is monotone on `a..b`, then `f'` is interval integrable on `a..b`. * If `f` has bounded variation on `a..b`, then `f'` is interval integrable on `a..b`. * If `f` is absolutely continuous on `a..b`, then `f'` exists a.e. on `a..b` and is interval integrable on `a..b`. --- - [x] depends on: #29504 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import new-contributor t-measure-probability 354/15 Mathlib.lean,Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/LinearAlgebra/AffineSpace/Slope.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/MeasureTheory/Function/L1Space/Integrable.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Slope.lean,Mathlib/Order/Monotone/Defs.lean 9 13 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel', 'zhuyizheng'] nobody
2-13585
2 days ago
6-16578
6 days ago
16-47297
16 days
30511 gasparattila
author:gasparattila
refactor: use `fun_prop` in `measurability` This PR changes the `measurability` tactic to use `fun_prop` for solving `Measurable` and similar goals. For backward compatibility, the `measurability` attribute is also changed to apply the `fun_prop` attribute. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 129/75 Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean,Mathlib/MeasureTheory/Constructions/Cylinders.lean,Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Group/Arithmetic.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/MeasurableSpace/Defs.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/Tactic/Measurability.lean,MathlibTest/measurability.lean 11 8 ['fpvandoorn', 'gasparattila', 'github-actions'] dwrensha
assignee:dwrensha
1-82652
1 day ago
15-59891
15 days ago
15-60883
15 days
30692 themathqueen
author:themathqueen
chore: rename **conjugate** to **star_left_conjugate** We change `_conjugate_` to `_star_left_conjugate_` and `_conjugate_'` to `_star_right_conjugate_` to avoid confusion since sometimes in some files it means `_ * _ * star _` and in others it means `star _ * _ * _`. In particular, `Algebra/Algebra/StrictPositivity`: * `IsUnit.isStrictlyPositive_conjugate_iff` -> `IsUnit.isStrictlyPositive_star_right_conjugate_iff` * `IsUnit.isStrictlyPositive_conjugate_iff'` -> `IsUnit.isStrictlyPositive_star_left_conjugate_iff` `Algebra/Order/Star/Basic`: * `conjugate_nonnneg` -> `star_left_conjugate_nonneg` * `conjugate_nonneg'` -> `star_right_conjugate_nonneg` * `conjugate_le_conjugate` -> `star_left_conjugate_le_conjugate` * `conjugate_le_conjugate'` -> `star_right_conjugate_le_conjugate` * `conjugate_lt_conjugate` -> `star_left_conjugate_lt_conjugate` * `conjugate_lt_conjugate'` -> `star_right_conjugate_lt_conjugate` * `conjugate_pos` -> `star_left_conjugate_pos` * `conjugate_pos'` -> `star_right_conjugate_pos` * `IsUnit.conjugate_nonneg_iff` -> `IsUnit.star_right_conjugate_nonneg_iff` * `IsUnit.conjugate_nonneg_iff'` -> `IsUnit.star_left_conjugate_nonneg_iff` `Analysis/CStarAlgebra/CFC/Order`: * `CStarAlgebra.conjugate_le_norm_smul` -> `CStarAlgebra.star_left_conjugate_le_norm_smul` * `CStarAlgebra.conjugate_le_norm_smul'` -> `CStarAlgebra.star_right_conjugate_le_norm_smul` `LinearAlgebra/Matrix/PosDef`: * `Matrix.IsUnit.posSemidef_conjugate_iff` -> `Matrix.IsUnit.posSemidef_star_right_conjugate_iff` * `Matrix.IsUnit.posSemidef_conjugate_iff'` -> `Matrix.IsUnit.posSemidef_star_left_conjugate_iff` * `Matrix.IsUnit.posDef_conjugate_iff` -> `Matrix.IsUnit.posDef_star_right_conjugate_iff` * `Matrix.IsUnit.posDef_conjugate_iff'` -> `Matrix.IsUnit.posDef_star_left_conjugate_iff` --- There's more to do, but will leave this for another PR. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-analysis
label:t-algebra$
83/53 Mathlib/Algebra/Algebra/StrictPositivity.lean,Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/CStarAlgebra/Module/Defs.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean 6 6 ['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'themathqueen'] nobody
1-79206
1 day ago
5-59865
5 days ago
9-32838
9 days
26588 faenuccio
author:faenuccio
feat(Algebra/GroupWithZero/WithZero): add the multiplicative embedding with zero from the range We extend the embedding of the range of a `MonoidWithZeroHom` to the codomain by enriching it with the structure of an ordered, multiplicative embedding. In passing, we extend some results about the embedding of `WithZero` of the units of a group with zero, to the group itself. Co-authored by: María Inés de Frutos Fernández @mariainesdff --- - [x] depends on: #29594 - [x] depends on: #29644 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order t-algebra
label:t-algebra$
114/2 Mathlib.lean,Mathlib/Algebra/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean 3 107 ['YaelDillies', 'eric-wieser', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] YaelDillies
assignee:YaelDillies
1-74809
1 day ago
1-74809
1 day ago
35-12661
35 days
30962 WangYiran01
author:WangYiran01
feat(Combinatorics/Enumerative): add lattice path lemmas and counts This PR adds definitions and theorems about monotone lattice paths: - Defines `pathCount`, `pathCountFrom`, `SubdiagProp`, and related structures. - Proves closed forms such as `pathCount_eq_closed`. - Adds Dyck/ballot subdiagonal property (`SubdiagProp`). All code builds successfully with `lake build`. new-contributor t-combinatorics 64/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/RecLatticePath.lean 2 1 ['github-actions'] nobody
1-74083
1 day ago
2-8485
2 days ago
2-8527
2 days
30911 vihdzp
author:vihdzp
chore(Algebra/Group/Pi/Lemmas): golf using `aesop` / `grind` --- The new proof of `Pi.mulSingle_mul_mulSingle_eq_mulSingle_mul_mulSingle` is slower but arguably much more understandable. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
6/28 Mathlib/Algebra/Group/Pi/Lemmas.lean 1 10 ['github-actions', 'grunweg', 'leanprover-bot', 'themathqueen', 'vihdzp'] nobody
1-72920
1 day ago
3-36503
3 days ago
3-36547
3 days
28836 yury-harmonic
author:yury-harmonic
feat: add `norm_num` extensions Add `norm_num` extensions for - `Int.negOfNat`; - `Nat.floor`, `Nat.ceil`, and `Int.round`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 250/14 Mathlib/Algebra/Order/Floor/Semifield.lean,Mathlib/Data/NNRat/Floor.lean,Mathlib/Data/Rat/Floor.lean,Mathlib/Tactic/NormNum/Basic.lean,MathlibTest/norm_num_ext.lean 5 18 ['Ruben-VandeVelde', 'digama0', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'yury-harmonic'] j-loreaux
assignee:j-loreaux
1-72884
1 day ago
5-68563
5 days ago
18-20445
18 days
29649 MichaelStollBayreuth
author:MichaelStollBayreuth
feat(Analysis/Normed/Algebra/GelfandMazur): new file This adds two versions of the *Gelfand-Mazur* *Theorem*: ```lean NormedAlgebra.Complex.nonempty_algEquiv (F : Type*) [NormedRing F] [NormOneClass F] [NormMulClass F] [NormedAlgebra ℂ F] [Nontrivial F] : Nonempty (ℂ ≃ₐ[ℂ] F) NormedAlgebra.Real.nonempty_algEquiv_or (F : Type*) [NormedField F] [NormedAlgebra ℝ F] : Nonempty (F ≃ₐ[ℝ] ℝ) ∨ Nonempty (F ≃ₐ[ℝ] ℂ) ``` The version for complex algebras differs in its assumptions from the existing version [NormedRing.algEquivComplexOfComplete](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Algebra/Spectrum.html#NormedRing.algEquivComplexOfComplete) (nontrivial normed algebra with multiplicative norm vs. complete division ring with submultiplicative norm). A version for real algebras is not yet in Mathlib; it is needed in the context of implementing (absolute) heights; see [Heights](https://github.com/MichaelStollBayreuth/Heights). Following a suggestion by @j-loreaux, we also add some API for the `Bornology.cobounded` filter. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 543/3 Mathlib.lean,Mathlib/Analysis/Complex/PhragmenLindelof.lean,Mathlib/Analysis/Normed/Algebra/Basic.lean,Mathlib/Analysis/Normed/Algebra/GelfandMazur.lean,Mathlib/Topology/Bornology/BoundedOperation.lean,Mathlib/Topology/Bornology/Constructions.lean,docs/references.bib 7 36 ['MichaelStollBayreuth', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib4-merge-conflict-bot'] j-loreaux
assignee:j-loreaux
1-72823
1 day ago
1-72823
1 day ago
31-77658
31 days
27946 plp127
author:plp127
refactor: have `MetrizableSpace` not depend on `MetricSpace` Some theorems for uniform spaces with a countably generated uniformity do not mention their uniformity in any of the hypotheses or the conclusion (for example `UniformSpace.isCompact_iff_isSeqCompact`). This PR allows those theorems to be stated for (pseudo)metrizable spaces without importing the real numbers. - Use `TopologicalSpace.pseudoMetrizableSpaceUniformity` to endow a pseudometrizable space with a compatible uniformity, and use `TopologicalSpace.pseudoMetrizableSpaceUniformity_countably_generated` to show that this is countably generated. - `TopologicalSpace.pseudoMetrizableSpacePseudoMetric` and `TopologicalSpace.metrizableSpaceMetric` have been moved to `Mathlib/Topology/Metrizable/Uniformity.lean`. See also #2032 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 128/102 Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Topology/Compactness/PseudometrizableLindelof.lean,Mathlib/Topology/GDelta/MetrizableSpace.lean,Mathlib/Topology/Metrizable/Basic.lean,Mathlib/Topology/Metrizable/ContinuousMap.lean,Mathlib/Topology/Metrizable/Real.lean,Mathlib/Topology/Metrizable/Uniformity.lean 7 15 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'plp127', 'urkud', 'vihdzp'] urkud
assignee:urkud
1-66274
1 day ago
16-65504
16 days ago
85-52526
85 days
27971 smmercuri
author:smmercuri
feat: weak approximation theorems for infinite places of a number field Under the diagonal embedding into infinite places, a number field $K$ is dense inside both the product $\prod_{v \mid \infty} (K, v)$, where $(K, v)$ denotes $K$ equipped with $v$'s topology, and the infinite adele ring $\prod_v K_v$. This PR continues the work from #22153. Original PR: https://github.com/leanprover-community/mathlib4/pull/22153 --- - [x] depends on: #27969 FLT t-algebra t-number-theory
label:t-algebra$
98/2 Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/NumberTheory/NumberField/AdeleRing.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean 3 5 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri'] Vierkantor
assignee:Vierkantor
1-65541
1 day ago
9-7954
9 days ago
26-42503
26 days
30972 mariainesdff
author:mariainesdff
feat(RingTheory): add (Mv)Polynomial.coe_smul Co-authored by : @AntoineChambert-Loir --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 8/0 Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Basic.lean 2 1 ['github-actions'] nobody
1-62645
1 day ago
1-62669
1 day ago
1-62704
1 day
30494 kebekus
author:kebekus
feat: behaviour of Nevanlinna functions under multiplication Establish the behavior of Nevanlinna functions under multiplication. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. The formula established here is part of a larger package discussing the behavior of the Nenvanlinna height under algebraic manipulations of the functions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 233/0 Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean,Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean,Mathlib/Analysis/Complex/ValueDistribution/ProximityFunction.lean,Mathlib/MeasureTheory/Integral/CircleAverage.lean,Mathlib/Topology/LocallyFinsupp.lean 5 2 ['github-actions', 'mathlib4-merge-conflict-bot'] j-loreaux
assignee:j-loreaux
1-62526
1 day ago
1-62546
1 day ago
16-16009
16 days
30833 kckennylau
author:kckennylau
feat(Data): IsScalarTower for ZMod --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 29/0 Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Data/ZMod/Basic.lean 2 9 ['erdOne', 'github-actions', 'kckennylau', 'leanprover-bot'] nobody
1-62240
1 day ago
5-52045
5 days ago
5-52022
5 days
30974 mariainesdff
author:mariainesdff
feat(Algebra/Algebra/Basic): add RingHom.commSemiringToCommRing Co-authored by: @AntoineChambert-Loir --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
8/0 Mathlib/Algebra/Algebra/Basic.lean 1 1 ['github-actions'] nobody
1-62204
1 day ago
1-62211
1 day ago
1-62250
1 day
30976 mariainesdff
author:mariainesdff
feat(Data/Nat/Choose/Multinomial): add multinomial_eq_of_support_subset --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 10/0 Mathlib/Data/Nat/Choose/Multinomial.lean 1 n/a ['github-actions'] nobody
1-61409
1 day ago
unknown
unknown
30959 euprunin
author:euprunin
chore(RingTheory/Polynomial): golf entire `degreeLT_succ_eq_degreeLE` using `rfl` ---
Show trace profiling of degreeLT_succ_eq_degreeLE: 12 ms before, <10 ms after 🎉 ### Trace profiling of `degreeLT_succ_eq_degreeLE` before PR 30959 ```diff diff --git a/Mathlib/RingTheory/Polynomial/Basic.lean b/Mathlib/RingTheory/Polynomial/Basic.lean index 205bce7933..89ab41fcbc 100644 --- a/Mathlib/RingTheory/Polynomial/Basic.lean +++ b/Mathlib/RingTheory/Polynomial/Basic.lean @@ -158,6 +158,7 @@ theorem eval_eq_sum_degreeLTEquiv {n : ℕ} {p : R[X]} (hp : p ∈ degreeLT R n) simp_rw [eval_eq_sum] exact (sum_fin _ (by simp_rw [zero_mul, forall_const]) (mem_degreeLT.mp hp)).symm +set_option trace.profiler true in theorem degreeLT_succ_eq_degreeLE {n : ℕ} : degreeLT R (n + 1) = degreeLE R n := by ext x by_cases x_zero : x = 0 ``` ``` ℹ [1436/1436] Built Mathlib.RingTheory.Polynomial.Basic (2.4s) info: Mathlib/RingTheory/Polynomial/Basic.lean:162:0: [Elab.async] [0.012225] elaborating proof of Polynomial.degreeLT_succ_eq_degreeLE [Elab.definition.value] [0.011683] Polynomial.degreeLT_succ_eq_degreeLE [Elab.step] [0.011420] ext x by_cases x_zero : x = 0 · simp_rw [x_zero, Submodule.zero_mem] · rw [mem_degreeLT, mem_degreeLE, ← natDegree_lt_iff_degree_lt (by rwa [ne_eq]), ← natDegree_le_iff_degree_le, Nat.lt_succ] [Elab.step] [0.011413] ext x by_cases x_zero : x = 0 · simp_rw [x_zero, Submodule.zero_mem] · rw [mem_degreeLT, mem_degreeLE, ← natDegree_lt_iff_degree_lt (by rwa [ne_eq]), ← natDegree_le_iff_degree_le, Nat.lt_succ] Build completed successfully (1436 jobs). ``` ### Trace profiling of `degreeLT_succ_eq_degreeLE` after PR 30959 ```diff diff --git a/Mathlib/RingTheory/Polynomial/Basic.lean b/Mathlib/RingTheory/Polynomial/Basic.lean index 205bce7933..5078d7c03c 100644 --- a/Mathlib/RingTheory/Polynomial/Basic.lean +++ b/Mathlib/RingTheory/Polynomial/Basic.lean @@ -158,12 +158,8 @@ theorem eval_eq_sum_degreeLTEquiv {n : ℕ} {p : R[X]} (hp : p ∈ degreeLT R n) simp_rw [eval_eq_sum] exact (sum_fin _ (by simp_rw [zero_mul, forall_const]) (mem_degreeLT.mp hp)).symm -theorem degreeLT_succ_eq_degreeLE {n : ℕ} : degreeLT R (n + 1) = degreeLE R n := by - ext x - by_cases x_zero : x = 0 - · simp_rw [x_zero, Submodule.zero_mem] - · rw [mem_degreeLT, mem_degreeLE, ← natDegree_lt_iff_degree_lt (by rwa [ne_eq]), - ← natDegree_le_iff_degree_le, Nat.lt_succ] +set_option trace.profiler true in +theorem degreeLT_succ_eq_degreeLE {n : ℕ} : degreeLT R (n + 1) = degreeLE R n := rfl /-- The equivalence between monic polynomials of degree `n` and polynomials of degree less than `n`, formed by adding a term `X ^ n`. -/ ``` ``` ✔ [1436/1436] Built Mathlib.RingTheory.Polynomial.Basic (2.4s) Build completed successfully (1436 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-ring-theory 1/6 Mathlib/RingTheory/Polynomial/Basic.lean 1 1 ['github-actions', 'vihdzp'] nobody
1-54864
1 day ago
2-13013
2 days ago
2-13055
2 days
30939 euprunin
author:euprunin
chore(NumberTheory/LegendreSymbol/QuadraticChar): golf `FiniteField.isSquare_odd_prime_iff` using `simp` ---
Show trace profiling of FiniteField.isSquare_odd_prime_iff: 61 ms before, 139 ms after ### Trace profiling of `FiniteField.isSquare_odd_prime_iff` before PR 30939 ```diff diff --git a/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean b/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean index e3281cd154..e042b8dd3f 100644 --- a/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean +++ b/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean @@ -94,6 +94,7 @@ theorem quadraticChar_odd_prime [DecidableEq F] (hF : ringChar F ≠ 2) {p : ℕ (ne_of_eq_of_ne (ringChar_zmod_n p) hp₂.symm) rwa [card p] at h +set_option trace.profiler true in /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not take the value `-1` on `χ₄#F * #F`. -/ theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] ``` ``` ℹ [2828/2828] Built Mathlib.NumberTheory.LegendreSymbol.QuadraticChar.GaussSum (2.6s) info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.command] [0.019186] /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not take the value `-1` on `χ₄#F * #F`. -/ theorem isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] (hp : p ≠ 2) : IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 := by classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.definition.header] [0.018732] FiniteField.isSquare_odd_prime_iff [Elab.step] [0.017563] expected type: Prop, term IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 [Elab.step] [0.017558] expected type: Prop, term Iff✝ (IsSquare (p : F)) (quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1) [Elab.step] [0.015040] expected type: Prop, term quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 [Elab.step] [0.015035] expected type: Prop, term binrel% Ne✝ (quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F)) (-1) [Elab.step] [0.014678] expected type: , term quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) [Elab.step] [0.011485] expected type: ZMod p, term (χ₄ (Fintype.card F) * Fintype.card F) [Elab.step] [0.011479] expected type: ZMod p, term χ₄ (Fintype.card F) * Fintype.card F [Elab.step] [0.011471] expected type: ZMod p, term binop% HMul.hMul✝ (χ₄ (Fintype.card F)) (Fintype.card F) info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.command] [0.019295] /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not take the value `-1` on `χ₄#F * #F`. -/ theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] (hp : p ≠ 2) : IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 := by classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.async] [0.062132] elaborating proof of FiniteField.isSquare_odd_prime_iff [Elab.definition.value] [0.060946] FiniteField.isSquare_odd_prime_iff [Elab.step] [0.060273] classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.060268] classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.060263] classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.060055] by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.060044] by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.055777] · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] [Elab.step] [0.055767] rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] [Elab.step] [0.055761] rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] simp only [IsSquare.zero, Ne, true_iff, map_mul] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] [Elab.step] [0.013550] simp only [IsSquare.zero, Ne, true_iff, map_mul] [Elab.step] [0.010623] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) [Elab.step] [0.014198] conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] [Elab.step] [0.013464] enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] [Elab.step] [0.013460] enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] [Elab.step] [0.013234] rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] [Elab.step] [0.013208] rewrite [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] Build completed successfully (2828 jobs). ``` ### Trace profiling of `FiniteField.isSquare_odd_prime_iff` after PR 30939 ```diff diff --git a/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean b/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean index e3281cd154..1f73e5c70f 100644 --- a/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean +++ b/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean @@ -94,6 +94,7 @@ theorem quadraticChar_odd_prime [DecidableEq F] (hF : ringChar F ≠ 2) {p : ℕ (ne_of_eq_of_ne (ringChar_zmod_n p) hp₂.symm) rwa [card p] at h +set_option trace.profiler true in /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not take the value `-1` on `χ₄#F * #F`. -/ theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] @@ -102,11 +103,8 @@ theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fa classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] - simp only [IsSquare.zero, Ne, true_iff, map_mul] - obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F) - have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm - conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar] - simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff] + obtain ⟨⟩ := FiniteField.card F (ringChar F) + simp [*] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp ``` ``` ℹ [2828/2828] Built Mathlib.NumberTheory.LegendreSymbol.QuadraticChar.GaussSum (1.7s) info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.command] [0.018569] /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not take the value `-1` on `χ₄#F * #F`. -/ theorem isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] (hp : p ≠ 2) : IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 := by classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.definition.header] [0.018106] FiniteField.isSquare_odd_prime_iff [Elab.step] [0.016733] expected type: Prop, term IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 [Elab.step] [0.016726] expected type: Prop, term Iff✝ (IsSquare (p : F)) (quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1) [Elab.step] [0.014053] expected type: Prop, term quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 [Elab.step] [0.014046] expected type: Prop, term binrel% Ne✝ (quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F)) (-1) [Elab.step] [0.013685] expected type: , term quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) [Elab.step] [0.010420] expected type: ZMod p, term (χ₄ (Fintype.card F) * Fintype.card F) [Elab.step] [0.010415] expected type: ZMod p, term χ₄ (Fintype.card F) * Fintype.card F [Elab.step] [0.010409] expected type: ZMod p, term binop% HMul.hMul✝ (χ₄ (Fintype.card F)) (Fintype.card F) info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.command] [0.018685] /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not take the value `-1` on `χ₄#F * #F`. -/ theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] (hp : p ≠ 2) : IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 := by classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.async] [0.139820] elaborating proof of FiniteField.isSquare_odd_prime_iff [Elab.definition.value] [0.138910] FiniteField.isSquare_odd_prime_iff [Elab.step] [0.138469] classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.138464] classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.138459] classical by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.138002] by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.137991] by_cases hFp : ringChar F = p · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] · rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp] exact hFp [Elab.step] [0.133856] · rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] [Elab.step] [0.133848] rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] [Elab.step] [0.133844] rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar] obtain ⟨⟩ := FiniteField.card F (ringChar F) simp [*] [Elab.step] [0.011009] obtain ⟨⟩ := FiniteField.card F (ringChar F) [Elab.step] [0.113860] simp [*] [Meta.synthInstance] [0.013335] ✅️ ExistsAddOfLE F [Meta.synthInstance] [0.037076] ❌️ PosMulMono F Build completed successfully (2828 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-number-theory 2/5 Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean 1 1 ['github-actions'] nobody
1-54702
1 day ago
2-53995
2 days ago
2-54046
2 days
30861 euprunin
author:euprunin
chore(Algebra/Star): golf entire `coe_range` using `grind` ---
Show trace profiling of coe_range: <10 ms before, <10 ms after 🎉 ### Trace profiling of `coe_range` before PR 30861 ```diff diff --git a/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean b/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean index 9b97bc24d4..30f849fa1e 100644 --- a/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean +++ b/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean @@ -449,6 +449,7 @@ theorem mem_range_self (φ : F) (x : A) : φ x ∈ (NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) := (NonUnitalAlgHom.mem_range φ).2 ⟨x, rfl⟩ +set_option trace.profiler true in @[simp, norm_cast] theorem coe_range (φ : F) : ((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) = Set.range (φ : A → B) := ``` ``` ℹ [1015/1015] Built Mathlib.Algebra.Star.NonUnitalSubalgebra (8.8s) info: Mathlib/Algebra/Star/NonUnitalSubalgebra.lean:453:0: [Elab.command] [0.015086] @[simp, norm_cast] theorem coe_range (φ : F) : ((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) = Set.range (φ : A → B) := by ext; rw [SetLike.mem_coe, mem_range]; rfl Build completed successfully (1015 jobs). ``` ### Trace profiling of `coe_range` after PR 30861 ```diff diff --git a/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean b/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean index 9b97bc24d4..4bc82ae727 100644 --- a/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean +++ b/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean @@ -449,10 +449,12 @@ theorem mem_range_self (φ : F) (x : A) : φ x ∈ (NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) := (NonUnitalAlgHom.mem_range φ).2 ⟨x, rfl⟩ +set_option trace.profiler true in @[simp, norm_cast] theorem coe_range (φ : F) : - ((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) = Set.range (φ : A → B) := - by ext; rw [SetLike.mem_coe, mem_range]; rfl + ((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) = + Set.range (φ : A → B) := by + grind theorem range_comp (f : A →⋆ₙₐ[R] B) (g : B →⋆ₙₐ[R] C) : NonUnitalStarAlgHom.range (g.comp f) = (NonUnitalStarAlgHom.range f).map g := ``` ``` ℹ [1015/1015] Built Mathlib.Algebra.Star.NonUnitalSubalgebra (8.9s) info: Mathlib/Algebra/Star/NonUnitalSubalgebra.lean:453:0: [Elab.command] [0.017641] @[simp, norm_cast] theorem coe_range (φ : F) : ((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) = Set.range (φ : A → B) := by grind Build completed successfully (1015 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-algebra
label:t-algebra$
3/2 Mathlib/Algebra/Star/NonUnitalSubalgebra.lean 1 1 ['github-actions'] nobody
1-54580
1 day ago
4-57293
4 days ago
4-57344
4 days
29610 llllvvuu
author:llllvvuu
feat(LinearAlgebra): define LinearMap.Eigenbasis Some theorems are left TODO for follow-up work. The definition is from @eric-wieser ([#Is there code for X? > diagonalizable linear maps @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/diagonalizable.20linear.20maps/near/539163222)). Co-authored-by: Aristotle Harmonic --- - [x] depends on: #29420 (golfs some `[Nontrivial R]` assumptions) - [ ] depends on: #29791 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
458/5 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/LinearAlgebra/Eigenbasis.lean,Mathlib/LinearAlgebra/FreeModule/PID.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean 6 29 ['github-actions', 'kckennylau', 'llllvvuu', 'mathlib4-dependent-issues-bot'] nobody
1-43889
1 day ago
1-43891
1 day ago
4-66196
4 days
30984 erdOne
author:erdOne
feat(RingTheory): lemmas about scaleRoots --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 120/5 Mathlib/RingTheory/Polynomial/IntegralNormalization.lean,Mathlib/RingTheory/Polynomial/ScaleRoots.lean 2 2 ['erdOne', 'github-actions'] nobody
1-40578
1 day ago
1-43278
1 day ago
1-43383
1 day
24614 JovanGerb
author:JovanGerb
chore: rename field `inf` to `min` in `Lattice` As suggested by @eric-wieser, this PR renames the `sup` and `inf` fields in `Lattice` to `max` and `min`. This means that we now can extend `Lattice` and `LinearOrder` simultaneously without ending up with duplicate fields. This should be implemented in a future PR for existing classes like `CompleteLinearOrder`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60sup.60.2F.60inf.60.20or.20.60max.60.2F.60min.60.20for.20set.20interval.20lemmas.3F) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 181/187 Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/Group/Subgroup/Lattice.lean,Mathlib/Algebra/Group/Submonoid/Basic.lean,Mathlib/Algebra/Group/Subsemigroup/Basic.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/Algebra/Order/Ring/Idempotent.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Tropical/Lattice.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean,Mathlib/Analysis/Normed/Group/Seminorm.lean,Mathlib/Analysis/NormedSpace/ENormedSpace.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean,Mathlib/CategoryTheory/Sites/Coverage.lean,Mathlib/CategoryTheory/Sites/Grothendieck.lean,Mathlib/CategoryTheory/Sites/Pretopology.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/CategoryTheory/Subpresheaf/Basic.lean,Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/Finset/Lattice/Basic.lean,Mathlib/Data/Multiset/UnionInter.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/PEquiv.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/Semiquot.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/Data/Sum/Lattice.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/ModelTheory/Substructures.lean,Mathlib/Order/BooleanSubalgebra.lean,Mathlib/Order/Booleanisation.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/Concept.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Copy.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Germ/Basic.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Hom/Order.lean,Mathlib/Order/Ideal.lean,Mathlib/Order/Interval/Basic.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/Partition/Finpartition.lean,Mathlib/Order/Preorder/Finsupp.lean,Mathlib/Order/PropInstances.lean,Mathlib/Order/Sublattice.lean,Mathlib/Order/WithBot.lean,Mathlib/Probability/Process/Filtration.lean,Mathlib/RingTheory/Congruence/Basic.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Finiteness/Small.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/Topology/Algebra/Group/GroupTopology.lean,Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean,Mathlib/Topology/Category/TopCat/OpenNhds.lean,Mathlib/Topology/LocallyFinsupp.lean,Mathlib/Topology/MetricSpace/BundledFun.lean,Mathlib/Topology/UniformSpace/Basic.lean 84 14 ['JovanGerb', 'bryangingechen', 'eric-wieser', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'leanprover-community-mathlib4-bot'] Vierkantor
assignee:Vierkantor
1-32397
1 day ago
8-51364
8 days ago
10-50605
10 days
30293 vlad902
author:vlad902
feat(SimpleGraph): there exists a maximal path/trail in a graph with finite edges Inspired by [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Help.20me.20learn.20good.20style.3A.20IsTree/near/543395218) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 27/1 Mathlib/Combinatorics/SimpleGraph/Paths.lean 1 2 ['github-actions', 'vlad902'] awainverse
assignee:awainverse
1-32395
1 day ago
22-1569
22 days ago
22-1602
22 days
30678 YaelDillies
author:YaelDillies
refactor(Algebra/Quaternion): intermediate `Module` instance This `Module` instance allows me to not ungeneralise the `NoZeroSMulDivisors R ℍ[R,c₁,c₂,c₃]` in #30563. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
45/29 Mathlib/Algebra/Quaternion.lean 1 20 ['YaelDillies', 'eric-wieser', 'github-actions'] joelriou
assignee:joelriou
1-32393
1 day ago
9-3320
9 days ago
9-28060
9 days
30694 themathqueen
author:themathqueen
chore(Analysis/CStarAlgebra/CFC/Order): relate section to strict positivity --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 23/20 Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean 2 2 ['github-actions', 'grunweg'] sgouezel
assignee:sgouezel
1-32390
1 day ago
9-52488
9 days ago
9-52530
9 days
30714 harahu
author:harahu
doc(Analysis): fix typos Found with help from Codex, curated by me. I've tried to limit the PR to changes that are easy to verify. Should you find it difficult to review any particular part of this PR, know that I have nothing against trimming this PR down in favor of smaller free-standing PRs for the difficult-to-review parts. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 15/15 Mathlib/Analysis/Calculus/Gradient/Basic.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/Polynomial/Basic.lean,Mathlib/Analysis/Real/OfDigits.lean,Mathlib/Analysis/SpecialFunctions/Stirling.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean 7 1 ['github-actions'] grunweg
assignee:grunweg
1-32387
1 day ago
8-84478
8 days ago
9-1
9 days
30717 kim-em
author:kim-em
chore: cleanup rwMerge tactic analysis linter Previously this would find a sequence of `rw`, and see if they could all be merged into a single one. Now it just tries to merge an adjacent pair of `rw`s. (In the event that 3 or more rewrites could be merged, this will now suggest a more conservative merge, but presumably subsequently suggest the further merges.) Also removes a spurious `set_option grind.warning false`. t-meta 8/5 Mathlib/Tactic/TacticAnalysis/Declarations.lean 1 1 ['github-actions'] thorimur
assignee:thorimur
1-32386
1 day ago
8-84609
8 days ago
8-84651
8 days
30990 kckennylau
author:kckennylau
chore: move SModEq to a new folder Split off from #30989. I only move it to a new folder and do nothing else. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 160/156 Mathlib.lean,Mathlib/LinearAlgebra/SModEq.lean,Mathlib/LinearAlgebra/SModEq/Basic.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/PowerBasis.lean 5 1 ['github-actions'] nobody
1-32098
1 day ago
1-32354
1 day ago
1-32331
1 day
30988 erdOne
author:erdOne
feat(AlgebraicGeometry): descending affine cover of an inverse limit --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-algebraic-geometry 356/32 Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean,Mathlib/AlgebraicGeometry/Pullbacks.lean,Mathlib/AlgebraicGeometry/QuasiAffine.lean,Mathlib/Topology/LocalAtTarget.lean 5 1 ['github-actions'] nobody
1-31432
1 day ago
1-31432
1 day ago
1-35102
1 day
30983 erdOne
author:erdOne
feat(RingTheory): results on resultant Also changed the definition of `sylvesterMatrix` because the old definition has the wrong sign. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 303/33 Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Data/Multiset/Bind.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean,Mathlib/RingTheory/Polynomial/Resultant/Basic.lean,Mathlib/RingTheory/WittVector/MulCoeff.lean 5 5 ['erdOne', 'github-actions', 'kckennylau'] nobody
1-31343
1 day ago
1-46446
1 day ago
1-46423
1 day
30960 qawbecrdtey
author:qawbecrdtey
chore(Combinatorics/SimpleGraph/Walk): golf --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 74/150 Mathlib/Combinatorics/SimpleGraph/Walk.lean 1 36 ['SnirBroshi', 'adomani', 'github-actions', 'grunweg', 'leanprover-bot', 'qawbecrdtey'] nobody
1-31208
1 day ago
1-34687
1 day ago
1-75995
1 day
29960 yonggyuchoimath
author:yonggyuchoimath
feat(Algebra/Category/Ring): equalizers of pushout maps of tensor product inclusions This PR defines a ring map `S →ₗ[R] S ⊗[R] S : s ↦ (s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)` for an `R`-algebra `S`, and show that its kernel is exactly (the image of) `R` if `S` is faithfully flat over `R`. Changes: * `TensorProduct.AlgebraTensorModule.distribBaseChange`: Origianlly takes `M` and `N`, where `M` is an `R`-module with an additional instance `IsScalarTower R A M`. This is unnecessary, so I changed the `M` and `N` into `N` and `Q`, now both of which are merely modules over `R`. Main results : * Add compatibility of `Algebra.TensorProduct.includeLeft` (or `Algebra.TensorProduct.includeRight`) with `TensorProduct.AlgebraTensorModule.distribBaseChange` and `LinearMap.lTensor` * Define `Algebra.TensorProduct.includeLeftSubRight`, which is the `R`-linear map `S →ₗ[R] S ⊗[R] S` sending `s : S` to `(s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)`. * `Algebra.TensorProduct.exactIncludeLeftSubRight_of_faithfullyFlat`: the pair `algebraMap : R → S` and `includeLeftSubRight R S : S → S ⊗[R] S` is exact if `S` is a faithfully flat `R`-algebra. --- - [x] depends on: #30806 new-contributor 223/1 Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/TensorProduct/IncludeLeftSubRight.lean,Mathlib/RingTheory/TensorProduct/Maps.lean 4 7 ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'yonggyuchoimath'] TwoFX
assignee:TwoFX
1-21305
1 day ago
1-24576
1 day ago
29-6555
29 days
28973 YaelDillies
author:YaelDillies
feat(TensorProduct): `lTensor` as an `AlgHom` and other lemmas From Toric Co-authored-by: Michał Mrugała --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory toric 20/6 Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/Maps.lean 2 9 ['YaelDillies', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen'] mattrobball
assignee:mattrobball
1-8991
1 day ago
1-9014
1 day ago
62-77959
62 days
29539 YaelDillies
author:YaelDillies
feat: monoid algebras are invariant under base change From Toric Co-authored-by: Michał Mrugała --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory toric large-import 112/6 Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean 3 6 ['YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] mattrobball
assignee:mattrobball
1-8418
1 day ago
1-8440
1 day ago
47-46386
47 days
28475 astrainfinita
author:astrainfinita
chore(Analysis/SpecificLimits/Basic): generalize lemmas --- - [ ] depends on: #28472 - [ ] depends on: #28474 - [ ] depends on: #30671 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 98/82 Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Analysis/Real/Hyperreal.lean,Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean,Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Analysis/SpecificLimits/RCLike.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/Dynamics/Ergodic/AddCircle.lean,Mathlib/NumberTheory/Padics/Hensel.lean 12 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
1-7824
1 day ago
5-41082
5 days ago
5-43162
5 days
29186 winstonyin
author:winstonyin
feat: IsIntegralCurve for solutions to ODEs I define `IsIntegralCurve` etc. for solutions to ODEs on vector spaces. The translation and scaling lemmas are also included. This parallels `IsMIntegralCurve` etc. for manifolds. Moved from #26534. - [x] depends on: #26563 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-dynamics t-analysis t-differential-geometry 298/100 Mathlib.lean,Mathlib/Analysis/ODE/Basic.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean 5 2 ['github-actions', 'mathlib4-dependent-issues-bot'] grunweg and sgouezel
assignee:grunweg assignee:sgouezel
1-6471
1 day ago
58-52233
1 month ago
58-52369
58 days
28602 gmcninch-tufts
author:gmcninch-tufts
feat(Algebra/Polynomial/Module): prove equivalence of a certain tensor product with PolynomialModule For a commutative ring `R` and an `R`-module `M`, construct an equivalence between the `R[X]`-modules `R[X] ⊗[R] M` and `PolynomialModule R M`. This equivalence enables application of some base-change results to `PolynomialModule R M` . --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
50/0 Mathlib.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Polynomial/Module/TensorProduct.lean 3 17 ['github-actions', 'gmcninch-tufts', 'kckennylau'] jcommelin
assignee:jcommelin
1-4327
1 day ago
71-67869
2 months ago
71-67905
71 days
30975 mariainesdff
author:mariainesdff
feat(Data/Finsupp/Defs): add Finsupp.restrict Co-authored by: @AntoineChambert-Loir --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 49/0 Mathlib/Data/Finsupp/Defs.lean 1 n/a ['github-actions'] nobody
1-4032
1 day ago
unknown
unknown
30994 kim-em
author:kim-em
feat: `fix_deprecations.py` script CI 132/0 scripts/README.md,scripts/fix_deprecations.py 2 1 ['github-actions'] nobody
1-2458
1 day ago
1-2461
1 day ago
1-2506
1 day
24669 qawbecrdtey
author:qawbecrdtey
feat(Analysis/Normed/Operator/LinearIsometry): added definition `LinearIsometryEquiv.prodComm` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) This commit defines a `LinearIsometryEquiv`, and states some trivial theorems about it. ```lean def prodComm [Module R E₂] : E × E₂ ≃ₗᵢ[R] E₂ × E ``` t-analysis 8/1 Mathlib/Analysis/Normed/Operator/LinearIsometry.lean 1 12 ['Ruben-VandeVelde', 'eric-wieser', 'faenuccio', 'github-actions', 'j-loreaux', 'jcommelin', 'qawbecrdtey'] faenuccio
assignee:faenuccio
1-1884
1 day ago
1-1884
1 day ago
33-85424
33 days
30697 themathqueen
author:themathqueen
chore(Algebra/Star/Unitary): rename `unitary.spectrum.unitary_conjugate` `unitary.spectrum.unitary_conjugate` and `unitary.spectrum.unitary_conjugate'` should be in the `_root_` namespace since they already have `unitary` in their name. We also rename them to `spectrum.unitary_star_conjugate_left` and `spectrum.unitary_star_conjugate_right` to match the renaming convention in #30692. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
14/9 Mathlib/Algebra/Star/Unitary.lean,Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean 2 7 ['github-actions', 'riccardobrasca', 'themathqueen'] riccardobrasca
assignee:riccardobrasca
1-349
1 day ago
1-349
1 day ago
9-50241
9 days
30949 jessealama
author:jessealama
feat(LinearAlgebra/AffineSpace): affine maps/equivs determined by values on spanning sets This PR adds two extensionality lemmas showing that affine maps (and automorphisms) are uniquely determined by their values on any set that affinely spans the entire space: - `AffineMap.ext_of_span_eq_top`: If two affine maps agree on a spanning set, they are equal - `AffineEquiv.ext_of_span_eq_top`: Specialization to affine automorphisms These lemmas are useful for proving uniqueness of affine maps without requiring affine independence. This is extracted from #30854 to make a smaller, more focused PR. cc @eric-wieser @jsm28 (recent reviewers of `Combination.lean`) t-algebra
label:t-algebra$
42/0 Mathlib/LinearAlgebra/AffineSpace/Combination.lean 1 3 ['github-actions', 'jessealama', 'jsm28'] nobody
0-86237
23 hours ago
2-45842
2 days ago
2-45891
2 days
30997 kex-y
author:kex-y
feat(Probability): Add predictable processes --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 241/0 Mathlib.lean,Mathlib/Probability/Martingale/Basic.lean,Mathlib/Probability/Process/Predictable.lean 3 1 ['github-actions'] nobody
0-85153
23 hours ago
0-85218
23 hours ago
0-85203
23 hours
26136 vasnesterov
author:vasnesterov
feat(Topology/Instances): Cantor set is homeomorphic to `ℕ → Bool` * Prove that `Real.ofDigits` is a continuous map from `ℕ → Fin b` to `ℝ`. * Prove that the Cantor set is homeomorphic to `ℕ → Bool`. --- - [x] depends on: #26096 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 89/1 Mathlib/Analysis/Real/OfDigits.lean,Mathlib/Topology/Instances/CantorSet.lean,scripts/noshake.json 3 8 ['alreadydone', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'vasnesterov'] nobody
0-84273
23 hours ago
0-84631
23 hours ago
0-84755
23 hours
30477 jsm28
author:jsm28
feat(Geometry/Euclidean/Angle/Bisector): oriented angle bisection and equal distance Add a lemma ```lean lemma dist_orthogonalProjection_eq_iff_oangle_eq {p p' : P} {s₁ s₂ : AffineSubspace ℝ P} [s₁.direction.HasOrthogonalProjection] [s₂.direction.HasOrthogonalProjection] (hp' : p' ∈ s₁ ⊓ s₂) (hne : haveI : Nonempty s₁ := ⟨p', hp'.1⟩; haveI : Nonempty s₂ := ⟨p', hp'.2⟩; (orthogonalProjection s₁ p : P) ≠ orthogonalProjection s₂ p) (hp₁ : haveI : Nonempty s₁ := ⟨p', hp'.1⟩; orthogonalProjection s₁ p ≠ p') (hp₂ : haveI : Nonempty s₂ := ⟨p', hp'.2⟩; orthogonalProjection s₂ p ≠ p') : haveI : Nonempty s₁ := ⟨p', hp'.1⟩ haveI : Nonempty s₂ := ⟨p', hp'.2⟩ dist p (orthogonalProjection s₁ p) = dist p (orthogonalProjection s₂ p) ↔ ∡ (orthogonalProjection s₁ p : P) p' p = ∡ p p' (orthogonalProjection s₂ p) := ``` that is an oriented angle analogue of the existing `dist_orthogonalProjection_eq_iff_angle_eq`. Because the minimal nondegeneracy conditions required for the two directions of this lemma are different (whereas the unoriented version doesn't need any nondegeneracy conditions), those two directions are added as separate lemmas, each with minimal nondegeneracy conditions, from which the `iff` version is then deduced. --- - [ ] depends on: #30474 - [ ] depends on: #30476 - [ ] depends on: #30698 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-euclidean-geometry 106/0 Mathlib/Geometry/Euclidean/Angle/Bisector.lean 1 3 ['github-actions', 'jsm28', 'mathlib4-dependent-issues-bot'] nobody
0-83515
23 hours ago
1-11893
1 day ago
1-14220
1 day
30995 kckennylau
author:kckennylau
feat(RingTheory): adic limit For an `I`-adically complete `M` we define `limit : AdicCompletion I M ≃ₗ[R] M`. This should make #30989 and subsequent PR's smoother. It is intended to be used together with [AdicCompletion.mk](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/AdicCompletion/Basic.html#AdicCompletion.mk) : `AdicCompletion.AdicCauchySequence I M →ₗ[R] AdicCompletion I M`. We also introduce `adicExpansion (ϖ : R) (hϖ : ϖ ∈ I) : (ℕ → M) →ₗ[R] AdicCauchySequence I M`, which sends a sequence `a : ℕ → M` to the Cauchy sequence `∑ ϖ ^ i • a i`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 84/0 Mathlib.lean,Mathlib/RingTheory/AdicCompletion/Limit.lean 2 3 ['github-actions', 'jjdishere', 'kckennylau'] nobody
0-82584
22 hours ago
1-1912
1 day ago
1-1950
1 day
25856 MichaelStollBayreuth
author:MichaelStollBayreuth
perf(Data.Real.Sqrt): make Real.sqrt irreducible We try to see what happens if we make Real.sqrt irreducible. There are cases where this makes unification very significantly faster, compare [#mathlib4 > Coercion triggers timeout @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Coercion.20triggers.20timeout/near/517177117). (Migrated manually from #24752) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) migrated-from-branch t-data 7/5 Mathlib/Data/Real/Sqrt.lean 1 6 ['MichaelStollBayreuth', 'github-actions', 'j-loreaux', 'leanprover-bot'] ericrbg
assignee:ericrbg
0-79605
22 hours ago
58-51248
1 month ago
127-77838
127 days
30059 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Mathlib/Algebra/QuadraticAlgebra): norm, star structure on quadratic alg. Define the norm and the star structure on a quadratic algebra. Application to the units, the zero divisors and the field structure (when there is one). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
382/1 Mathlib.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/QuadraticAlgebra.lean,Mathlib/Algebra/QuadraticAlgebra/Basic.lean 4 79 ['AntoineChambert-Loir', 'eric-wieser', 'github-actions', 'j-loreaux', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
0-78888
21 hours ago
7-58965
7 days ago
30-12247
30 days
30993 euprunin
author:euprunin
chore(Analysis/Convex): golf `sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair` using `grind` ---
Show trace profiling of sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair: 368 ms before, 510 ms after ### Trace profiling of `sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair` before PR 30993 ```diff diff --git a/Mathlib/Analysis/Convex/Between.lean b/Mathlib/Analysis/Convex/Between.lean index c046576ad8..63c6b96cae 100644 --- a/Mathlib/Analysis/Convex/Between.lean +++ b/Mathlib/Analysis/Convex/Between.lean @@ -740,6 +740,7 @@ variable [Ring R] [LinearOrder R] [IsStrictOrderedRing R] [AddCommGroup V] [Module R V] [AddTorsor V P] variable {R} +set_option trace.profiler true in /-- Suppose lines from two vertices of a triangle to interior points of the opposite side meet at `p`. Then `p` lies in the interior of the first (and by symmetry the other) segment from a vertex to the point on the opposite side. -/ ``` ``` ℹ [1510/1510] Built Mathlib.Analysis.Convex.Between (3.4s) info: Mathlib/Analysis/Convex/Between.lean:744:0: [Elab.command] [0.039396] /-- Suppose lines from two vertices of a triangle to interior points of the opposite side meet at `p`. Then `p` lies in the interior of the first (and by symmetry the other) segment from a vertex to the point on the opposite side. -/ theorem sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [NoZeroSMulDivisors R V] {t : Affine.Triangle R P} {i₁ i₂ i₃ : Fin 3} (h₁₂ : i₁ ≠ i₂) {p₁ p₂ p : P} (h₁ : Sbtw R (t.points i₂) p₁ (t.points i₃)) (h₂ : Sbtw R (t.points i₁) p₂ (t.points i₃)) (h₁' : p ∈ line[R, t.points i₁, p₁]) (h₂' : p ∈ line[R, t.points i₂, p₂]) : Sbtw R (t.points i₁) p p₁ := by have h₁₃ : i₁ ≠ i₃ := by rintro rfl simp at h₂ have h₂₃ : i₂ ≠ i₃ := by rintro rfl simp at h₁ have h3 : ∀ i : Fin 3, i = i₁ ∨ i = i₂ ∨ i = i₃ := by omega have hu : (Finset.univ : Finset (Fin 3)) = { i₁, i₂, i₃ } := by clear h₁ h₂ h₁' h₂' decide +revert have hp : p ∈ affineSpan R (Set.range t.points) := by have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) := by refine affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) ?_ have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) := by refine affineSpan_mono R ?_ simp [Set.insert_subset_iff] rw [AffineSubspace.le_def'] at hle exact hle _ h₁.wbtw.mem_affineSpan rw [AffineSubspace.le_def'] at hle exact hle _ h₁' have h₁i := h₁.mem_image_Ioo have h₂i := h₂.mem_image_Ioo rw [Set.mem_image] at h₁i h₂i rcases h₁i with ⟨r₁, ⟨hr₁0, hr₁1⟩, rfl⟩ rcases h₂i with ⟨r₂, ⟨hr₂0, hr₂1⟩, rfl⟩ rcases eq_affineCombination_of_mem_affineSpan_of_fintype hp with ⟨w, hw, rfl⟩ have h₁s := sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.independent hw (Finset.mem_univ _) (Finset.mem_univ _) (Finset.mem_univ _) h₁₂ h₁₃ h₂₃ hr₁0 hr₁1 h₁' have h₂s := sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.independent hw (Finset.mem_univ _) (Finset.mem_univ _) (Finset.mem_univ _) h₁₂.symm h₂₃ h₁₃ hr₂0 hr₂1 h₂' rw [← Finset.univ.affineCombination_affineCombinationSingleWeights R t.points (Finset.mem_univ i₁), ← Finset.univ.affineCombination_affineCombinationLineMapWeights t.points (Finset.mem_univ _) (Finset.mem_univ _)] at h₁' ⊢ refine Sbtw.affineCombination_of_mem_affineSpan_pair t.independent hw (Finset.univ.sum_affineCombinationSingleWeights R (Finset.mem_univ _)) (Finset.univ.sum_affineCombinationLineMapWeights (Finset.mem_univ _) (Finset.mem_univ _) _) h₁' (Finset.mem_univ i₁) ?_ rw [Finset.affineCombinationSingleWeights_apply_self, Finset.affineCombinationLineMapWeights_apply_of_ne h₁₂ h₁₃, sbtw_one_zero_iff] have hs : ∀ i : Fin 3, SignType.sign (w i) = SignType.sign (w i₃) := by intro i rcases h3 i with (rfl | rfl | rfl) · exact h₂s · exact h₁s · rfl have hss : SignType.sign (∑ i, w i) = 1 := by simp [hw] have hs' := sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i _ => hs i rw [hs'] at hss simp_rw [hss, sign_eq_one_iff] at hs refine ⟨hs i₁, ?_⟩ rw [hu] at hw rw [Finset.sum_insert, Finset.sum_insert, Finset.sum_singleton] at hw · by_contra hle rw [not_lt] at hle exact (hle.trans_lt (lt_add_of_pos_right _ (Left.add_pos (hs i₂) (hs i₃)))).ne' hw · simpa using h₂₃ · simpa [not_or] using ⟨h₁₂, h₁₃⟩ [Elab.definition.header] [0.029190] sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [Elab.step] [0.013458] expected type: Prop, term NoZeroSMulDivisors R V info: Mathlib/Analysis/Convex/Between.lean:744:0: [Elab.async] [0.375398] elaborating proof of sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [Elab.definition.value] [0.368189] sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [Elab.step] [0.352778] have h₁₃ : i₁ ≠ i₃ := by rintro rfl simp at h₂ have h₂₃ : i₂ ≠ i₃ := by rintro rfl simp at h₁ have h3 : ∀ i : Fin 3, i = i₁ ∨ i = i₂ ∨ i = i₃ := by omega have hu : (Finset.univ : Finset (Fin 3)) = { i₁, i₂, i₃ } := by clear h₁ h₂ h₁' h₂' decide +revert have hp : p ∈ affineSpan R (Set.range t.points) := by have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) := by refine affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) ?_ have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) := by refine affineSpan_mono R ?_ [… 1038 lines omitted …] _a}) (Eq.symm (Finset.affineCombination_affineCombinationLineMapWeights Finset.univ t.points (Finset.mem_univ i₂) (Finset.mem_univ i₃) r₁))) (Eq.mp (congrArg (fun _a ↦ (Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (insert _a ⋯)) (Eq.symm (Finset.affineCombination_affineCombinationSingleWeights R Finset.univ t.points (Finset.mem_univ i₁)))) h₁')) h₂' h₁s) fun h ↦ Eq.ndrec (motive := fun {i₃} ↦ i₁ ≠ i₃ → i₂ ≠ i₃ → (∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃) → Finset.univ = {i₁, i₂, i₃} → Sbtw R (t.points i₂) ⋯ (t.points i₃) → ⋯ → ⋯) (fun h₁₃ h₂₃ h3 hu h₁ h₂ h₁' h₂' h₁s h₂s ↦ Eq.refl (SignType.sign (w i))) h h₁₃ h₂₃ h3 hu h₁ h₂ (Eq.mp (congrArg (fun _a ↦ (Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R {(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁), _a}) (Eq.symm (Finset.affineCombination_affineCombinationLineMapWeights Finset.univ t.points (Finset.mem_univ i₂) (Finset.mem_univ i₃) r₁))) (Eq.mp (congrArg (fun _a ↦ (Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (insert _a ⋯)) (Eq.symm (Finset.affineCombination_affineCombinationSingleWeights R Finset.univ t.points (Finset.mem_univ i₁)))) h₁')) h₂' h₁s h₂s; have hss := of_eq_true (Eq.trans (congrArg (fun x ↦ x = 1) (Eq.trans (congrArg (⇑SignType.sign) hw) (sign_pos (of_eq_true zero_lt_one._simp_1)))) (eq_self 1)); have hs' := sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i x ↦ hs i; ⟨Eq.mp (forall_congr fun i ↦ sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._simp_1_3) (Eq.mp (forall_congr fun i ↦ congrArg (Eq (SignType.sign (w i))) (Eq.mp (congrArg (fun _a ↦ _a = 1) hs') hss)) hs) i₁, Decidable.byContradiction fun hle ↦ LT.lt.ne' (LE.le.trans_lt (Eq.mp (congrArg (fun _a ↦ _a) (propext not_lt)) hle) (lt_add_of_pos_right (w i₁) (Left.add_pos (Eq.mp (forall_congr fun i ↦ sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._simp_1_3) (Eq.mp (forall_congr fun i ↦ ⋯) hs) i₂) (Eq.mp (forall_congr fun i ↦ sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._simp_1_3) (Eq.mp (forall_congr fun i ↦ ⋯) hs) i₃)))) (Eq.mp (congrArg (fun _a ↦ w i₁ + (w i₂ + _a) = 1) (Finset.sum_singleton w i₃)) (Eq.mp (congrArg (fun _a ↦ w i₁ + _a = 1) (Finset.sum_insert (Eq.mpr (_root_.id (congrArg Not Finset.mem_singleton._simp_1)) h₂₃))) (Eq.mp (congrArg (fun _a ↦ _a = 1) (Finset.sum_insert (Eq.mpr (_root_.id ⋯) ⟨h₁₂, h₁₃⟩))) (Eq.mp (congrArg (fun _a ↦ ⋯ = 1) hu) hw))))⟩))))))) (Eq.symm right) hp h₁' h₂') right h₂ h₂') right h₁ h₁' info: Mathlib/Analysis/Convex/Between.lean:758:56: [Elab.async] [0.035119] Lean.addDecl [Kernel] [0.035088] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._proof_1_1] info: Mathlib/Analysis/Convex/Between.lean:747:8: [Elab.async] [0.020899] Lean.addDecl [Kernel] [0.020849] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair] Build completed successfully (1510 jobs). ``` ### Trace profiling of `sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair` after PR 30993 ```diff diff --git a/Mathlib/Analysis/Convex/Between.lean b/Mathlib/Analysis/Convex/Between.lean index c046576ad8..eed42b41c6 100644 --- a/Mathlib/Analysis/Convex/Between.lean +++ b/Mathlib/Analysis/Convex/Between.lean @@ -740,6 +740,7 @@ variable [Ring R] [LinearOrder R] [IsStrictOrderedRing R] [AddCommGroup V] [Module R V] [AddTorsor V P] variable {R} +set_option trace.profiler true in /-- Suppose lines from two vertices of a triangle to interior points of the opposite side meet at `p`. Then `p` lies in the interior of the first (and by symmetry the other) segment from a vertex to the point on the opposite side. -/ @@ -801,14 +802,7 @@ theorem sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [NoZeroSMulDivisors R V] have hs' := sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i _ => hs i rw [hs'] at hss simp_rw [hss, sign_eq_one_iff] at hs - refine ⟨hs i₁, ?_⟩ - rw [hu] at hw - rw [Finset.sum_insert, Finset.sum_insert, Finset.sum_singleton] at hw - · by_contra hle - rw [not_lt] at hle - exact (hle.trans_lt (lt_add_of_pos_right _ (Left.add_pos (hs i₂) (hs i₃)))).ne' hw - · simpa using h₂₃ - · simpa [not_or] using ⟨h₁₂, h₁₃⟩ + grind end LinearOrderedRing ``` ``` ℹ [1510/1510] Built Mathlib.Analysis.Convex.Between (3.3s) info: Mathlib/Analysis/Convex/Between.lean:744:0: [Elab.command] [0.036769] /-- Suppose lines from two vertices of a triangle to interior points of the opposite side meet at `p`. Then `p` lies in the interior of the first (and by symmetry the other) segment from a vertex to the point on the opposite side. -/ theorem sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [NoZeroSMulDivisors R V] {t : Affine.Triangle R P} {i₁ i₂ i₃ : Fin 3} (h₁₂ : i₁ ≠ i₂) {p₁ p₂ p : P} (h₁ : Sbtw R (t.points i₂) p₁ (t.points i₃)) (h₂ : Sbtw R (t.points i₁) p₂ (t.points i₃)) (h₁' : p ∈ line[R, t.points i₁, p₁]) (h₂' : p ∈ line[R, t.points i₂, p₂]) : Sbtw R (t.points i₁) p p₁ := by have h₁₃ : i₁ ≠ i₃ := by rintro rfl simp at h₂ have h₂₃ : i₂ ≠ i₃ := by rintro rfl simp at h₁ have h3 : ∀ i : Fin 3, i = i₁ ∨ i = i₂ ∨ i = i₃ := by omega have hu : (Finset.univ : Finset (Fin 3)) = { i₁, i₂, i₃ } := by clear h₁ h₂ h₁' h₂' decide +revert have hp : p ∈ affineSpan R (Set.range t.points) := by have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) := by refine affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) ?_ have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) := by refine affineSpan_mono R ?_ simp [Set.insert_subset_iff] rw [AffineSubspace.le_def'] at hle exact hle _ h₁.wbtw.mem_affineSpan rw [AffineSubspace.le_def'] at hle exact hle _ h₁' have h₁i := h₁.mem_image_Ioo have h₂i := h₂.mem_image_Ioo rw [Set.mem_image] at h₁i h₂i rcases h₁i with ⟨r₁, ⟨hr₁0, hr₁1⟩, rfl⟩ rcases h₂i with ⟨r₂, ⟨hr₂0, hr₂1⟩, rfl⟩ rcases eq_affineCombination_of_mem_affineSpan_of_fintype hp with ⟨w, hw, rfl⟩ have h₁s := sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.independent hw (Finset.mem_univ _) (Finset.mem_univ _) (Finset.mem_univ _) h₁₂ h₁₃ h₂₃ hr₁0 hr₁1 h₁' have h₂s := sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.independent hw (Finset.mem_univ _) (Finset.mem_univ _) (Finset.mem_univ _) h₁₂.symm h₂₃ h₁₃ hr₂0 hr₂1 h₂' rw [← Finset.univ.affineCombination_affineCombinationSingleWeights R t.points (Finset.mem_univ i₁), ← Finset.univ.affineCombination_affineCombinationLineMapWeights t.points (Finset.mem_univ _) (Finset.mem_univ _)] at h₁' ⊢ refine Sbtw.affineCombination_of_mem_affineSpan_pair t.independent hw (Finset.univ.sum_affineCombinationSingleWeights R (Finset.mem_univ _)) (Finset.univ.sum_affineCombinationLineMapWeights (Finset.mem_univ _) (Finset.mem_univ _) _) h₁' (Finset.mem_univ i₁) ?_ rw [Finset.affineCombinationSingleWeights_apply_self, Finset.affineCombinationLineMapWeights_apply_of_ne h₁₂ h₁₃, sbtw_one_zero_iff] have hs : ∀ i : Fin 3, SignType.sign (w i) = SignType.sign (w i₃) := by intro i rcases h3 i with (rfl | rfl | rfl) · exact h₂s · exact h₁s · rfl have hss : SignType.sign (∑ i, w i) = 1 := by simp [hw] have hs' := sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i _ => hs i rw [hs'] at hss simp_rw [hss, sign_eq_one_iff] at hs grind [Elab.definition.header] [0.027384] sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [Elab.step] [0.013866] expected type: Prop, term NoZeroSMulDivisors R V info: Mathlib/Analysis/Convex/Between.lean:744:0: [Elab.async] [0.517542] elaborating proof of sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [Elab.definition.value] [0.510462] sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [Elab.step] [0.494049] have h₁₃ : i₁ ≠ i₃ := by rintro rfl simp at h₂ have h₂₃ : i₂ ≠ i₃ := by rintro rfl simp at h₁ have h3 : ∀ i : Fin 3, i = i₁ ∨ i = i₂ ∨ i = i₃ := by omega have hu : (Finset.univ : Finset (Fin 3)) = { i₁, i₂, i₃ } := by clear h₁ h₂ h₁' h₂' decide +revert have hp : p ∈ affineSpan R (Set.range t.points) := by have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) := by refine affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) ?_ have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) := by refine affineSpan_mono R ?_ simp [Set.insert_subset_iff] rw [AffineSubspace.le_def'] at hle exact hle _ h₁.wbtw.mem_affineSpan rw [AffineSubspace.le_def'] at hle exact hle _ h₁' have h₁i := h₁.mem_image_Ioo have h₂i := h₂.mem_image_Ioo [… 1050 lines omitted …] (Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R {_a, ⋯ r₁}) (Eq.symm (Finset.affineCombination_affineCombinationSingleWeights R Finset.univ t.points (Finset.mem_univ i₁)))) h₁')) h₂' h₂s) fun h ↦ Or.casesOn h (fun h ↦ Eq.ndrec (motive := fun {i₂} ↦ i₁ ≠ i₂ → i₂ ≠ i₃ → (∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃) → Finset.univ = {i₁, i₂, i₃} → Sbtw R (t.points i₂) ⋯ (t.points i₃) → ⋯ → ⋯) (fun h₁₂ h₂₃ h3 hu h₁ h₁' h₂' h₁s ↦ h₁s) h h₁₂ h₂₃ h3 hu h₁ (Eq.mp (congrArg (fun _a ↦ (Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R {(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁), _a}) (Eq.symm (Finset.affineCombination_affineCombinationLineMapWeights Finset.univ t.points (Finset.mem_univ i₂) (Finset.mem_univ i₃) r₁))) (Eq.mp (congrArg (fun _a ↦ (Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (insert _a ⋯)) (Eq.symm (Finset.affineCombination_affineCombinationSingleWeights R Finset.univ t.points (Finset.mem_univ i₁)))) h₁')) h₂' h₁s) fun h ↦ Eq.ndrec (motive := fun {i₃} ↦ i₁ ≠ i₃ → i₂ ≠ i₃ → (∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃) → Finset.univ = {i₁, i₂, i₃} → Sbtw R (t.points i₂) ⋯ (t.points i₃) → ⋯ → ⋯) (fun h₁₃ h₂₃ h3 hu h₁ h₂ h₁' h₂' h₁s h₂s ↦ Eq.refl (SignType.sign (w i))) h h₁₃ h₂₃ h3 hu h₁ h₂ (Eq.mp (congrArg (fun _a ↦ (Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R {(Finset.affineCombination R Finset.univ t.points) (Finset.affineCombinationSingleWeights R i₁), _a}) (Eq.symm (Finset.affineCombination_affineCombinationLineMapWeights Finset.univ t.points (Finset.mem_univ i₂) (Finset.mem_univ i₃) r₁))) (Eq.mp (congrArg (fun _a ↦ (Finset.affineCombination R Finset.univ t.points) w ∈ affineSpan R (insert _a ⋯)) (Eq.symm (Finset.affineCombination_affineCombinationSingleWeights R Finset.univ t.points (Finset.mem_univ i₁)))) h₁')) h₂' h₁s h₂s; have hss := of_eq_true (Eq.trans (congrArg (fun x ↦ x = 1) (Eq.trans (congrArg (⇑SignType.sign) hw) (sign_pos (of_eq_true zero_lt_one._simp_1)))) (eq_self 1)); have hs' := sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i x ↦ hs i; sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._proof_1_4 h₁₂ h₁₃ h₂₃ hu w hw (Eq.mp (forall_congr fun i ↦ sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._simp_1_3) (Eq.mp (forall_congr fun i ↦ congrArg (Eq (SignType.sign (w i))) (Eq.mp (congrArg (fun _a ↦ _a = 1) hs') hss)) hs))))))))) (Eq.symm right) hp h₁' h₂') right h₂ h₂') right h₁ h₁' info: Mathlib/Analysis/Convex/Between.lean:758:56: [Elab.async] [0.034446] Lean.addDecl [Kernel] [0.034414] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._proof_1_1] info: Mathlib/Analysis/Convex/Between.lean:805:2: [Elab.async] [0.010829] Lean.addDecl [Kernel] [0.010814] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._proof_1_4] info: Mathlib/Analysis/Convex/Between.lean:747:8: [Elab.async] [0.019719] Lean.addDecl [Kernel] [0.019644] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair] Build completed successfully (1510 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-analysis 1/8 Mathlib/Analysis/Convex/Between.lean 1 3 ['euprunin', 'github-actions', 'grunweg'] grunweg
assignee:grunweg
0-76342
21 hours ago
0-82122
22 hours ago
0-85112
23 hours
31001 gasparattila
author:gasparattila
fix(Tactic/FunProp): fix "loose bvar in expression" error --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 1/1 Mathlib/Tactic/FunProp/Core.lean 1 2 ['github-actions', 'grunweg'] nobody
0-76146
21 hours ago
0-83311
23 hours ago
0-83350
23 hours
30928 themathqueen
author:themathqueen
chore(LinearAlgebra/Matrix/PosDef): rename `Matrix.InnerProductSpace.ofMatrix` Renames: - `Matrix.NormedAddCommGroup.ofMatrix` -> `Matrix.PosDef.normedAddCommGroup` - `Matrix.InnerProductSpace.ofMatrix` -> `Matrix.PosDef.innerProductSpace` Also defines `Matrix.PosSemidef.seminormedAddCommGroup` and `Matrix.PosSemidef.innerProductSpace` for the pre-inner product space induced by a positive semi-definite matrix. (The positive definite version extends this, so they, of course, have the same inner product.) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
45/24 Mathlib/LinearAlgebra/Matrix/LDL.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean 2 15 ['eric-wieser', 'github-actions', 'themathqueen'] nobody
0-75206
20 hours ago
2-74348
2 days ago
2-75040
2 days
25804 erdOne
author:erdOne
feat: `∑ z ∈ L, ‖z - x‖⁻ʳ` converges for lattices `L` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --- *This PR continues the work from #21673.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/21673* t-analysis 320/0 Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Disjoint.lean,Mathlib/Algebra/Module/ZLattice/Summable.lean,Mathlib/Order/Disjointed.lean 4 3 ['github-actions', 'wwylele'] fpvandoorn
assignee:fpvandoorn
0-74706
20 hours ago
0-74706
20 hours ago
77-9671
77 days
28719 mitchell-horner
author:mitchell-horner
refactor: redefine `IsTuranMaximal` Redefined `IsTuranMaximal := G.IsExtremal (CliqueFree · (r + 1))` and - replaced `classical` in `IsTuranMaximal.le_iff_eq` with `DecidableRel` - refactored `turanGraph.instDecidableRelAdj`, `turanGraph_zero`, `exists_isTuranMaximal` - added `open Fintype` - replaced `simp only` with `rw` or `simp_rw` --- - [x] depends on: #28721 - [x] depends on: #29054 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 33/46 Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean 1 11 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mitchell-horner', 'vihdzp'] kmill
assignee:kmill
0-74619
20 hours ago
31-5988
1 month ago
58-25110
58 days
30973 vihdzp
author:vihdzp
feat: generalize `Finsupp.lex_lt_iff_of_unique` --- - [x] depends on: #30481 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 46/13 Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Order/PiLex.lean 3 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-73585
20 hours ago
0-73585
20 hours ago
0-82454
22 hours
29964 Vierkantor
author:Vierkantor
feat(TacticAnalysis): check if we are in a `try`/`anyGoals` context This PR adds a check if the tactic is being run in a `try` or `anyGoals` call, so that we do not add a warning for the original tactic failing in this context. This was the source of a few "original tactic failed" in the `grind` regression reports. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 84/36 Mathlib/Tactic/TacticAnalysis.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean 3 3 ['github-actions', 'mathlib4-merge-conflict-bot'] adamtopaz
assignee:adamtopaz
0-71222
19 hours ago
0-71242
19 hours ago
28-58092
28 days
30991 tb65536
author:tb65536
feat(Algebra/Group/Action/Defs): add `SMulDistribClass` This PR adds `SMulDistribClass` imposing `g • r • s = (g • r) • (g • s)`. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Typeclass.20for.20compatible.20group.20actions --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
27/5 Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Action/Defs.lean 2 2 ['github-actions', 'riccardobrasca'] nobody
0-70098
19 hours ago
1-28956
1 day ago
1-28934
1 day
30650 JovanGerb
author:JovanGerb
perf(reassoc, to_app, elementwise): don't pass the same proof to the kernel again In `reassoc`, `to_app`, `elementwise`, the proof of the original lemma was being used to prove the modified lemma. This is silly, because the modified lemma can be proved using the original lemma directly. Hence, this PR modifies `addRelatedDecl` to include this optimization. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 12/12 Mathlib/Tactic/CategoryTheory/Elementwise.lean,Mathlib/Tactic/CategoryTheory/Reassoc.lean,Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Util/AddRelatedDecl.lean 4 5 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'plp127'] dwrensha
assignee:dwrensha
0-67350
18 hours ago
10-61118
10 days ago
10-64851
10 days
31012 Ruben-VandeVelde
author:Ruben-VandeVelde
feat: {List,Multiset,Finset}.prod_le_sum --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 34/25 Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Analysis/Normed/Group/Basic.lean 6 1 ['github-actions'] nobody
0-67080
18 hours ago
0-67153
18 hours ago
0-67130
18 hours
29788 robertmaxton42
author:robertmaxton42
feat (Topology): adds bundled continuous maps for sum, sigma, subtype, mapsto, inclusion Adds a collection of bundled continuous maps and homeomorphisms, and helper lemmas for working with their compositions. Bundling of existing continuity lemmas: * `ContinuousMap.subtypeVal` * `ContinuousMap.inl` and `.inr`; `ContinuousMap.sum` bundles `Continuous.sumElim`; `ContinuousMap.sumMap`, which is a quotient map when both components are quotient maps * `ContinuousMap.sigmaMap`, which is a quotient map when given a family of quotient maps * `ContinuousMap.mapsTo` bundles `ContinuousOn.restrict_mapsTo` New functions: * `ContinuousMap.preimageValIncl : C(s ↓∩ t, t)` and `.inclPreimageVal C(s, t ↓∩ s)`, and their unbundled functions in `Set` * `Homeomorph.Set.preimageVal` witnesses that the two are opposite directions of a homeomorphism * Descending from a coherent set of subspaces is a quotient map The primary use for these bundled maps is easy composition and the ability to introduce them by rewriting right-to-left: it is much more convenient to write `subtypeVal.comp _` than to use either the anonymous constructor (which doesn't work in any position without an expected type) or `ContinuousMap.mk` (which will disappear as soon as it is coerced to a function, making it difficult to use in mixed-categorical contexts where many maps can only be reduced by introducing a composition with some other map.) This PR is part of a family of PRs that ultimately construct transformations in both directions between the concrete `Topology.RelCWComplex` and abstract `TopCat.RelativeCWComplex`. `.mapsTo` in particular bundles together a couple of potentially nontrivial proofs in a way that makes them easy to refer to later; I use it and `.subtypeVal` particularly heavily later in a dependent PR to build the cell inclusion maps on both sides of the equivalence. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import 226/3 Mathlib/Data/Set/Subset.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,Mathlib/Topology/Coherent.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Constructions/SumProd.lean,Mathlib/Topology/ContinuousMap/Basic.lean,scripts/noshake.json 7 7 ['adamtopaz', 'github-actions', 'robertmaxton42'] adamtopaz
assignee:adamtopaz
0-66838
18 hours ago
25-29897
25 days ago
40-25977
40 days
31010 kebekus
author:kebekus
feat: sums of meromorphic functions are meromorphic, Mark II In complete analogy to existing statements about products, establish in very few lines that sums of meromorphic functions are meromorphic. Fix several docstrings. This is Mark II of my original PR #30587. I decided to open a new, clean PR after the original PR became too messy because of substantial changes to the original PR that then needed to be reverted. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 38/6 Mathlib/Analysis/Meromorphic/Basic.lean 1 1 ['github-actions'] nobody
0-66831
18 hours ago
0-69203
19 hours ago
0-69242
19 hours
29715 ADedecker
author:ADedecker
feat: generalize `IsClosed.vadd_right_of_isCompact` to proper actions I realized a few weeks after adding them to Mathlib that the more conceptual approach for lemmas of the form "`s • t` is closed when one of `s` and `t` is closed and the other is compact" is that of proper maps and proper actions. This PR switches to this approach. More precisely: - I refactored the proof [IsClosed.smul_left_of_isCompact](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/Pointwise.html#IsClosed.smul_left_of_isCompact) in terms of properness. The proof is essentially the same length, but conceptually simpler. - More importantly, I generalize [IsClosed.vadd_right_of_isCompact](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/AddTorsor.html#IsClosed.vadd_right_of_isCompact) from topological torsors to proper actions. Note that I do not assume separation, which creates some troubles as compact sets are not closed... --- - [x] depends on: #30387 - [x] depends on: #30406 - [ ] depends on: #30410 - [x] depends on: #30411 - [x] depends on: #30409 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 72/42 Mathlib/Topology/Algebra/Group/AddTorsor.lean,Mathlib/Topology/Algebra/Group/Pointwise.lean,Mathlib/Topology/Algebra/ProperAction/Basic.lean 3 4 ['ADedecker', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] grunweg
assignee:grunweg
0-65636
18 hours ago
4-63338
4 days ago
28-12362
28 days
31009 ADedecker
author:ADedecker
doc: mention freeness in `IsCancelSMul` Future work: come up with a mechanism for discovering these. I would advocate for a permanently deprecated alias `IsFreeAction` just for that purpose. --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Free.20actions/near/546328709 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy documentation
label:t-algebra$
6/2 Mathlib/Algebra/Group/Action/Defs.lean 1 1 ['github-actions'] nobody
0-65563
18 hours ago
0-70347
19 hours ago
0-70388
19 hours
30371 EtienneC30
author:EtienneC30
feat: covarianceBilin of the push-forward measure --- - [x] depends on: #30324 - [x] depends on: #30362 From BrownianMotion [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 37/0 Mathlib/Probability/Moments/Basic.lean,Mathlib/Probability/Moments/CovarianceBilin.lean 2 4 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-65477
18 hours ago
0-65479
18 hours ago
0-67342
18 hours
31016 Ruben-VandeVelde
author:Ruben-VandeVelde
feat: add List.le_prod_of_submultiplicative and friends --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
69/25 Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean 3 1 ['github-actions'] nobody
0-64457
17 hours ago
0-64457
17 hours ago
0-64612
17 hours
30936 themathqueen
author:themathqueen
feat(Data/Int): define `Int.fib`, the extended version of `Nat.fib` onto the integers We define `Int.fib`, the integer version of `Nat.fib`, which satisfies `Int.fib 0 = 0`, `Int.fib 1 = 1`, and `Int.fib (n + 2) = Int.fib n + Int.fib (n + 1)`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 91/0 Mathlib.lean,Mathlib/Data/Int/Fib.lean 2 9 ['github-actions', 'themathqueen', 'vihdzp'] nobody
0-64264
17 hours ago
1-67102
1 day ago
2-62768
2 days
30792 tb65536
author:tb65536
feat(FieldTheory/Galois/IsGaloisGroup): `IsGaloisGroup` is preserved by passing to the fraction field This PR shows that `IsGaloisGroup` is preserved by passing to the fraction field. --- - [x] depends on: #30645 - [x] depends on: #30791 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import t-algebra
label:t-algebra$
61/1 Mathlib/FieldTheory/Galois/IsGaloisGroup.lean 1 7 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'tb65536'] nobody
0-63056
17 hours ago
2-63124
2 days ago
2-68972
2 days
30909 vihdzp
author:vihdzp
chore(Logic/Equiv/Basic): golf using `aesop` / `grind` Lemmas about `Equiv.swap` are very heavy in casework, which is precisely what these tactics excel at. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 18/44 Mathlib/Data/Set/Prod.lean,Mathlib/Logic/Embedding/Basic.lean,Mathlib/Logic/Equiv/Basic.lean 3 3 ['github-actions', 'grunweg', 'themathqueen'] nobody
0-62023
17 hours ago
0-62023
17 hours ago
1-39083
1 day
30730 JovanGerb
author:JovanGerb
feat: new `by_cases!` tactic This PR defines the `by_cases! h : p` tactic, which is a macro for `by_cases h : p` followed by a `try push_neg at h` in the second goal. We use `try push_neg` instead of `push_neg` to make the tactic also succeed when no negation is pushed. Should there maybe be an optional linter telling you to use `by_cases` instead if possible? --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 33/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ByCases.lean,scripts/noshake.json 4 2 ['adamtopaz', 'github-actions'] adamtopaz
assignee:adamtopaz
0-61635
17 hours ago
8-58459
8 days ago
8-58500
8 days
30662 urkud
author:urkud
feat(LocallyFinite): add `of_comp_surjective` --- Cleaning up old branches. Feel free to reject. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-topology 7/0 Mathlib/Topology/LocallyFinite.lean 1 2 ['Ruben-VandeVelde', 'github-actions', 'plp127'] j-loreaux
assignee:j-loreaux
0-61426
17 hours ago
0-61426
17 hours ago
10-42999
10 days
29321 FormulaRabbit81
author:FormulaRabbit81
refactor(Topology): cleaner way to get metric spaces from emetric spaces --- - [x] depends on: #30721 - [x] depends on: #30722 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 71/81 Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/Topology/MetricSpace/Basic.lean,Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,Mathlib/Topology/MetricSpace/Pseudo/Pi.lean,Mathlib/Topology/MetricSpace/UniformConvergence.lean 8 25 ['FormulaRabbit81', 'YaelDillies', 'github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] nobody
0-61275
17 hours ago
0-64385
17 hours ago
2-66686
2 days
25945 adomani
author:adomani
feat: the empty line in commands linter This linter flags empty lines within a command. It allows empty lines within doc-strings, module-docs and a couple of other "sensible" places. It also skips files that are likely to contain meta-code, since there the use of empty lines in definition is more widespread. This PR continues the work from #25236. large-import t-linter 380/22 Mathlib.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/Analysis/Meromorphic/FactorizedRational.lean,Mathlib/CategoryTheory/Comma/StructuredArrow/CommaMap.lean,Mathlib/CategoryTheory/Monoidal/Opposite/Mon_.lean,Mathlib/Data/UInt.lean,Mathlib/Init.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RingTheory/Flat/TorsionFree.lean,Mathlib/RingTheory/HahnSeries/HahnEmbedding.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/EmptyLine.lean,MathlibTest/EmptyLine.lean 13 23 ['adomani', 'bryangingechen', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] bryangingechen
assignee:bryangingechen
0-60633
16 hours ago
1-1932
1 day ago
48-42274
48 days
30683 YaelDillies
author:YaelDillies
chore: use `IsAddTorsionFree M` instead of `NoZeroSMulDivisors ℕ M`/`NoZeroSMulDivisors ℤ M` These are all equivalent spellings, but the former works without knowing about `Module`. --- - [x] depends on: #30680 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
101/100 Mathlib/Algebra/Lie/Sl2.lean,Mathlib/Algebra/Lie/Weights/Chain.lean,Mathlib/Algebra/Lie/Weights/Killing.lean,Mathlib/Algebra/Module/Rat.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/NoZeroSMulDivisors/Basic.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/HasseDeriv.lean,Mathlib/Algebra/Ring/CharZero.lean,Mathlib/Analysis/Normed/Module/Ball/Action.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/GroupTheory/Subgroup/Saturated.lean,Mathlib/LinearAlgebra/Basis/Submodule.lean,Mathlib/LinearAlgebra/Reflection.lean,Mathlib/LinearAlgebra/RootSystem/Base.lean,Mathlib/LinearAlgebra/RootSystem/Basic.lean,Mathlib/LinearAlgebra/RootSystem/Chain.lean,Mathlib/LinearAlgebra/RootSystem/Defs.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Relations.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/MeasureTheory/Group/Integral.lean,Mathlib/RingTheory/Binomial.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/PowerSeries/Derivative.lean,Mathlib/RingTheory/TensorProduct/Maps.lean,Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean 30 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-60594
16 hours ago
1-8789
1 day ago
1-35889
1 day
30848 YaelDillies
author:YaelDillies
refactor: define `<` on `WithBot`/`WithTop` as an inductive predicate Follow up to #19668, where I did the same for `LE` but forgot to do it for `LT`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 52/39 Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/PowerBasis.lean 5 12 ['JovanGerb', 'Vierkantor', 'YaelDillies', 'b-mehta', 'github-actions', 'vihdzp'] nobody
0-59680
16 hours ago
4-59203
4 days ago
4-64075
4 days
30242 YaelDillies
author:YaelDillies
chore: rename `mul_le_mul_right'` to `mul_le_mul_left` --- - [x] depends on: #30508 - [x] depends on: #30632 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order t-algebra
label:t-algebra$
342/380 Archive/Wiedijk100Theorems/CubingACube.lean,Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Group/UniqueProds/Basic.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Field/Pi.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/Int.lean,Mathlib/Algebra/Order/Group/Nat.lean,Mathlib/Algebra/Order/Group/Opposite.lean,Mathlib/Algebra/Order/Group/PiLex.lean,Mathlib/Algebra/Order/Group/Units.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Associated.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/OrderDual.lean,Mathlib/Algebra/Order/Monoid/Prod.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Units.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Algebra/Order/Ring/Archimedean.lean,Mathlib/Algebra/Order/Ring/Basic.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Algebra/Order/Ring/Rat.lean,Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/CStarAlgebra/Multiplier.lean,Mathlib/Analysis/Matrix/Order.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/Analysis/Normed/Unbundled/SeminormFromConst.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Combinatorics/Additive/CauchyDavenport.lean,Mathlib/Combinatorics/Additive/Energy.lean,Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean,Mathlib/Combinatorics/SetFamily/Kleitman.lean,Mathlib/Computability/Language.lean,Mathlib/Data/ENNReal/Action.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Inv.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Int/Interval.lean,Mathlib/Data/Nat/Choose/Factorization.lean,Mathlib/Data/Nat/Fib/Zeckendorf.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Num/ZNum.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/Real/StarOrdered.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/Geometry/Convex/Cone/Basic.lean,Mathlib/GroupTheory/DivisibleHull.lean,Mathlib/GroupTheory/MonoidLocalization/Order.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean,Mathlib/MeasureTheory/Function/Intersectivity.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean,Mathlib/NumberTheory/EllipticDivisibilitySequence.lean,Mathlib/NumberTheory/FrobeniusNumber.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean,Mathlib/Order/Partition/Equipartition.lean,Mathlib/Probability/Independence/Integration.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/HahnSeries/Lex.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Divisibility.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Game/Basic.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean,Mathlib/SetTheory/Ordinal/NaturalOps.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/SetTheory/PGame/Algebra.lean,Mathlib/SetTheory/Surreal/Basic.lean,Mathlib/Tactic/LinearCombination/Lemmas.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Topology/ContinuousMap/CompactlySupported.lean 104 12 ['JovanGerb', 'YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-59276
16 hours ago
0-80333
22 hours ago
0-82904
23 hours
31025 YaelDillies
author:YaelDillies
feat(Finset): interaction of `attach` and `cons` and golf the corresponding `insert` lemma. This lets us golf a proof by induction. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 10/8 Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean,Mathlib/Data/Finset/Image.lean 2 1 ['github-actions'] nobody
0-57693
16 hours ago
0-57767
16 hours ago
0-57744
16 hours
30053 vlad902
author:vlad902
feat(SimpleGraph): only the complete graph has chromatic number equal to its cardinality Prove that only the (finite) complete graph has chromatic number equal to its cardinality, thereby finishing an iff fully characterizing graphs with chromatic number equal to their cardinality. - [ ] depends on: #30136 - [ ] depends on: #30137 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 21/0 Mathlib/Combinatorics/SimpleGraph/Coloring.lean 1 8 ['eric-wieser', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vlad902'] nobody
0-57600
16 hours ago
0-57631
16 hours ago
4-71254
4 days
31026 YaelDillies
author:YaelDillies
feat: pullback `PosMulMono` and friends --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
27/0 Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean 1 0 [] nobody
0-57499
15 hours ago
0-57568
15 hours ago
0-57545
15 hours
29579 vlad902
author:vlad902
feat(SimpleGraph): characterize graphs with chromatic number 1 or 2 - [ ] depends on: #29578 - [ ] depends on: #30136 t-combinatorics 38/7 Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean 2 8 ['github-actions', 'jt496', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vlad902'] nobody
0-57448
15 hours ago
0-57476
15 hours ago
16-30993
16 days
31027 YaelDillies
author:YaelDillies
chore: shortcut instance for `Nat` to be mul-torsion-free This instance can already be found by typeclass search using the fact that `Nat` is a `LinearOrderedCommMonoidWithZero`, but it is better practice to not rely on algebraic order theory to prove algebraic results about such basic types. Similarly for `IsAddTorsionFree Int`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-algebra
label:t-algebra$
7/1 Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/Group/Nat/Defs.lean,Mathlib/Algebra/Ring/Nat.lean 3 1 ['github-actions'] nobody
0-57021
15 hours ago
0-57021
15 hours ago
0-57097
15 hours
30877 YaelDillies
author:YaelDillies
feat(Algebra/MonoidAlgebra): extend the `R[M]` notation to `MonoidAlgebra R M` It currently only is notation for `AddMonoidAlgebra R M`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
205/160 Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/MonoidAlgebra/Lift.lean,Mathlib/Algebra/MonoidAlgebra/MapDomain.lean,Mathlib/Algebra/MonoidAlgebra/Module.lean,Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean,Mathlib/Algebra/MonoidAlgebra/Opposite.lean,Mathlib/Algebra/MonoidAlgebra/Support.lean,MathlibTest/Algebra/MonoidAlgebra/Defs.lean 9 13 ['YaelDillies', 'eric-wieser', 'github-actions', 'vihdzp'] nobody
0-56070
15 hours ago
0-56110
15 hours ago
1-251
1 day
30215 SnirBroshi
author:SnirBroshi
feat(Data/List/NodupEquivFin): add equiv with `count = 1` hypothesis --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 8/2 Mathlib/Data/List/NodupEquivFin.lean 1 5 ['SnirBroshi', 'github-actions', 'jcommelin'] nobody
0-52699
14 hours ago
1-564
1 day ago
24-43440
24 days
30647 JovanGerb
author:JovanGerb
chore(Tactic/Ring): use Qq more honestly This PR removes almost all uses of `(q(...) : Expr)` in the `ring` tactic implementation. This includes switching from `Ring`/`DivisionSemiring` to `CommRing`/`Semifield`, because then we can rely on `assumeInstancesCommute` to make Qq happy. This should not affect the generality of the `ring` tactic, because a `Ring`/`DivisionSemiring` that is also commutative is also a `CommRing`/`Semifield`. I wanted to do some other work on `ring`, but that stumbled on the fact that some `q(...)` proof terms weren't actually being type checked properly by Qq. This PR fixes this. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 126/116 Mathlib/Tactic/Ring/Basic.lean 1 9 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'thorimur'] thorimur
assignee:thorimur
0-52054
14 hours ago
10-80226
10 days ago
10-80214
10 days
31007 kckennylau
author:kckennylau
feat(RingTheory): generalise perfection to monoids 1. We generalise `PerfectRing` to monoids (without changing the name). 2. We move `Submonoid.perfection` and `Ring.Perfection` to the already existing `Perfection` namespace, which solves the problem that `Ring.Perfection` and its lemmas `Perfection.xxx` are in different namespaces. Also, the monoid perfection and right perfection have the same underlying set, so this unify the two approaches. 3. `Perfection.lift` is now generalised to monoids: `liftMonoidHom : (M →* N) ≃ (M →* Perfection N p)` where `M` is a perfect monoid. --- This is in preparation for a future PR following #30989. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 246/100 Mathlib/FieldTheory/Perfect.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/RingTheory/Perfectoid/Untilt.lean 4 31 ['github-actions', 'jjdishere', 'kckennylau', 'pechersky'] nobody
0-52046
14 hours ago
0-72330
20 hours ago
0-72307
20 hours
31030 bryangingechen
author:bryangingechen
chore: update PR template Add back instructions for adding co-authors via "Co-authored-by" lines. bors wasn't handling them correctly until the fix announced here: [#mathlib4 > co-authored-by bors issue @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/co-authored-by.20bors.20issue/near/536137752) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CI 16/6 .github/PULL_REQUEST_TEMPLATE.md 1 1 ['github-actions'] nobody
0-51353
14 hours ago
0-51356
14 hours ago
0-51394
14 hours
31014 kckennylau
author:kckennylau
chore: deprecate frobenius_xxx lemmas e.g. `frobenius_add` should be replaced with `map_add _`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-algebra
label:t-algebra$
24/24 Mathlib/Algebra/CharP/Frobenius.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean 4 4 ['github-actions', 'pechersky'] nobody
0-49995
13 hours ago
0-49995
13 hours ago
0-65548
18 hours
30182 urkud
author:urkud
feat(Calculus): derivative of `ContinuousMultilinearMap.compContinuousLinearMap` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 153/1 Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousMultilinearMap.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean 3 2 ['PatrickMassot', 'github-actions', 'urkud'] hrmacbeth
assignee:hrmacbeth
0-49253
13 hours ago
25-45020
25 days ago
25-45056
25 days
31031 gasparattila
author:gasparattila
feat(Topology/UniformSpace): define the Hausdorff uniformity This PR defines the Hausdorff uniformity on `Closeds`, `Compacts` and `NonemptyCompacts`. Since `Closeds` and `NonemptyCompacts` already have metrics, they are changed to use the newly defined uniformity. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 294/31 Mathlib.lean,Mathlib/Data/Rel.lean,Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Order.lean,Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/UniformSpace/Closeds.lean 6 1 ['github-actions'] nobody
0-48883
13 hours ago
0-48957
13 hours ago
0-48934
13 hours
31029 tb65536
author:tb65536
doc(FieldTheory/Galois/IsGaloisGroup): clarify terminological issues This PR expands to docstring of `FieldTheory/Galois/IsGaloisGroup.lean` to clarify the terminological issues that have been raised in this Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2330791.20generalizing.20.60IsGaloisGroup.60 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra documentation
label:t-algebra$
14/3 Mathlib/FieldTheory/Galois/IsGaloisGroup.lean 1 1 ['github-actions'] nobody
0-47856
13 hours ago
0-47856
13 hours ago
0-47834
13 hours
27978 smmercuri
author:smmercuri
feat(InfinitePlace/Ramification): `LiesOver` class for absolute values and derived results on infinite places If `w` is an absolute value on `L/K` and `v` is an absolute value of `K` then `w.LiesOver v` is the class defining the property that `v` is the restriction of `w` to `K`. This PR continues the work from #24881. Original PR: https://github.com/leanprover-community/mathlib4/pull/24881 --- - [x] depends on: #27977 large-import FLT maintainer-merge t-number-theory 61/0 Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean 2 14 ['MichaelStollBayreuth', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri'] MichaelStollBayreuth
assignee:MichaelStollBayreuth
0-47356
13 hours ago
0-80774
22 hours ago
26-20657
26 days
26387 jjdishere
author:jjdishere
feat(RingTheory/WittVector): the Teichmuller series This PR continues the work from #22320. Original PR: https://github.com/leanprover-community/mathlib4/pull/22320 In this PR, we show that every element `x` of the Witt vectors `𝕎 R` can be written as the (`p`-adic) summation of the Teichmuller series. Instead of using `tsum`, we only show that `p ^ (n + 1)` divides `x` minus the summation of the first `n + 1` terms of the Teichmuller series. We also show that if `p` divides the first (n + 1) coefficients of a Witt vector, then `p^(n+1)` divides the `n`-th ghost component. #26396 depends on this PR. t-ring-theory 199/2 Mathlib.lean,Mathlib/Algebra/Ring/Aut.lean,Mathlib/FieldTheory/Perfect.lean,Mathlib/RingTheory/WittVector/Basic.lean,Mathlib/RingTheory/WittVector/Complete.lean,Mathlib/RingTheory/WittVector/TeichmullerSeries.lean 6 2 ['github-actions', 'jjdishere'] nobody
0-47003
13 hours ago
0-47003
13 hours ago
0-47096
13 hours
31015 FormulaRabbit81
author:FormulaRabbit81
feat(Topology): obtain new distance structures on pseudo(e)metricspaces --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) The changes here were originally in #29321, and have been reviewed, but split off here for clarity. t-topology 110/0 Mathlib/Topology/MetricSpace/Basic.lean 1 4 ['FormulaRabbit81', 'YaelDillies', 'github-actions', 'sgouezel'] nobody
0-45922
12 hours ago
0-50381
13 hours ago
0-61373
17 hours
31004 joelriou
author:joelriou
feat(CategoryTheory/Localization): action of a localizer morphism on SmallShiftedHom Co-authored-by: Nailin Guan <150537269+Thmoas-Guan@users.noreply.github.com> Co-authored-by: Wang Jingting --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 260/4 Mathlib/CategoryTheory/Localization/SmallHom.lean,Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean,Mathlib/CategoryTheory/NatIso.lean,Mathlib/CategoryTheory/Shift/Localization.lean,Mathlib/CategoryTheory/Shift/ShiftedHom.lean 5 3 ['github-actions', 'joelriou'] nobody
0-45810
12 hours ago
0-76282
21 hours ago
0-76261
21 hours
31021 EtienneC30
author:EtienneC30
feat: characterization of the product measure via bounded continuous functions Prove that the product of two finite measures `µ` and `ν` is the only finite measure `ξ` such that for all real bounded continuous functions `f` and `g` we have `∫ z, f z.1 * g z.2 ∂ξ = ∫ x, f x ∂μ * ∫ y, g y ∂ν`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-measure-probability 111/1 Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean 1 3 ['EtienneC30', 'github-actions', 'sgouezel'] nobody
0-45247
12 hours ago
0-45351
12 hours ago
0-51891
14 hours
28819 ScottCarnahan
author:ScottCarnahan
feat (Data/Finsupp): define convolution smul for finsupps on formal functions This is a generalization of the multiplication action of the ring of Laurent polynomials on the space of formal power series with unbounded pole terms. --- - [x] depends on: #28876 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 86/0 Mathlib.lean,Mathlib/Data/Finsupp/PointwiseSMul.lean 2 11 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] tb65536
assignee:tb65536
0-43795
12 hours ago
20-42217
20 days ago
21-50468
21 days
30879 grunweg
author:grunweg
feat: beta and eta reduce in the `T%` elaborator I believe this is a nicer user experience. I suspect this explains some of type mismatches when trying to use it more, but have yet to test this. --- - [x] depends on: #30413 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry t-meta 65/18 Mathlib/Geometry/Manifold/Notation.lean,MathlibTest/DifferentialGeometry/Notation.lean 2 9 ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'thorimur'] nobody
0-43381
12 hours ago
0-85092
23 hours ago
0-85996
23 hours
30891 ScottCarnahan
author:ScottCarnahan
feat (Algebra/Lie/Extension): construction of Lie algebra extensions from 2-cocycles This PR gives a construction of a Lie algebra extension from a 2-cocycle. The classification of extensions in terms of degree 2 cohomology is postponed to later PRs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
195/8 Mathlib/Algebra/Lie/Extension.lean,docs/references.bib 2 1 ['github-actions'] nobody
0-43307
12 hours ago
3-57761
3 days ago
3-57807
3 days
29652 fmortimore
author:fmortimore
feat(Order): the Bourbaki–Witt theorem We prove the Bourbaki-Witt theorem, one of Wiedijk's 1000+ theorems --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-order 231/0 Mathlib.lean,Mathlib/Order/BourbakiWitt.lean,docs/1000.yaml 3 48 ['Vierkantor', 'eric-wieser', 'fmortimore', 'github-actions', 'wwylele'] Vierkantor
assignee:Vierkantor
0-43189
11 hours ago
0-43189
11 hours ago
31-12405
31 days
31035 gasparattila
author:gasparattila
feat(Topology/Sets): `Singleton` instances for `(Nonempty)Compacts` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 37/3 Mathlib/Topology/Sets/Compacts.lean 1 1 ['github-actions'] nobody
0-41829
11 hours ago
0-41843
11 hours ago
0-41882
11 hours
31036 chrisflav
author:chrisflav
chore(RingTheory): prerequisites for #31034 In particular, various lemmas on `Submodule.comap` for injective maps, lemmas about `Extension.Cotangent.mk` and a criterion for `IsLocalization.Away` for quotients. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 83/0 Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Extension/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Localization/Away/Basic.lean 5 1 ['github-actions'] nobody
0-41641
11 hours ago
0-41711
11 hours ago
0-41689
11 hours
30957 chrisflav
author:chrisflav
chore(AlgebraicGeometry): remove unnecessary uses of `Hom.base` The locations were found by a linter, that flagged every occurrence of the chain `DFunLike.coe`, `CategoryTheory.ConcreteCategory.hom` , `AlgebraicGeometry.PresheafedSpace.Hom.base`, `AlgebraicGeometry.LocallyRingedSpace.Hom.toHom` , `AlgebraicGeometry.Scheme.Hom.toLRSHom'` and an explicit `.base` projection. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 188/189 Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean,Mathlib/AlgebraicGeometry/Cover/Directed.lean,Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean,Mathlib/AlgebraicGeometry/Cover/Open.lean,Mathlib/AlgebraicGeometry/Cover/Sigma.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Functorial.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean,Mathlib/AlgebraicGeometry/Morphisms/Affine.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean,Mathlib/AlgebraicGeometry/Morphisms/Descent.lean,Mathlib/AlgebraicGeometry/Morphisms/Flat.lean,Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/Morphisms/Separated.lean,Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean,Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean,Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyInjective.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean,Mathlib/AlgebraicGeometry/QuasiAffine.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean,Mathlib/AlgebraicGeometry/Sites/Small.lean 30 1 ['github-actions'] nobody
0-41379
11 hours ago
0-41380
11 hours ago
0-41367
11 hours
30595 winstonyin
author:winstonyin
feat: $C^n$ implicit function theorem I formalise a proof that the implicit function obtained from a $C^n$ implicit equation ($n \geq 1$) is $C^n$. Roughly speaking, given an equation $f : E \times F \to F$ that is smooth at $(a,b) : E\times F$ and whose derivative $f'$ is in some sense non-singular, then there exists a function $\phi : E \to F$ such that $\phi(a) = b$, $f(x, \phi(x)) = f(a,b)$ for all $x$ in a neighbourhood of $a$, and $\phi$ is $C^n$ at $a$. The current implicit function theorem in Mathlib is quite general and not directly applicable to many familiar scenarios. The statements added by this PR correspond to, e.g., the way the theorem is described on Wikipedia, and will be directly useful for an upcoming formalisation of the smoothness theorem for flows of ODEs. - [x] depends on: #30607 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 151/2 Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean 3 29 ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'sgouezel', 'winstonyin'] grunweg
assignee:grunweg
0-40855
11 hours ago
1-31726
1 day ago
11-21616
11 days
31003 themathqueen
author:themathqueen
feat(Algebra/Star/LinearMap): `star mul' = mul' ∘ TensorProduct.comm` and `star (f ⊗ₘ g) = star f ⊗ₘ star g` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy
label:t-algebra$
30/8 Mathlib/Algebra/Star/LinearMap.lean,Mathlib/Algebra/Star/TensorProduct.lean 2 2 ['github-actions', 'themathqueen'] nobody
0-40148
11 hours ago
0-78547
21 hours ago
0-78827
21 hours
31037 chrisflav
author:chrisflav
feat(RingTheory): bijective descends along faithfully flat ring maps From Pi1. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 75/0 Mathlib.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Descent.lean,Mathlib/RingTheory/RingHomProperties.lean 3 1 ['github-actions'] nobody
0-38433
10 hours ago
0-40113
11 hours ago
0-40090
11 hours
30967 grunweg
author:grunweg
chore: mark measure_union_ne_top and friends with finiteness In some cases, add `≠ ∞` versions of existing `< ∞` lemmas, and tag those with finiteness. Use this to golf one proof `by measurability` using finiteness, which is the morally correct proof. Motivated by #30966. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 21/6 Mathlib/MeasureTheory/Function/UnifTight.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean 2 8 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] nobody
0-37067
10 hours ago
0-37067
10 hours ago
1-68850
1 day
31038 rudynicolop
author:rudynicolop
feat(Computability/NFA): NFA acceptsFrom definitions and lemmas This PR defines `NFA.acceptsFrom`, similar to [`DFA.acceptsFrom`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Computability/DFA.html#DFA.acceptsFrom), and provides helper lemmas. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor 71/2 Mathlib/Computability/NFA.lean 1 1 ['github-actions'] nobody
0-33397
9 hours ago
0-34573
9 hours ago
0-34623
9 hours
30987 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(LinearAlgebra/SpecialLinearGroup): special linear group of a module Define the special linear group of a module. Relate it with `Matrix.SpecialLinearGroup`. Several additional constructions. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
444/14 Mathlib.lean,Mathlib/LinearAlgebra/Charpoly/BaseChange.lean,Mathlib/LinearAlgebra/Determinant.lean,Mathlib/LinearAlgebra/GeneralLinearGroup.lean,Mathlib/LinearAlgebra/Matrix/Dual.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean,Mathlib/LinearAlgebra/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean 8 22 ['AntoineChambert-Loir', 'github-actions', 'mattrobball', 'mcdoll'] nobody
0-33251
9 hours ago
0-33251
9 hours ago
0-82296
22 hours
25927 jjdishere
author:jjdishere
feat(RingTheory/AdicCompletion): more APIs for IsAdicComplete This PR continues the work from #21582. Original PR: https://github.com/leanprover-community/mathlib4/pull/21582 t-ring-theory 543/12 Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/RingHom.lean,Mathlib/RingTheory/Ideal/Quotient/Defs.lean,Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean 4 5 ['github-actions', 'jjdishere'] nobody
0-32381
8 hours ago
85-1294
2 months ago
9-35950
9 days
27353 themathqueen
author:themathqueen
chore(LinearAlgebra/TensorProduct/Basic): more semi-linearizing Co-authored-by: Anatole Dedecker --- This continues the work from: #27310 (original PR: #24208). - [x] depends on: #27467 - [x] depends on: #27288 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
186/158 Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/Algebra/Lie/TensorProduct.lean,Mathlib/Analysis/InnerProductSpace/TensorProduct.lean,Mathlib/CategoryTheory/Monoidal/Internal/Module.lean,Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean,Mathlib/LinearAlgebra/Coevaluation.lean,Mathlib/LinearAlgebra/Contraction.lean,Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/Trace.lean,Mathlib/RepresentationTheory/Rep.lean 13 16 ['eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'themathqueen'] jcommelin
assignee:jcommelin
0-32380
8 hours ago
0-60898
16 hours ago
3-36814
3 days
27645 bjornsolheim
author:bjornsolheim
feat(Geometry/Convex/Cone): add pointed cone tensor products Define the minimal and maximal tensor product of pointed cones. Prove that the minimal tensor product is less than or equal to the maximal tensor product. --- - [ ] depends on: #25292 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry new-contributor 123/0 Mathlib.lean,Mathlib/Geometry/Convex/Cone/TensorProduct.lean 2 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] YaelDillies
assignee:YaelDillies
0-32377
8 hours ago
8-68010
8 days ago
8-69812
8 days
29279 Jlh18
author:Jlh18
feat: free groupoid on a category, free-forgetful adjunction - define `CategoryTheory.Category.FreeGroupoid` in a file of the same name - show the universal property of this construction, as the initial category localizing all maps in the category. These are the defs `of`, `lift`, and their related theorems - Show that this construction is functorial `CategoryTheory.Category.FreeGroupoid.map` - Convert this to a functor `CategoryTheory.Category.Grpd.free` from `Cat` to `Grpd`, and show that it is left adjoint to the forgetful functor - `CategoryTheory.Grpd.freeForgetAdjunction` - [ ] depends on: #29278 - [ ] depends on: #30115 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import new-contributor t-category-theory 293/6 Mathlib.lean,Mathlib/CategoryTheory/Category/FreeGroupoid.lean,Mathlib/CategoryTheory/Groupoid.lean,Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean,Mathlib/CategoryTheory/Localization/Construction.lean,Mathlib/CategoryTheory/Localization/Predicate.lean,Mathlib/CategoryTheory/MorphismProperty/Basic.lean 7 14 ['Jlh18', 'MichaelStollBayreuth', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] adamtopaz
assignee:adamtopaz
0-32376
8 hours ago
7-64285
7 days ago
30-58893
30 days
30398 joelriou
author:joelriou
feat(Algebra/Category/ModuleCat/Sheaf): `O_S ⟶ f_* O_X` and `f^* O_S ≅ O_X` --- - [x] depends on: #30403 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry t-category-theory 193/4 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackContinuous.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackFree.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean 5 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-32375
8 hours ago
7-70417
7 days ago
7-70413
7 days
30416 SnirBroshi
author:SnirBroshi
feat(Logic/Relation): lemmas relating `Relation.Map` and `Function.onFun` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 32/0 Mathlib/Logic/Relation.lean 1 1 ['github-actions'] nobody
0-32374
8 hours ago
18-51178
18 days ago
18-53407
18 days
30620 plp127
author:plp127
feat: copy LE and LT on preorder and partial order Adds `Preorder.copy` and `PartialOrder.copy` for replacing the le and lt with provably equal ones. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 22/0 Mathlib/Order/Defs/PartialOrder.lean 1 1 ['github-actions'] Vierkantor
assignee:Vierkantor
0-32372
8 hours ago
12-41952
12 days ago
12-41997
12 days
30648 loefflerd
author:loefflerd
feat(NumberTheory/ModularForms): define the strict width of a subgroup We define the periods of a subgroup of GL(2, R) to be the `x` such that `!![1, x; 0, 1]` is in the subgroup, and the *strict width* to be the unique positive generator of this subgroup (when it exists). This is a variant of a more familiar modular-forms concept, the *width*, which is the least positive `x` such that `± !![1, x; 0, 1]` is in the subgroup (note signs `±`). However, the strict width is the concept that's relevant for q-expansions. --- Carved off from the WIP PR #30089. - [x] depends on: #30461 - [x] depends on: #30471 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 127/2 Mathlib/NumberTheory/ModularForms/Cusps.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] alreadydone
assignee:alreadydone
0-32371
8 hours ago
0-41088
11 hours ago
0-41989
11 hours
30716 YaelDillies
author:YaelDillies
feat(Algebra/Module/Torsion): more instances Split `Algebra.Module.Torsion` into `Algebra.Module.Torsion.Free` for torsion-free modules and `Algebra.Module.Torsion.Basic` for torsion modules. Add prod and pi instances, as well as pullback instances and the fact that a torsion-free module over a char zero domain is a torsion-free group. --- - [x] depends on: #30713 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed 212/54 Mathlib.lean,Mathlib/Algebra/CharP/LinearMaps.lean,Mathlib/Algebra/Lie/Weights/RootSystem.lean,Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Module/Torsion/Field.lean,Mathlib/Algebra/Module/Torsion/Free.lean,Mathlib/Algebra/Module/Torsion/Pi.lean,Mathlib/Algebra/Module/Torsion/Prod.lean,Mathlib/Algebra/Polynomial/Module/FiniteDimensional.lean,Mathlib/LinearAlgebra/Dimension/Torsion/Basic.lean,Mathlib/LinearAlgebra/Dimension/Torsion/Finite.lean,Mathlib/LinearAlgebra/Reflection.lean,Mathlib/LinearAlgebra/RootSystem/Chain.lean,Mathlib/LinearAlgebra/Semisimple.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean,Mathlib/NumberTheory/NumberField/FractionalIdeal.lean,Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean,Mathlib/NumberTheory/RamificationInertia/Unramified.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/Flat/TorsionFree.lean,Mathlib/RingTheory/HopkinsLevitzki.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/LocalRing/Module.lean,Mathlib/RingTheory/Regular/IsSMulRegular.lean 25 2 ['github-actions', 'mathlib4-dependent-issues-bot'] bryangingechen
assignee:bryangingechen
0-32371
8 hours ago
0-80466
22 hours ago
0-82514
22 hours
30745 astrainfinita
author:astrainfinita
chore(Data/Nat/{Factorial, Choose}/Cast): move lemmas about `Polynomial` The remaining lemmas in the files are unrelated to `ascPochhammer` and `descPochhammer`. This significantly reduces the imports. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 57/44 Mathlib/Analysis/SpecialFunctions/Pochhammer.lean,Mathlib/Data/Nat/Choose/Cast.lean,Mathlib/Data/Nat/Factorial/Cast.lean,Mathlib/RingTheory/Polynomial/Pochhammer.lean 4 1 ['github-actions'] RemyDegenne
assignee:RemyDegenne
0-32370
8 hours ago
8-69
8 days ago
8-46
8 days
30754 Jlh18
author:Jlh18
feat (CategoryTheory/Comma/Over/Pushforward): define pushforwards Define what it means to be a pushforward, what it means to have pushforwards, and the pullback/pushforward adjunction when all pushforwards exist. This is related to PRs #30375 and PR #29810 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory RFC 99/2 Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Comma/Over/Pushforward.lean 3 2 ['github-actions', 'joelriou'] nobody
0-32368
8 hours ago
7-51550
7 days ago
7-60996
7 days
30943 jsm28
author:jsm28
feat(Analysis/SpecialFunctions/Trigonometric/Angle): angles adding to 0 mod π Add lemmas that if two angles with the same nonzero sign add to 0 mod π, then the absolute values of the corresponding real numbers obtained with `toReal` (unoriented angles) add to π. --- Feel free to golf. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 38/0 Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean 1 9 ['github-actions', 'qawbecrdtey'] nobody
0-30842
8 hours ago
2-52361
2 days ago
2-52340
2 days
30429 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity): a graph is either connected or its complement is --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 17/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean 1 1 ['github-actions'] YaelDillies
assignee:YaelDillies
0-29379
8 hours ago
18-18511
18 days ago
18-18546
18 days
31039 kim-em
author:kim-em
feat: tryAtEachStep linters run on a fraction of goals This PR allows us to run the `tryAtEachStep` linters on a deterministic fraction of all Mathlib goals, to enable faster benchmarks. t-meta 36/16 Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/tryAtEachStep.lean 2 1 ['github-actions'] nobody
0-28059
7 hours ago
0-28068
7 hours ago
0-28108
7 hours
26857 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra): define associated graded structure for abelian group In this PR we define the associated graded structure for abelian group when given a filtration and only give some basic lemmas about it. Further results would be given in #26858 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) migrated from #22631 t-algebra
label:t-algebra$
153/0 Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean 2 13 ['Thmoas-Guan', 'chrisflav', 'github-actions', 'mathlib4-merge-conflict-bot'] chrisflav
assignee:chrisflav
0-26463
7 hours ago
46-24070
1 month ago
18-81638
18 days
26212 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra): the Rees theorem for depth In this PR we proved the Rees theorem for depth. Co-authored-by: Hu Yongle --- - [ ] depends on: #27416 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-algebra
label:t-algebra$
409/22 Mathlib.lean,Mathlib/Algebra/Category/Grp/Preadditive.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Linear.lean,Mathlib/Algebra/Homology/DerivedCategory/Linear.lean,Mathlib/CategoryTheory/Shift/ShiftedHom.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean 9 n/a ['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-25961
7 hours ago
unknown
unknown
26219 Thmoas-Guan
author:Thmoas-Guan
feat(RingTheory/KrullDimension): Krull Dimension of quotient regular sequence We show that if M is a finite module over a Noetherian local ring R, [r₁, …, rₙ] is an M-sequence, then dim M⧸(r₁, …, rₙ)M + n = dim M. Co-authored-by: Yongle Hu @mbkybky --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 225/15 Mathlib.lean,Mathlib/LinearAlgebra/Quotient/Basic.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean,Mathlib/RingTheory/Jacobson/Ideal.lean,Mathlib/RingTheory/KrullDimension/Module.lean,Mathlib/RingTheory/KrullDimension/Regular.lean,Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean,Mathlib/RingTheory/Nakayama.lean,Mathlib/RingTheory/Support.lean 9 n/a ['Thmoas-Guan', 'chrisflav', 'github-actions', 'leanprover-community-bot-assistant', 'mbkybky'] chrisflav
assignee:chrisflav
0-22718
6 hours ago
unknown
unknown
30842 kim-em
author:kim-em
feat: add Aristotle task for command palette --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CI 135/6 .vscode/tasks.json,scripts/README.md,scripts/aristotle/README.md,scripts/lint-style.lean 4 14 ['eric-wieser', 'euprunin', 'github-actions', 'kim-em', 'vikram-shanker'] nobody
0-16021
4 hours ago
5-21731
5 days ago
5-21771
5 days
31044 kim-em
author:kim-em
chore: deprecation in LongestPole utility 1/1 LongestPole/Main.lean 1 1 ['github-actions'] nobody
0-15962
4 hours ago
0-16028
4 hours ago
0-16005
4 hours
30771 dagurtomas
author:dagurtomas
chore(CategoryTheory): move `Closed` directory into `Monoidal` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed 34/34 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean,Mathlib/CategoryTheory/Distributive/Monoidal.lean,Mathlib/CategoryTheory/Limits/Sifted.lean,Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean,Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/CategoryTheory/Monoidal/Closed/Enrichment.lean,Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Complete.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Groupoid.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorToTypes.lean,Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean,Mathlib/CategoryTheory/Monoidal/Closed/Types.lean,Mathlib/CategoryTheory/Monoidal/Closed/Zero.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean,Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean,Mathlib/CategoryTheory/Monoidal/Subcategory.lean,Mathlib/CategoryTheory/Preadditive/Projective/Internal.lean,Mathlib/CategoryTheory/Sites/CartesianClosed.lean,Mathlib/CategoryTheory/Sites/Monoidal.lean,Mathlib/Condensed/CartesianClosed.lean,Mathlib/Condensed/Light/CartesianClosed.lean 25 3 ['github-actions', 'mathlib4-merge-conflict-bot'] nobody
0-15524
4 hours ago
0-19862
5 hours ago
7-4407
7 days
31043 kim-em
author:kim-em
experiment: remove unneeded shortcut instances t-ring-theory 0/33 Mathlib/RingTheory/Kaehler/Basic.lean 1 4 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] nobody
0-13849
3 hours ago
0-13849
3 hours ago
0-17114
4 hours
30473 CoolRmal
author:CoolRmal
feat(ComplexAnalysis): Cauchy's Integral Formula for Higher Order Derivatives This PR adds the following `iteratedDeriv_eq_smul_circleIntegral` and `norm_iteratedDeriv_le_aux`. The first one expresses the `n`-th order derivative of a differentiable function as a circle integral. The second one proves an estimate for the `n`-th order derivative. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Cauchy's.20integral.20formula --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 124/6 Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/Analysis/Complex/Liouville.lean,Mathlib/Analysis/Complex/LocallyUniformLimit.lean 3 16 ['CoolRmal', 'github-actions', 'loefflerd', 'wwylele'] ADedecker
assignee:ADedecker
0-12205
3 hours ago
16-51892
16 days ago
16-51924
16 days
30781 joelriou
author:joelriou
feat(CategoryTheory): characterization of `κ`-filtered categories We characterize a concrete characterization of `κ`-filtered categories in terms of the existence of an upper bound of a `κ`-bounded family objects, and the coequalization of a `κ`-bounded family of morphisms between fixed objects. --- - [x] depends on: #30633 - [x] depends on: #30634 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 74/1 Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-9416
2 hours ago
0-9416
2 hours ago
0-9394
2 hours
30727 joelriou
author:joelriou
feat(CategoryTheory/Presentable): presentable objects in `Type` In this file, we show that if `κ : Cardinal.{u}` is a regular cardinal, then `X : Type u` is `κ`-presentable in the category of types iff `HasCardinalLT X κ` holds. --- - [x] depends on: #30633 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 152/0 Mathlib.lean,Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/CategoryTheory/Presentable/Type.lean 3 2 ['github-actions', 'mathlib4-dependent-issues-bot'] nobody
0-9047
2 hours ago
0-9047
2 hours ago
0-10989
3 hours
26374 joelriou
author:joelriou
feat(CategoryTheory): existence of right derived functors using derivability structures In this PR, we formalize an existence theorem for right derived functors which appeared in the article _Structures de dérivabilité_ by Bruno Kahn and Georges Maltsiniotis, Adv. Math. 218 (2008). --- - [x] depends on: #26036 - [ ] depends on: #30382 This PR continues the work from #22508. Original PR: https://github.com/leanprover-community/mathlib4/pull/22508 t-category-theory 307/18 Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean,Mathlib/CategoryTheory/GuitartExact/KanExtension.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean,Mathlib/CategoryTheory/Localization/DerivabilityStructure/PointwiseRightDerived.lean 7 4 ['github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] nobody
0-8593
2 hours ago
0-31698
8 hours ago
4-19935
4 days
30386 joelriou
author:joelriou
feat(CategoryTheory): Guitart exact squares and "base change" for left Kan extensions Given a Guitart exact square `w : T ⋙ R ⟶ L ⋙ B`, we show that under suitable assumptions, the base change morphism `(whiskeringLeft C₁ C₂ D).obj T ⋙ L.lan ⟶ R.lan ⋙ (whiskeringLeft C₃ C₄ D).obj B` is an isomorphism. --- - [x] depends on: #30382 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 69/1 Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/GuitartExact/KanExtension.lean 3 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-8423
2 hours ago
0-8423
2 hours ago
0-20077
5 hours
29543 joelriou
author:joelriou
feat(CategoryTheory): a property of objects is a strong generator if any object is a colimit of objects satisfying the property --- - [x] depends on: #29519 - [x] depends on: #30269 - [x] depends on: #30294 - [x] depends on: #29518 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-category-theory 55/4 Mathlib/CategoryTheory/Generator/Basic.lean,Mathlib/CategoryTheory/Generator/StrongGenerator.lean,Mathlib/CategoryTheory/Presentable/CardinalFilteredPresentation.lean 3 5 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-7618
2 hours ago
0-7618
2 hours ago
0-9294
2 hours
30160 joelriou
author:joelriou
feat(CategoryTheory/ObjectProperty): closure of a property under certain colimits In this PR, we dualize a few notions about `ObjectProperty` and we use this to dualize the main result about limits in #29854 for colimits: given a property `P` of objects in a category `C` and family of categories `J : α → Type _`, we introduce the closure `P.colimitsClosure J` of `P` under colimits of shapes `J a` for all `a : α`, and under certain smallness circumstances, we show that its essentially small. --- - [x] depends on: #29851 - [x] depends on: #29881 - [x] depends on: #29903 - [x] depends on: #29854 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 338/3 Mathlib.lean,Mathlib/CategoryTheory/ObjectProperty/ColimitsClosure.lean,Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean,Mathlib/CategoryTheory/ObjectProperty/LimitsClosure.lean,Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean 6 6 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-7347
2 hours ago
0-7347
2 hours ago
0-7324
2 hours
30069 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph): add lemma `IsTree.dist_ne_of_adj` and necessary lemmas This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 34/0 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean 1 8 ['github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen', 'vlad902'] kmill
assignee:kmill
0-5940
1 hour ago
16-7250
16 days ago
28-56854
28 days
28001 daefigueroa
author:daefigueroa
feat(Dynamics): add results on topologically transitive monoid actions We define topological transitivity for monoid actions on topological spaces, prove basic facts about topologically transitive actions and give some characterizations of topological transitivity. --- This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-dynamics 107/0 Mathlib.lean,Mathlib/Dynamics/Transitive.lean 2 2 ['github-actions', 'mathlib4-merge-conflict-bot'] sgouezel
assignee:sgouezel
0-3344
55 minutes ago
11-2928
11 days ago
11-7483
11 days
30518 euprunin
author:euprunin
chore(Cache): remove "No files to download" message. make `lake exe cache get` less verbose Fixes #27038. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge CI 28/29 Cache/IO.lean,Cache/Requests.lean 2 11 ['YaelDillies', 'euprunin', 'github-actions'] nobody
0-2092
34 minutes ago
12-59799
12 days ago
15-53870
15 days
31048 grunweg
author:grunweg
chore: make MDifferentiableAt.mfderiv_prod an alias. It duplicates a lemma above, but having this name is nice for discoverability. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 2/8 Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean 1 1 ['github-actions'] nobody
0-2009
33 minutes ago
0-2014
33 minutes ago
0-2056
34 minutes
31050 EtienneC30
author:EtienneC30
feat: independence from a stochastic process Prove that a stochastic process $(X\_s)\_{s \in S}$ is independent from a random variable $Y$ if for all $s_1, ..., s_p \in S$ the family $(X_{s_1}, ..., X_{s_p})$ is independent from $Y$. Use this to refactor proofs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 70/34 Mathlib/Probability/Independence/Process.lean 1 1 ['github-actions'] nobody
0-1507
25 minutes ago
0-1649
27 minutes ago
0-1627
27 minutes
30665 alreadydone
author:alreadydone
feat(Algebra): congruence relation respecting SMul --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
197/18 Mathlib.lean,Mathlib/Algebra/Colimit/Module.lean,Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/RingTheory/Finiteness/Cardinality.lean,Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean 6 14 ['ADedecker', 'alreadydone', 'github-actions'] ADedecker
assignee:ADedecker
0-1469
24 minutes ago
0-38149
10 hours ago
10-7990
10 days

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
26765 KiringYJ
author:KiringYJ
feat(MeasureTheory/PiSystem): add π-λ theorem and SetLike instance Add two small features to `MeasureTheory/PiSystem`: 1. SetLike instance `instance : SetLike (DynkinSystem α) (Set α)` This lets us write `s ⊆ d` and `t ∈ d` for a DynkinSystem `d`, matching usual mathlib style. 2. `DynkinSystem.pi_lambda` lemma Classical π‑λ theorem: if a π‑system `s` is contained in a Dynkin system `d`, every set measurable for `σ(s)` is also in `d`. Currently, mathlib exposes this result only indirectly (e.g. via `generateFrom_eq`). Although logically equivalent, it is not obvious at first glance that those lemmas are the π‑λ theorem. The new lemma states the result in its familiar textbook form, so users can recognise and cite it immediately. Both pieces are under 10 lines, term‑mode only, and do not modify existing APIs. No breaking changes. No dependencies. new-contributor t-measure-probability 13/0 Mathlib/MeasureTheory/PiSystem.lean 1 13 ['EtienneC30', 'KiringYJ', 'github-actions', 'ocfnash'] RemyDegenne
assignee:RemyDegenne
82-32381
2 months ago
89-68430
2 months ago
116-56265
116 days
28198 Sebi-Kumar
author:Sebi-Kumar
feat(Analysis/InnerProductSpace/PiL2): Add instances for EuclideanSpace rank and EuclideanSpace being infinite Add an instance for `Fact (Module.finrank 𝕜 (EuclideanSpace 𝕜 (Fin n)) = n)` which is needed to apply [stereographic'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Geometry/Manifold/Instances/Sphere.html#stereographic') to EuclideanSpace. Also add an instance for `Infinite (EuclideanSpace 𝕜 ι)` where `ι` is a nonempty fintype. I wasn't sure if these should go in separate pull requests, but they seemed similar enough to me. Thank you to Kenny Lau for the suggestions at [#mathlib4 > Instances for EuclideanSpace](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Instances.20for.20EuclideanSpace). --- To provide additional context, I am new to contributing to Mathlib, and I am doing so as a part of the Fields Undergraduate Summer Research Program at the University of Western Ontario under the supervision of Chris Kapulkin and Daniel Carranza. My goal is to contribute that the `n`-sphere is simply connected for `n > 1`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 6/0 Mathlib/Analysis/InnerProductSpace/PiL2.lean 1 1 ['github-actions'] urkud
assignee:urkud
72-32373
2 months ago
79-45609
2 months ago
79-45647
79 days
28125 nonisomorphiclinearmap
author:nonisomorphiclinearmap
feat(Combinatorics): basic definition of simplicial complexes This PR introduces the basic definition of a finite (abstract) simplicial complex, located in Mathlib/Combinatorics/SimplicialComplex/Basic.lean. --- This is our first contribution to mathlib. This work was done as part of the Fields Institute Summer Undergraduate Program on formalization in topological combinatorics. Eventually, we aim to formalize Lovasz's proof of the Kneser Conjecture and this is a small stepping stone in that direction. Some other commits will shortly depend on this one. We would like to acknowledge the Fields Institute for Research in Mathematical Sciences for their sponsorship. We would also like to thank our supervisors, Professor Chris Kapulkin and Mr. Daniel Carranza, for their guidance and support throughout this project. We would also like to thank our group members Tom Lindquist and Quang Minh Nguyen for our fruitful discussions. new-contributor t-combinatorics 374/0 Mathlib.lean,Mathlib/Combinatorics/SimplicialComplex/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Category.lean,Mathlib/Combinatorics/SimplicialComplex/FacePoset.lean,Mathlib/Combinatorics/SimplicialComplex/Hom.lean 5 1 ['github-actions'] awainverse
assignee:awainverse
70-32396
2 months ago
81-50865
2 months ago
81-50901
81 days
28186 Sebi-Kumar
author:Sebi-Kumar
feat(Topology/Homotopy/Path): Add IsEquiv instance for Path.Homotopic Add `instance : IsEquiv (Path x₀ x₁) Homotopic` to the library. Allow use of lemmas like `of_eq` when proving two paths are homotopic. --- To provide additional context, I am relatively new to contributing to Mathlib, and I am doing so as a part of the Fields Undergraduate Summer Research Program hosted at the University of Western Ontario and supervised by Chris Kapulkin and Daniel Carranza. My goal is to prove that the `n`-sphere is simply connected for `n > 1`. Also, I am not super familiar with `IsEquiv` and when it should/shouldn't be used. I just wanted to use a lemma like `Path.Homotopic.of_eq` at one point while working on my code, and thought this was the best way to add such a result to the library. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-topology 5/0 Mathlib/Topology/Homotopy/Path.lean 1 4 ['Sebi-Kumar', 'github-actions', 'kckennylau'] PatrickMassot
assignee:PatrickMassot
70-32393
2 months ago
79-63723
2 months ago
79-63763
79 days
27245 rirarika
author:rirarika
feat: multivariate polynomial ring properties about irreducibility --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
88/0 Mathlib.lean,Mathlib/Algebra/MvPolynomial/Irreducible.lean 2 5 ['alreadydone', 'github-actions', 'mbkybky'] alreadydone
assignee:alreadydone
66-65190
2 months ago
103-7236
3 months ago
103-7271
103 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/) new-contributor t-combinatorics 375/0 Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean 2 52 ['b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot'] b-mehta
assignee:b-mehta
53-84846
1 month ago
53-84846
1 month ago
59-71028
59 days
28871 JaafarTanoukhi
author:JaafarTanoukhi
feat(Combinatorics/Digraph): Tournaments Define orientations and tournaments. Related to #26771. Co-authored-by: Rida Hamadani --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 62/0 Mathlib.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Digraph/Tournament.lean 3 5 ['JaafarTanoukhi', 'NotWearingPants', 'Rida-Hamadani', 'github-actions'] kmill
assignee:kmill
34-62043
1 month ago
65-52280
2 months ago
65-52313
65 days
28967 utkuokur
author:utkuokur
refactor(Combinatorics/SimpleGraph/Walk): simplify proof of "support_tail_of_not_nil" The proof of the lemma named "support_tail_of_not_nil" is shortened. Since "support_tail" is not needed anymore, it is removed. @[deprecated (since := "2025-08-26")] sign is added for the removed "support_tail". The library references to "support_tail" are replaced with "support_tail_of_not_nil". To keep [@simp] on "cons_support_tail" and avoid the linter error, the [@simp] of "support_tail_of_not_nil" (previously on "support_tail") is removed. There might be a better way that I am missing, to deal with the linter error. --- Additionally, a merge conflict with `master` was resolved by keeping the generalized `support_tail_of_not_nil` and reintroducing `support_tail` as a deprecated alias for compatibility. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 7/10 Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean 2 3 ['github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen'] awainverse
assignee:awainverse
34-53357
1 month ago
50-47529
1 month ago
63-63440
63 days
26923 oliver-butterley
author:oliver-butterley
feat(Dynamics/BirkhoffSum): add the pointwise ergodic theorem (Birkhoff's) The Pointwise Ergodic Theorem, also known as Birkhoff's Ergodic Theorem. Co-authored-by: Lua Viana Reis - [x] depends on: #26074 - [x] depends on: #26807 - [x] depends on: #26810 - [x] depends on: #26840 - [x] depends on: #26842 - [x] depends on: #26848 - [x] depends on: #26851 - [x] depends on: #26852 - [x] depends on: #26853 - [x] depends on: #27008 - [x] depends on: #28901 Zulip: [PR thread](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2326923.20The.20pointwise.20ergodic.20theorem.20.28Birkhoff's.29/with/527835158) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-dynamics 401/0 Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Pointwise.lean 2 13 ['D-Thomine', 'github-actions', 'leanprover-community-bot-assistant', 'lua-vr', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] urkud
assignee:urkud
26-86299
26 days ago
64-18742
2 months ago
70-74609
70 days
29999 jeremypparker
author:jeremypparker
chore(Analysis/Fourier/AddCircle): remove stale comment --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 0/1 Mathlib/Analysis/Fourier/AddCircle.lean 1 2 ['Ruben-VandeVelde', 'github-actions', 'jeremypparker'] sgouezel
assignee:sgouezel
25-32394
25 days ago
33-1142
1 month ago
33-1175
33 days
26985 agjftucker
author:agjftucker
feat(Analysis/Calculus/Implicit): define implicitFunOfProdDomain This PR continues the work from #16743. Original PR: https://github.com/leanprover-community/mathlib4/pull/16743 --- - [x] depends on: #28352 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 107/4 Mathlib/Analysis/Calculus/Implicit.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] hrmacbeth
assignee:hrmacbeth
22-32394
22 days ago
30-6482
1 month ago
30-8060
30 days
29361 FlAmmmmING
author:FlAmmmmING
feat: Catalan generating function as a formal power series We introduce the Catalan generating function as a formal power series over `ℕ`. ## Main Definitions * `PowerSeries.catalanSeries`: The Catalan generating function as a power series. ## Main Results * `PowerSeries.sum_coeff_X_catalanSeries`: When `n` is a natural number, each term in the sum `coeff i X * catalan (n - i)` is 0 except for `i = 1`. * `PowerSeries.coeff_X_mul_catalanSeries`: The coefficient of `X * catalanSeries` at `X^n` is `catalan (n - 1)` when `n > 0`. * `PowerSeries.catalanSeries_one_add_X_mul_self_sq`: The Catalan generating function satisfies the equation `catalanSeries = 1 + X * catalanSeries ^ 2`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 71/0 Mathlib.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean 2 4 ['Ruben-VandeVelde', 'github-actions', 'wwylele'] kbuzzard
assignee:kbuzzard
21-8991
21 days ago
54-5066
1 month ago
54-5096
54 days
29871 zach1502
author:zach1502
feat(Matrix/Transvection): Gauss pivot determinant identity and pivot preservation This PR adds two lemmas formalizing standard Gaussian pivot identities: * `Matrix.Transvection.listTransvecCol_mul_mul_listTransvecRow_pivot`: After applying the canonical left/right transvection products that clear the last column and row, the pivot (bottom-right) entry of a matrix is unchanged. Marked `@[simp]`. * `Matrix.Transvection.det_eq_detTopLeft_mul_pivot`: If the pivot entry is nonzero, then the determinant of the matrix factors as the determinant of the top-left block times the pivot entry, after performing the canonical transvections. This is the usual Gauss–pivot determinant identity. * Added simple usage tests in `MathlibTest/matrix.lean` to check that the new lemmas are usable by `simp`/`simpa`. --- --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
94/0 Mathlib/LinearAlgebra/Matrix/Transvection.lean,MathlibTest/matrix.lean 2 3 ['github-actions', 'riccardobrasca', 'zach1502'] riccardobrasca
assignee:riccardobrasca
19-56246
19 days ago
36-48676
1 month ago
37-27739
37 days
29744 espottesmith
author:espottesmith
feat(Combinatorics): define directed hypergraphs This PR defines directed hypergraphs: ``` @[ext] structure DiHypergraph (α : Type*) where /-- The vertex set -/ vertexSet : Set α /-- The edge set -/ edgeSet : Set ((Set α) × (Set α)) /-- Each edge is a pair (s, d), where s ⊆ vertexSet and d ⊆ vertexSet -/ edge_src_dst_isSubset_vertexSet' : ∀ ⦃e⦄, e ∈ edgeSet → e.1 ⊆ vertexSet ∧ e.2 ⊆ vertexSet ``` Additional definitions: - tail/head stars and negative/positive stars - some special cases (B-Graph, F-Graph, BF-Graph, and what I'm calling a "non-endless" dihypergraph, where neither the source/tail nor the destination/head are empty) - Vertex and (hyper)edge adjacency - isolated vertices - empty and nonempty dihypergraphs The design employed here is based off of #28613, but this PR does not depend on that one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 391/0 Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean 2 1 ['github-actions'] b-mehta
assignee:b-mehta
19-32392
19 days ago
41-81392
1 month ago
41-81437
41 days
30141 shalliso
author:shalliso
fix(Topology/Baire/Lemmas): fix index type in isMeagre_iUnion The index set ι needs to be of type Sort* instead of type Type* in isMeagre_iUnion otherwise I get the following message when I try to use it: typeclass instance problem is stuck, it is often due to metavariables Countable ?m.27 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-topology 1/1 Mathlib/Topology/GDelta/Basic.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
19-32386
19 days ago
26-45120
26 days ago
26-45154
26 days
29947 JaafarTanoukhi
author:JaafarTanoukhi
feat(Combinatorics/Digraph): Maps Ported `SimpleGraph/Maps.lean` to `Digraph/Maps.lean` for future PRs related to issue #[26771](https://github.com/leanprover-community/mathlib4/issues/26771) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 476/0 Mathlib.lean,Mathlib/Combinatorics/Digraph/Maps.lean 2 1 ['github-actions'] awainverse
assignee:awainverse
18-32402
18 days ago
34-62325
1 month ago
34-62364
34 days
29758 SnirBroshi
author:SnirBroshi
feat(RingTheory/RootsOfUnity): exp(pi * i * q) is a root of unity for rational q --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 28/1 Mathlib/RingTheory/RootsOfUnity/Complex.lean 1 5 ['Ruben-VandeVelde', 'SnirBroshi', 'github-actions', 'kckennylau'] chrisflav
assignee:chrisflav
17-64528
17 days ago
40-37203
1 month ago
40-44203
40 days
30163 SnirBroshi
author:SnirBroshi
feat(Data/Set/Lattice): useful equivalences of `biUnion` and `biInter` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 25/0 Mathlib/Data/Set/Lattice.lean 1 1 ['github-actions'] nobody
17-52776
17 days ago
25-73645
25 days ago
25-73695
25 days
30217 SnirBroshi
author:SnirBroshi
feat(Data/List/GetD): `getD` is surjective iff every element is in the list --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 19/0 Mathlib/Data/List/GetD.lean 1 2 ['github-actions', 'themathqueen'] nobody
17-51296
17 days ago
24-42802
24 days ago
24-42838
24 days
30525 515801431
author:515801431
Polya_counting This PR introduces basic definitions and results about colorings under permutation group actions. A coloring is defined as a function X → Y, and the permutation group Equiv.Perm X acts on colorings by precomposition: (g • c) x = c (g⁻¹ • x) This formalizes the natural action of relabeling the elements of X. Main definitions MulAction (Equiv.Perm X) (X → Y): The action of the permutation group on colorings via precomposition. coloringEquiv (c₁ c₂ : X → Y) : Prop: Two colorings are equivalent if they lie in the same orbit under this action, i.e. ∃ f : Equiv.Perm X, f • c₁ = c₂. Main results smul_eq_iff_mem_stabilizer: Characterizes when two group actions on the same coloring are equal, showing that g • c = f • c ↔ f⁻¹ * g ∈ stabilizer c. coloringEquiv_equivalence: Proves that coloringEquiv defines an equivalence relation on X → Y. orbit_size_eq_index: Reformulates the orbit–stabilizer theorem in the context of colorings: |orbit c| = |Perm X| / |stabilizer c| Motivation These results provide foundational infrastructure for studying Burnside’s lemma and Pólya’s enumeration theorem in Mathlib, where the enumeration of distinct colorings up to symmetry plays a central role. new-contributor t-combinatorics 111/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean 2 2 ['IvanRenison', 'github-actions'] nobody
14-3704
14 days ago
15-26386
15 days ago
15-26424
15 days
28546 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… # Symbolic dynamics on groups: core API and entropy along finite shapes 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). new-contributor t-dynamics 751/0 Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/ToAdditive/GuessName.lean 3 84 ['Sfgangloff', 'eric-wieser', 'github-actions', 'kckennylau', 'sgouezel'] sgouezel
assignee:sgouezel
13-65514
13 days ago
13-65514
13 days ago
57-83044
57 days
30158 nicolaviolette
author:nicolaviolette
feat: combinatorics simplegraph basic --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 9/4 Mathlib/Combinatorics/SimpleGraph/Basic.lean 1 1 ['github-actions'] b-mehta
assignee:b-mehta
13-32383
13 days ago
25-84539
25 days ago
25-84573
25 days
30637 strihanje01
author:strihanje01
feat(Combinatorics/SetFamily/Lindstrom): Lindstrom's theorem for subfamilies with equal unions add Lindstrom's theorem and its strengthening for equal intersections --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 210/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/Lindstrom.lean 2 1 ['github-actions'] nobody
10-52313
10 days ago
11-59643
11 days ago
11-59689
11 days
30315 SnirBroshi
author:SnirBroshi
feat(Topology/Connected/LocPathConnected): convenience lemma for `LocPathConnected` + `ConnectedSpace` → `PathConnectedSpace` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) awaiting-bench new-contributor t-topology 5/3 Mathlib/Topology/Connected/LocPathConnected.lean 1 12 ['SnirBroshi', 'github-actions', 'j-loreaux', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] PatrickMassot
assignee:PatrickMassot
4-64023
4 days ago
11-30235
11 days ago
20-78847
20 days
30224 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Hamiltonian): `p.support.get` is bijective --- - [x] depends on: #30223 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 7/0 Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean 1 2 ['github-actions', 'mathlib4-dependent-issues-bot'] kim-em
assignee:kim-em
10-14986
10 days ago
17-39476
17 days ago
17-40432
17 days
30041 josephmckinsey
author:josephmckinsey
feat(Algebra/Order/Floor): generalize mul_floor_div theorems to rings and semirings Generalize `mul_cast_floor_div_cancel` from `Field` and `Semifield` to `Ring` and `Semiring`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
43/31 Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semifield.lean,Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Analysis/Real/OfDigits.lean 4 10 ['Ruben-VandeVelde', 'github-actions', 'josephmckinsey'] joneugster
assignee:joneugster
9-32373
9 days ago
17-30469
17 days ago
17-65470
17 days
30424 maksym-radziwill
author:maksym-radziwill
feat(Analysis.Complex): Borel-Caratheodory theorem, part of PrimeNumberTheoremAnd+ upstreaming This PR adds a proof of the [Borel-Caratheodory theorem](https://en.wikipedia.org/wiki/Borel%E2%80%93Carath%C3%A9odory_theorem) following the [blueprint](https://alexkontorovich.github.io/PrimeNumberTheoremAnd/web/sect0004.html#a0000000021) of the [PrimeNumberTheoremAnd+](https://github.com/AlexKontorovich/PrimeNumberTheoremAnd/) project. This is part of the ongoing effort to upstream the StrongPNT version of the PrimeNumberTheoremAnd+ project into mathlib4. See also the [Zullip discussion](https://leanprover.zulipchat.com/#narrow/channel/423402-PrimeNumberTheorem.2B/topic/Merging.20with.20Morph/with/544246433) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 424/0 Mathlib.lean,Mathlib/Analysis/Complex/BorelCaratheodory.lean,docs/1000.yaml,docs/references.bib 4 7 ['Ruben-VandeVelde', 'github-actions', 'maksym-radziwill', 'wwylele'] grunweg
assignee:grunweg
9-32372
9 days ago
17-21536
17 days ago
18-39321
18 days
28818 SnirBroshi
author:SnirBroshi
feat(Data/Setoid/Basic): add theorems about lifting a function to its kernel Currently `ker_lift_injective` and `quotientKerEquivOfRightInverse` lift `f` to `ker f` in their definition. This PR makes this function available as `Setoid.kerLift f` and adds a few more theorems about it. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data maintainer-merge new-contributor 34/16 Counterexamples/AharoniKorman.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/Topology/Separation/Hausdorff.lean 4 32 ['SnirBroshi', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'pechersky'] pechersky
assignee:pechersky
8-64137
8 days ago
8-64137
8 days ago
61-7026
61 days
29362 stepanholub
author:stepanholub
feat:(Data/List) add the notion of period of List and prove the Periodicity Lemma Add the concept of the period of a List (word, sequence) which is missing, and prove its basic nontrivial property describing under which conditions list can have two periods known as the Periodicity Lemma (aka Fine-Wilf Theorem). --- t-data new-contributor 227/0 Mathlib.lean,Mathlib/Data/List/PeriodicityLemma.lean 2 125 ['Ruben-VandeVelde', 'Timeroot', 'fpvandoorn', 'github-actions', 'madvorak', 'plp127', 'stepanholub', 'wwylele'] pechersky
assignee:pechersky
8-32381
8 days ago
34-53837
1 month ago
52-50034
52 days
30344 Deep0Thinking
author:Deep0Thinking
feat(MeasureTheory/Integral): add versions of `exists_eq_interval_average` and first mean value theorem for integrals Add the First mean value theorem for (unordered) interval integrals on ℝ. - `exists_eq_const_mul_interval_integral_of_continuous_on_of_ae_nonneg` - `exists_eq_const_mul_interval_integral_of_continuous_on_of_nonneg` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 290/41 Mathlib.lean,Mathlib/MeasureTheory/Integral/IntervalAverage.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean 3 9 ['Deep0Thinking', 'github-actions', 'plp127'] RemyDegenne
assignee:RemyDegenne
8-28322
8 days ago
20-49747
20 days ago
20-49780
20 days
30400 Equilibris
author:Equilibris
feat(Data/PFunctor): make M.corec' universe generic Previously `corec'` required the generating type reside in the same universe as the constructed object. This change corrects this by separating the universes. As corec takes the parameter (g : β → P (α ::: β)), (where α is a TypeVec.{u} and β is a Type u) it is forced into the same universe by how the TypeVec construction works. This means corec cant be generalised by this construction. --- A super simple change to make `corec'` univ generic. ```lean -- was def MvPFunctor.M.corec'.{u} {n : ℕ} (P : MvPFunctor.{u} (n + 1)) {α : TypeVec.{u} n} {β : Type u} (g₀ : β → P.A) (g₁ : (b : β) → P.drop.B (g₀ b) ⟹ α) (g₂ : (b : β) → P.last.B (g₀ b) → β) : β → P.M α := _ -- becomes def MvPFunctor.M.corec'.{u, v} {n : ℕ} (P : MvPFunctor.{u} (n + 1)) {α : TypeVec.{u} n} {β : Type v} (g₀ : β → P.A) (g₁ : (b : β) → P.drop.B (g₀ b) ⟹ α) (g₂ : (b : β) → P.last.B (g₀ b) → β) : β → P.M α := _ ``` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor easy 5/5 Mathlib/Data/PFunctor/Multivariate/M.lean 1 6 ['Equilibris', 'alexkeizer', 'github-actions', 'vihdzp'] nobody
7-84619
7 days ago
18-72225
18 days ago
18-72269
18 days
29728 ADA-Projects
author:ADA-Projects
feat(Topology/KrullDimension): add subspace dimension inequality This PR proves that subspaces have Krull dimension at most that of the ambient space: dim(Y) ≤ dim(X) for Y ⊆ X (theorem topologicalKrullDim_subspace_le). Supporting results about IrreducibleCloseds were refactored and moved from KrullDimension.lean to Closeds.lean for better modularity. Note: Some code/documentation generated with AI assistance (Gemini). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge new-contributor t-topology 63/30 Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Sets/Closeds.lean 2 46 ['ADA-Projects', 'erdOne', 'fpvandoorn', 'github-actions', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] erdOne
assignee:erdOne
7-821
7 days ago
8-40010
8 days ago
29-74123
29 days
26453 jburroni
author:jburroni
feat(Data/PNat/Basic): add order-related instances to PNat Add `SuccAddOrder ℕ+` and `NoMaxOrder ℕ+` instances. This allows, for example, the use of lemmas related to `Intervals` built with ℕ+. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 29/0 Mathlib.lean,Mathlib/Data/PNat/Order.lean 2 18 ['Ruben-VandeVelde', 'eric-wieser', 'github-actions', 'jburroni', 'kckennylau', 'vihdzp'] ericrbg
assignee:ericrbg
6-50617
6 days ago
6-50851
6 days ago
107-71698
107 days
28766 yury-harmonic
author:yury-harmonic
feat(Nat/Factorial): use binary splitting for `ascFactorial`/`descFactorial` Mathlib has a `@[csimp]` lemma for `Nat.factorial`. This PR adds similar lemmas for `Nat.ascFactorial` and `Nat.descFactorial`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 49/25 Mathlib/Data/Nat/Factorial/Basic.lean 1 7 ['github-actions', 'pechersky', 'plp127', 'yury-harmonic'] pechersky
assignee:pechersky
6-26188
6 days ago
7-50845
7 days ago
52-5837
52 days
26129 LessnessRandomness
author:LessnessRandomness
feat(Geometry/Euclidean/Angle/Unoriented): triangle inequality for angles This PR continues the work from #24206. Original PR: https://github.com/leanprover-community/mathlib4/pull/24206 new-contributor t-euclidean-geometry 202/15 Mathlib.lean,Mathlib/Analysis/Fourier/FiniteAbelian/Orthogonality.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean 8 85 ['JovanGerb', 'LessnessRandomness', 'Timeroot', 'github-actions', 'jsm28', 'mathlib4-merge-conflict-bot', 'themathqueen'] jsm28
assignee:jsm28
5-75120
5 days ago
8-61369
8 days ago
129-43944
129 days
30821 chriseth
author:chriseth
fix(Computability/Tape): introduce write-simplification theorem that uses `ListBlank.mk` Add a simplification theorem which is a version of `Tape.write_mk'` that solves a simplification dead-end: If we have an expression of the form `(Tape.mk' L (ListBlank.cons a (ListBlank.mk R))).write b`, the theorem `Tape.write_mk'` would be applicable, but lean instead uses `ListBlank.cons_mk`, which turns it into `(Tape.mk' L (ListBlank.mk (a :: R))).write b` and makes `Tape.write_mk` no longer applicable because it requires `ListBlank.cons a R`, reaching a dead-end. This PR adds an equivalent theorem whose LHS allows `ListBlank.mk (a :: R)`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor 7/0 Mathlib/Computability/Tape.lean 1 1 ['github-actions'] nobody
5-69150
5 days ago
5-69159
5 days ago
5-69202
5 days
30782 chenson2018
author:chenson2018
chore(ModelTheory/PartialEquiv): use grind for `le_partialEquivLimit` adaptation_note An adaption note in `FirstOrder.Language.DirectLimit.le_partialEquivLimit` notes two consecutive `simp` that cannot be combined. Replacing with `grind` solves this problem. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 2/5 Mathlib/ModelTheory/PartialEquiv.lean 1 6 ['chenson2018', 'github-actions', 'grunweg'] nobody
5-66465
5 days ago
5-66465
5 days ago
6-75587
6 days
29437 SnirBroshi
author:SnirBroshi
feat(Data/Seq): add Seq.subsequence and prove basic theorems about it I added `Seq.subsequence` to compose a sequence with a monotone function, creating a subsequence. Aliased to `Seq.comp` since it's a composition. I also added `Nat.le_induction_step_iff` which is needed to prove a subsequence is a sequence. This proves the comment at the top of `Defs.lean` that says "if `f n = none`, then `f m = none` for all `m ≥ n`" while `IsSeq` only talks about `n+1`. For completion I added the same statement for `Int`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-data new-contributor 104/0 Mathlib/Data/Int/Init.lean,Mathlib/Data/Nat/Init.lean,Mathlib/Data/Seq/Basic.lean,Mathlib/Data/Seq/Defs.lean 4 2 ['github-actions', 'mathlib4-merge-conflict-bot'] pechersky
assignee:pechersky
5-32398
5 days ago
41-79601
1 month ago
50-67090
50 days
28728 or4nge19
author:or4nge19
feat(PerronFrobenius): introduce Irreducible and Primitive Matrices and relations to Quiver This PR develops a graph-theoretic interface for studying nonnegative square matrices over `R` through the quiver formed by their strictly positive entries. It shows the equivalence between positivity of suitable matrix powers and existence of directed paths in this quiver. ------------ - [ ] depends on: #28696 - [ ] depends on:#29754 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 274/1 Mathlib.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean,docs/references.bib 4 39 ['github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash', 'or4nge19'] ocfnash
assignee:ocfnash
4-65711
4 days ago
4-66471
4 days ago
15-4040
15 days
30354 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity/WalkCounting): a spanning subgraph has the same or more connected components --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 8/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean 2 4 ['SnirBroshi', 'github-actions', 'ocfnash'] nobody
4-64447
4 days ago
4-64447
4 days ago
20-10538
20 days
30391 rudynicolop
author:rudynicolop
feat(Data/List): list splitting definitions and lemmas This PR continues the work from #24395. Original PR: https://github.com/leanprover-community/mathlib4/pull/24395 t-data new-contributor 151/2 Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/List/TakeDrop.lean 2 4 ['BoltonBailey', 'github-actions', 'rudynicolop'] nobody
4-23059
4 days ago
19-38959
19 days ago
19-38997
19 days
30609 FlAmmmmING
author:FlAmmmmING
feat(Combinatorics/Enumerative/Catalan.lean): Add definition of large and small Schroder. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 128/1 Mathlib/Combinatorics/Enumerative/Catalan.lean 1 1 ['github-actions'] nobody
4-233
4 days ago
12-72977
12 days ago
12-73021
12 days
30881 FlAmmmmING
author:FlAmmmmING
feat(RingTheory/PowerSeries/Schroder.lean) : Define the generating function for large and small Schroder number Define the generating function for large and small Schroder number. Main result : Prove some lemmas and the generating function of large Schroder. Todo : Prove the generating function of small Schroder. - depends on: #30609 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 349/1 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/RingTheory/PowerSeries/Schroder.lean 3 1 ['github-actions'] nobody
3-74759
3 days ago
3-80653
3 days ago
3-80643
3 days
29253 FernandoChu
author:FernandoChu
feat(CategoryTheory): (Co)limits in preorders Characterize (co)limits in preorders as glbs/lubs, plus some other instances. large-import new-contributor t-category-theory 162/45 Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean,Mathlib/CategoryTheory/Discrete/Basic.lean,Mathlib/CategoryTheory/Limits/Preorder.lean,Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean,Mathlib/CategoryTheory/Limits/Shapes/Preorder/Fin.lean,Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/InfSemilattice.lean,Mathlib/CategoryTheory/Sites/Plus.lean 9 19 ['FernandoChu', 'github-actions', 'joelriou'] joelriou
assignee:joelriou
3-61409
3 days ago
4-55029
4 days ago
47-17981
47 days
30232 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): add `ConnectedComponent.toSubgraph` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 43/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 3 19 ['SnirBroshi', 'YaelDillies', 'github-actions'] YaelDillies
assignee:YaelDillies
3-60118
3 days ago
3-60118
3 days ago
23-27315
23 days
27953 CoolRmal
author:CoolRmal
feat(ProbabilityTheory): Conditional Jensen's Inequality This PR adds conditional Jensen's inequality. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 526/10 Mathlib.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean 5 4 ['EtienneC30', 'github-actions', 'mathlib4-merge-conflict-bot'] sgouezel
assignee:sgouezel
3-53681
3 days ago
19-25388
19 days ago
27-61822
27 days
30213 SnirBroshi
author:SnirBroshi
feat(Data/List/GetD): golf and add lemmas for `get` and `getElem?` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 18/16 Mathlib/Data/List/GetD.lean 1 11 ['SnirBroshi', 'eric-wieser', 'github-actions', 'themathqueen'] nobody
2-31140
2 days ago
2-31140
2 days ago
23-84575
23 days
30214 SnirBroshi
author:SnirBroshi
feat(Data/List/Basic): add `Fin` variants of `*mem_iff_getElem` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 8/0 Mathlib/Data/List/Basic.lean 1 4 ['SnirBroshi', 'eric-wieser', 'github-actions'] nobody
2-28950
2 days ago
2-78338
2 days ago
24-43737
24 days
29956 SnirBroshi
author:SnirBroshi
feat(Algebra/Polynomial): small and useful lemmas added many small and useful lemmas about polynomials --- Moves these 4 theorems from `Mathlib.Algebra.Polynomial.Monic` to `Mathlib.Algebra.Polynomial.Degree.Lemmas`: - `degree_map_eq_of_injective` - `natDegree_map_eq_of_injective` - `leadingCoeff_map_of_injective` - `nextCoeff_map` `Monic.lean` imports `Lemmas.lean` so users are not affected. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
268/90 Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/Eval/Coeff.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Algebra/Polynomial/Eval/Degree.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/FieldTheory/NormalizedTrace.lean,Mathlib/RingTheory/Trace/Basic.lean 16 69 ['SnirBroshi', 'erdOne', 'github-actions', 'kckennylau', 'leanprover-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] ocfnash
assignee:ocfnash
2-24247
2 days ago
2-25893
2 days ago
30-77712
30 days
30216 SnirBroshi
author:SnirBroshi
feat(Data/List/Basic): `get` is surjective iff every element is in the list --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 16/0 Mathlib/Data/List/Basic.lean 1 13 ['SnirBroshi', 'eric-wieser', 'github-actions', 'themathqueen'] nobody
2-23674
2 days ago
2-28181
2 days ago
23-78693
23 days
29507 zhuyizheng
author:zhuyizheng
feat(MeasureTheory): derivative integrable functions Part of originally planned #29092. We prove that: * If `f` is monotone on `a..b`, then `f'` is interval integrable on `a..b`. * If `f` has bounded variation on `a..b`, then `f'` is interval integrable on `a..b`. * If `f` is absolutely continuous on `a..b`, then `f'` exists a.e. on `a..b` and is interval integrable on `a..b`. --- - [x] depends on: #29504 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import new-contributor t-measure-probability 354/15 Mathlib.lean,Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/LinearAlgebra/AffineSpace/Slope.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/MeasureTheory/Function/L1Space/Integrable.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Slope.lean,Mathlib/Order/Monotone/Defs.lean 9 13 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel', 'zhuyizheng'] nobody
2-13585
2 days ago
6-16578
6 days ago
16-47297
16 days
30962 WangYiran01
author:WangYiran01
feat(Combinatorics/Enumerative): add lattice path lemmas and counts This PR adds definitions and theorems about monotone lattice paths: - Defines `pathCount`, `pathCountFrom`, `SubdiagProp`, and related structures. - Proves closed forms such as `pathCount_eq_closed`. - Adds Dyck/ballot subdiagonal property (`SubdiagProp`). All code builds successfully with `lake build`. new-contributor t-combinatorics 64/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/RecLatticePath.lean 2 1 ['github-actions'] nobody
1-74083
1 day ago
2-8485
2 days ago
2-8527
2 days
29960 yonggyuchoimath
author:yonggyuchoimath
feat(Algebra/Category/Ring): equalizers of pushout maps of tensor product inclusions This PR defines a ring map `S →ₗ[R] S ⊗[R] S : s ↦ (s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)` for an `R`-algebra `S`, and show that its kernel is exactly (the image of) `R` if `S` is faithfully flat over `R`. Changes: * `TensorProduct.AlgebraTensorModule.distribBaseChange`: Origianlly takes `M` and `N`, where `M` is an `R`-module with an additional instance `IsScalarTower R A M`. This is unnecessary, so I changed the `M` and `N` into `N` and `Q`, now both of which are merely modules over `R`. Main results : * Add compatibility of `Algebra.TensorProduct.includeLeft` (or `Algebra.TensorProduct.includeRight`) with `TensorProduct.AlgebraTensorModule.distribBaseChange` and `LinearMap.lTensor` * Define `Algebra.TensorProduct.includeLeftSubRight`, which is the `R`-linear map `S →ₗ[R] S ⊗[R] S` sending `s : S` to `(s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)`. * `Algebra.TensorProduct.exactIncludeLeftSubRight_of_faithfullyFlat`: the pair `algebraMap : R → S` and `includeLeftSubRight R S : S → S ⊗[R] S` is exact if `S` is a faithfully flat `R`-algebra. --- - [x] depends on: #30806 new-contributor 223/1 Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/TensorProduct/IncludeLeftSubRight.lean,Mathlib/RingTheory/TensorProduct/Maps.lean 4 7 ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'yonggyuchoimath'] TwoFX
assignee:TwoFX
1-21305
1 day ago
1-24576
1 day ago
29-6555
29 days
28602 gmcninch-tufts
author:gmcninch-tufts
feat(Algebra/Polynomial/Module): prove equivalence of a certain tensor product with PolynomialModule For a commutative ring `R` and an `R`-module `M`, construct an equivalence between the `R[X]`-modules `R[X] ⊗[R] M` and `PolynomialModule R M`. This equivalence enables application of some base-change results to `PolynomialModule R M` . --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
50/0 Mathlib.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Polynomial/Module/TensorProduct.lean 3 17 ['github-actions', 'gmcninch-tufts', 'kckennylau'] jcommelin
assignee:jcommelin
1-4327
1 day ago
71-67869
2 months ago
71-67905
71 days
30215 SnirBroshi
author:SnirBroshi
feat(Data/List/NodupEquivFin): add equiv with `count = 1` hypothesis --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 8/2 Mathlib/Data/List/NodupEquivFin.lean 1 5 ['SnirBroshi', 'github-actions', 'jcommelin'] nobody
0-52699
14 hours ago
1-564
1 day ago
24-43440
24 days
29652 fmortimore
author:fmortimore
feat(Order): the Bourbaki–Witt theorem We prove the Bourbaki-Witt theorem, one of Wiedijk's 1000+ theorems --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-order 231/0 Mathlib.lean,Mathlib/Order/BourbakiWitt.lean,docs/1000.yaml 3 48 ['Vierkantor', 'eric-wieser', 'fmortimore', 'github-actions', 'wwylele'] Vierkantor
assignee:Vierkantor
0-43189
11 hours ago
0-43189
11 hours ago
31-12405
31 days
31038 rudynicolop
author:rudynicolop
feat(Computability/NFA): NFA acceptsFrom definitions and lemmas This PR defines `NFA.acceptsFrom`, similar to [`DFA.acceptsFrom`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Computability/DFA.html#DFA.acceptsFrom), and provides helper lemmas. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor 71/2 Mathlib/Computability/NFA.lean 1 1 ['github-actions'] nobody
0-33397
9 hours ago
0-34573
9 hours ago
0-34623
9 hours
27645 bjornsolheim
author:bjornsolheim
feat(Geometry/Convex/Cone): add pointed cone tensor products Define the minimal and maximal tensor product of pointed cones. Prove that the minimal tensor product is less than or equal to the maximal tensor product. --- - [ ] depends on: #25292 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry new-contributor 123/0 Mathlib.lean,Mathlib/Geometry/Convex/Cone/TensorProduct.lean 2 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] YaelDillies
assignee:YaelDillies
0-32377
8 hours ago
8-68010
8 days ago
8-69812
8 days
29279 Jlh18
author:Jlh18
feat: free groupoid on a category, free-forgetful adjunction - define `CategoryTheory.Category.FreeGroupoid` in a file of the same name - show the universal property of this construction, as the initial category localizing all maps in the category. These are the defs `of`, `lift`, and their related theorems - Show that this construction is functorial `CategoryTheory.Category.FreeGroupoid.map` - Convert this to a functor `CategoryTheory.Category.Grpd.free` from `Cat` to `Grpd`, and show that it is left adjoint to the forgetful functor - `CategoryTheory.Grpd.freeForgetAdjunction` - [ ] depends on: #29278 - [ ] depends on: #30115 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import new-contributor t-category-theory 293/6 Mathlib.lean,Mathlib/CategoryTheory/Category/FreeGroupoid.lean,Mathlib/CategoryTheory/Groupoid.lean,Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean,Mathlib/CategoryTheory/Localization/Construction.lean,Mathlib/CategoryTheory/Localization/Predicate.lean,Mathlib/CategoryTheory/MorphismProperty/Basic.lean 7 14 ['Jlh18', 'MichaelStollBayreuth', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] adamtopaz
assignee:adamtopaz
0-32376
8 hours ago
7-64285
7 days ago
30-58893
30 days
30416 SnirBroshi
author:SnirBroshi
feat(Logic/Relation): lemmas relating `Relation.Map` and `Function.onFun` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 32/0 Mathlib/Logic/Relation.lean 1 1 ['github-actions'] nobody
0-32374
8 hours ago
18-51178
18 days ago
18-53407
18 days
30429 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity): a graph is either connected or its complement is --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 17/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean 1 1 ['github-actions'] YaelDillies
assignee:YaelDillies
0-29379
8 hours ago
18-18511
18 days ago
18-18546
18 days
30473 CoolRmal
author:CoolRmal
feat(ComplexAnalysis): Cauchy's Integral Formula for Higher Order Derivatives This PR adds the following `iteratedDeriv_eq_smul_circleIntegral` and `norm_iteratedDeriv_le_aux`. The first one expresses the `n`-th order derivative of a differentiable function as a circle integral. The second one proves an estimate for the `n`-th order derivative. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Cauchy's.20integral.20formula --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 124/6 Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/Analysis/Complex/Liouville.lean,Mathlib/Analysis/Complex/LocallyUniformLimit.lean 3 16 ['CoolRmal', 'github-actions', 'loefflerd', 'wwylele'] ADedecker
assignee:ADedecker
0-12205
3 hours ago
16-51892
16 days ago
16-51924
16 days
28001 daefigueroa
author:daefigueroa
feat(Dynamics): add results on topologically transitive monoid actions We define topological transitivity for monoid actions on topological spaces, prove basic facts about topologically transitive actions and give some characterizations of topological transitivity. --- This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-dynamics 107/0 Mathlib.lean,Mathlib/Dynamics/Transitive.lean 2 2 ['github-actions', 'mathlib4-merge-conflict-bot'] sgouezel
assignee:sgouezel
0-3344
55 minutes ago
11-2928
11 days ago
11-7483
11 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
28560 euprunin
author:euprunin
chore(Combinatorics/Quiver): golf entire `lift_spec` using `rfl` ---
Show trace profiling of lift_spec: <10 ms before, <10 ms after 🎉 ### Trace profiling of `lift_spec` before PR 28560 ```diff diff --git a/Mathlib/Combinatorics/Quiver/Symmetric.lean b/Mathlib/Combinatorics/Quiver/Symmetric.lean index 33e371b283..76a3371b36 100644 --- a/Mathlib/Combinatorics/Quiver/Symmetric.lean +++ b/Mathlib/Combinatorics/Quiver/Symmetric.lean @@ -164,6 +164,7 @@ def lift [HasReverse V'] (φ : Prefunctor V V') : | Sum.inl g => φ.map g | Sum.inr g => reverse (φ.map g) +set_option trace.profiler true in theorem lift_spec [HasReverse V'] (φ : Prefunctor V V') : Symmetrify.of.comp (Symmetrify.lift φ) = φ := by fapply Prefunctor.ext ``` ``` ✔ [147/147] Built Mathlib.Combinatorics.Quiver.Symmetric (1.3s) Build completed successfully (147 jobs). ``` ### Trace profiling of `lift_spec` after PR 28560 ```diff diff --git a/Mathlib/Combinatorics/Quiver/Symmetric.lean b/Mathlib/Combinatorics/Quiver/Symmetric.lean index 33e371b283..3adf874946 100644 --- a/Mathlib/Combinatorics/Quiver/Symmetric.lean +++ b/Mathlib/Combinatorics/Quiver/Symmetric.lean @@ -164,13 +164,10 @@ def lift [HasReverse V'] (φ : Prefunctor V V') : | Sum.inl g => φ.map g | Sum.inr g => reverse (φ.map g) +set_option trace.profiler true in theorem lift_spec [HasReverse V'] (φ : Prefunctor V V') : Symmetrify.of.comp (Symmetrify.lift φ) = φ := by - fapply Prefunctor.ext - · rintro X - rfl - · rintro X Y f - rfl + tauto theorem lift_reverse [h : HasInvolutiveReverse V'] (φ : Prefunctor V V') {X Y : Symmetrify V} (f : X ⟶ Y) : ``` ``` ✔ [147/147] Built Mathlib.Combinatorics.Quiver.Symmetric (1.2s) Build completed successfully (147 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-combinatorics easy 2/6 Mathlib/Combinatorics/Quiver/Symmetric.lean 1 1 ['github-actions'] awainverse
assignee:awainverse
19-44353
19 days ago
19-44353
19 days ago
72-60704
72 days
27567 themathqueen
author:themathqueen
feat(LinearAlgebra/TensorProduct/Associator): add `lid` and `assoc` tensor lemmas This adds `TensorProduct.lid_tensor` and `TensorProduct.assoc_tensor`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy
label:t-algebra$
31/2 Mathlib/LinearAlgebra/TensorProduct/Associator.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean 2 2 ['github-actions', 'themathqueen'] mattrobball
assignee:mattrobball
14-77489
14 days ago
79-53969
2 months ago
93-46797
93 days
30515 euprunin
author:euprunin
chore(Data/Nat): golf `findGreatest_eq_iff` using `grind` ---
Show trace profiling of findGreatest_eq_iff: 21 ms before, 39 ms after ### Trace profiling of `findGreatest_eq_iff` before PR 30515 ```diff diff --git a/Mathlib/Data/Nat/Find.lean b/Mathlib/Data/Nat/Find.lean index 4ac5779f75..8e95d6e030 100644 --- a/Mathlib/Data/Nat/Find.lean +++ b/Mathlib/Data/Nat/Find.lean @@ -176,6 +176,7 @@ lemma findGreatest_succ (n : ℕ) : lemma findGreatest_of_not (h : ¬ P (n + 1)) : findGreatest P (n + 1) = findGreatest P n := by simp [Nat.findGreatest, h] +set_option trace.profiler true in lemma findGreatest_eq_iff : Nat.findGreatest P k = m ↔ m ≤ k ∧ (m ≠ 0 → P m) ∧ ∀ ⦃n⦄, m < n → n ≤ k → ¬P n := by induction k generalizing m with ``` ``` ℹ [103/103] Built Mathlib.Data.Nat.Find (710ms) info: Mathlib/Data/Nat/Find.lean:180:0: [Elab.async] [0.021505] elaborating proof of Nat.findGreatest_eq_iff [Elab.definition.value] [0.020637] Nat.findGreatest_eq_iff [Elab.step] [0.020109] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) [Elab.step] [0.020104] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) [Elab.step] [0.020100] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) [Elab.step] [0.014891] by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) [Elab.step] [0.014884] by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] constructor · rintro ⟨hle, hP, hm⟩ refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] · rintro ⟨hle, hP, hm⟩ refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ rintro rfl exact hk (hP k.succ_ne_zero) Build completed successfully (103 jobs). ``` ### Trace profiling of `findGreatest_eq_iff` after PR 30515 ```diff diff --git a/Mathlib/Data/Nat/Find.lean b/Mathlib/Data/Nat/Find.lean index 4ac5779f75..091200bd46 100644 --- a/Mathlib/Data/Nat/Find.lean +++ b/Mathlib/Data/Nat/Find.lean @@ -176,6 +176,7 @@ lemma findGreatest_succ (n : ℕ) : lemma findGreatest_of_not (h : ¬ P (n + 1)) : findGreatest P (n + 1) = findGreatest P n := by simp [Nat.findGreatest, h] +set_option trace.profiler true in lemma findGreatest_eq_iff : Nat.findGreatest P k = m ↔ m ≤ k ∧ (m ≠ 0 → P m) ∧ ∀ ⦃n⦄, m < n → n ≤ k → ¬P n := by induction k generalizing m with @@ -194,16 +195,7 @@ lemma findGreatest_eq_iff : rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] - constructor - · rintro ⟨hle, hP, hm⟩ - refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩ - rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl - exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk] - · rintro ⟨hle, hP, hm⟩ - refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, - fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩ - rintro rfl - exact hk (hP k.succ_ne_zero) + grind lemma findGreatest_eq_zero_iff : Nat.findGreatest P k = 0 ↔ ∀ ⦃n⦄, 0 < n → n ≤ k → ¬P n := by simp [findGreatest_eq_iff] ``` ``` ℹ [103/103] Built Mathlib.Data.Nat.Find (704ms) info: Mathlib/Data/Nat/Find.lean:180:0: [Elab.async] [0.040019] elaborating proof of Nat.findGreatest_eq_iff [Elab.definition.value] [0.039235] Nat.findGreatest_eq_iff [Elab.step] [0.038893] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.038886] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.038881] induction k generalizing m with | zero => rw [eq_comm, Iff.comm] simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp] rintro rfl exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩ | succ k ihk => by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.033287] by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.033279] by_cases hk : P (k + 1) · rw [findGreatest_eq hk] constructor · rintro rfl exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩ · rintro ⟨hle, h0, hm⟩ rcases Decidable.lt_or_eq_of_le hle with hlt | rfl exacts [(hm hlt (le_refl _) hk).elim, rfl] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.022776] · rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.022745] rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.022740] rw [findGreatest_of_not hk, ihk] grind [Elab.step] [0.021688] grind Build completed successfully (103 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-data easy 1/10 Mathlib/Data/Nat/Find.lean 1 1 ['github-actions', 'vihdzp'] nobody
10-58648
10 days ago
10-58648
10 days ago
15-59100
15 days
30400 Equilibris
author:Equilibris
feat(Data/PFunctor): make M.corec' universe generic Previously `corec'` required the generating type reside in the same universe as the constructed object. This change corrects this by separating the universes. As corec takes the parameter (g : β → P (α ::: β)), (where α is a TypeVec.{u} and β is a Type u) it is forced into the same universe by how the TypeVec construction works. This means corec cant be generalised by this construction. --- A super simple change to make `corec'` univ generic. ```lean -- was def MvPFunctor.M.corec'.{u} {n : ℕ} (P : MvPFunctor.{u} (n + 1)) {α : TypeVec.{u} n} {β : Type u} (g₀ : β → P.A) (g₁ : (b : β) → P.drop.B (g₀ b) ⟹ α) (g₂ : (b : β) → P.last.B (g₀ b) → β) : β → P.M α := _ -- becomes def MvPFunctor.M.corec'.{u, v} {n : ℕ} (P : MvPFunctor.{u} (n + 1)) {α : TypeVec.{u} n} {β : Type v} (g₀ : β → P.A) (g₁ : (b : β) → P.drop.B (g₀ b) ⟹ α) (g₂ : (b : β) → P.last.B (g₀ b) → β) : β → P.M α := _ ``` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor easy 5/5 Mathlib/Data/PFunctor/Multivariate/M.lean 1 6 ['Equilibris', 'alexkeizer', 'github-actions', 'vihdzp'] nobody
7-84619
7 days ago
18-72225
18 days ago
18-72269
18 days
29582 YaelDillies
author:YaelDillies
chore: rename `_root_.prop` to `instFiniteProp` This was a surprising name! --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data easy 1/1 Mathlib/Data/Fintype/EquivFin.lean 1 12 ['YaelDillies', 'bryangingechen', 'eric-wieser', 'github-actions', 'grunweg', 'plp127'] nobody
4-80164
4 days ago
4-80164
4 days ago
21-71823
21 days
30866 staroperator
author:staroperator
feat(GroupTheory/Finiteness): well-quasi-ordered monoid must be finitely generated This is a trivial corollary that I forgot to add in #30840. Not an instance, since well-quasi-order is much stronger than finitely generated. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory easy 4/0 Mathlib/GroupTheory/Finiteness.lean 1 1 ['github-actions'] nobody
4-49694
4 days ago
4-49694
4 days ago
4-49846
4 days
31009 ADedecker
author:ADedecker
doc: mention freeness in `IsCancelSMul` Future work: come up with a mechanism for discovering these. I would advocate for a permanently deprecated alias `IsFreeAction` just for that purpose. --- Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Free.20actions/near/546328709 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy documentation
label:t-algebra$
6/2 Mathlib/Algebra/Group/Action/Defs.lean 1 1 ['github-actions'] nobody
0-65563
18 hours ago
0-70347
19 hours ago
0-70388
19 hours
31003 themathqueen
author:themathqueen
feat(Algebra/Star/LinearMap): `star mul' = mul' ∘ TensorProduct.comm` and `star (f ⊗ₘ g) = star f ⊗ₘ star g` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra easy
label:t-algebra$
30/8 Mathlib/Algebra/Star/LinearMap.lean,Mathlib/Algebra/Star/TensorProduct.lean 2 2 ['github-actions', 'themathqueen'] nobody
0-40148
11 hours ago
0-78547
21 hours ago
0-78827
21 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
30107 grunweg
author:grunweg
chore: track occurrences of 'nonrec' as technical debt Matches leanprover-community/leanprover-community.github.io#689: only merge when that is deemed a good idea. -------- TODO: make the count more robust, for instance count all occurrences of "^nonrec " plus those of "^[private|protected] nonrec ". --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt CI 1/0 scripts/technical-debt-metrics.sh 1 1 ['github-actions'] robertylewis
assignee:robertylewis
20-32385
20 days ago
28-5273
28 days ago
28-5251
28 days