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: November 14, 2025 at 07:02 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
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
98-21700
3 months ago
105-57749
3 months ago
132-45580
132 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
97-71877
3 months ago
109-55174
3 months ago
109-55196
109 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
94-21717
3 months ago
157-9027
5 months ago
172-40949
172 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
87-21707
2 months ago
97-43399
3 months ago
98-17892
98 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
86-21715
2 months ago
97-40184
3 months ago
97-40217
97 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
86-21712
2 months ago
95-53042
3 months ago
95-53078
95 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
81-21689
2 months ago
93-3905
3 months ago
93-6603
93 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
78-55072
2 months ago
128-22779
4 months ago
128-22811
128 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
78-49348
2 months ago
186-46713
6 months ago
234-12518
234 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
76-79496
2 months ago
146-30659
4 months ago
146-35258
146 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
74-1339
2 months ago
74-6385
2 months ago
138-63260
138 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
69-74165
2 months ago
69-74165
2 months ago
75-60343
75 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
67-72799
2 months ago
89-79254
2 months ago
89-79283
89 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
61-43011
2 months ago
61-43036
2 months ago
209-30746
209 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
59-80506
1 month ago
183-63543
5 months ago
268-36562
268 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
59-54644
1 month ago
63-49075
2 months ago
147-49112
147 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
56-21701
1 month ago
63-47534
2 months ago
63-48182
63 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
55-33545
1 month ago
67-69497
2 months ago
67-69536
67 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
54-31447
1 month ago
62-51261
2 months ago
62-53543
62 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
52-21707
1 month ago
59-36423
1 month ago
59-36396
59 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
51-35475
1 month ago
59-46426
1 month ago
59-46399
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
50-51362
1 month ago
81-41599
2 months ago
81-41628
81 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
50-21705
1 month ago
57-61662
1 month ago
61-74579
61 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
43-78341
1 month ago
44-64063
1 month ago
143-44469
143 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
43-58434
1 month ago
43-58434
1 month ago
123-59653
123 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
42-75618
1 month ago
80-8061
2 months ago
86-63924
86 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
41-67645
1 month ago
51-56803
1 month ago
58-9437
58 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
40-77890
1 month ago
68-85807
2 months ago
68-85837
68 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
40-76886
1 month ago
154-60299
5 months ago
154-60269
154 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
39-48457
1 month ago
101-75089
3 months ago
142-84490
142 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
39-39310
1 month ago
78-42053
2 months ago
128-27055
128 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
38-21713
1 month ago
45-82201
1 month ago
45-83775
45 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
36-84710
1 month ago
69-80785
2 months ago
69-80811
69 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
36-21704
1 month ago
43-80992
1 month ago
43-80967
43 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
36-21704
1 month ago
43-31960
1 month ago
43-31990
43 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
35-67449
1 month ago
36-21520
1 month ago
36-21554
36 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
35-21711
1 month ago
57-70711
1 month ago
57-70752
57 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
35-14792
1 month ago
68-34628
2 months ago
70-57578
70 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
34-21721
1 month ago
50-51644
1 month ago
50-51679
50 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
30-79261
30 days ago
72-23803
2 months ago
105-85062
105 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
30-75923
30 days ago
56-70583
1 month ago
104-4199
104 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
29-21700
29 days ago
36-76154
1 month ago
36-76626
36 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
28-34973
28 days ago
30-46401
30 days ago
48-13387
48 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
27-54965
27 days ago
43-25907
1 month ago
43-84920
43 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
27-52112
27 days ago
45-48953
1 month ago
47-18454
47 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
27-32796
27 days ago
27-32796
27 days ago
96-85207
96 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
26-69844
26 days ago
36-41385
1 month ago
36-45264
36 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
26-37765
26 days ago
82-70426
2 months ago
144-35711
144 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
26-21669
26 days ago
33-80614
1 month ago
33-80644
33 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
25-26463
25 days ago
58-63442
1 month ago
58-79645
58 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
24-83875
24 days ago
24-84137
24 days ago
48-20598
48 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
24-21700
24 days ago
50-43156
1 month ago
68-39349
68 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
24-17641
24 days ago
36-39066
1 month ago
36-39095
36 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
22-82973
22 days ago
101-48096
3 months ago
116-59407
116 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
22-76643
22 days ago
23-66136
23 days ago
23-66175
23 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
22-21694
22 days ago
39-24398
1 month ago
39-24433
39 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
22-21692
22 days ago
36-53993
1 month ago
36-54026
36 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
22-21687
22 days ago
29-61096
29 days ago
29-61133
29 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
21-75985
21 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
21-75164
21 days ago
21-75164
21 days ago
140-77895
140 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
21-64439
21 days ago
24-50688
24 days ago
145-33260
145 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
21-58469
21 days ago
21-58478
21 days ago
21-58517
21 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
21-21717
21 days ago
67-19662
2 months ago
67-19635
67 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
21-21717
21 days ago
57-68920
1 month ago
66-56405
66 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
20-21708
20 days ago
64-20114
2 months ago
64-20103
64 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
20-5773
20 days ago
48-33858
1 month ago
48-33837
48 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
19-27879
19 days ago
19-31284
19 days ago
19-32004
19 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
19-21697
19 days ago
26-46746
26 days ago
33-66467
33 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
17-55593
17 days ago
32-54823
1 month ago
101-41842
101 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
17-21714
17 days ago
37-77288
1 month ago
37-77317
37 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
17-10624
17 days ago
17-13895
17 days ago
44-82270
44 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
16-84137
16 days ago
16-84159
16 days ago
63-35701
63 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
16-82190
16 days ago
74-41552
2 months ago
74-41685
74 days
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
16-68924
16 days ago
74-40567
2 months ago
143-67153
143 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
16-49952
16 days ago
16-77651
16 days ago
64-31589
64 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
16-21691
16 days ago
28-31271
28 days ago
28-31312
28 days
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
15-81659
15 days ago
15-81659
15 days ago
44-46169
44 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/2 Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean 1 5 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri', 'xroblot'] alexjbest
assignee:alexjbest
15-40952
15 days ago
15-41280
15 days ago
45-68071
45 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'] adamtopaz
assignee:adamtopaz
15-21692
15 days ago
22-38981
22 days ago
22-39021
22 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 13 ['JovanGerb', 'fpvandoorn', 'github-actions'] JovanGerb
assignee:JovanGerb
14-62157
14 days ago
42-51695
1 month ago
42-51670
42 days
30936 themathqueen
author:themathqueen
feat(Data/Int): define `Int.fib`, the Fibonacci numbers on 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 172/0 Mathlib.lean,Mathlib/Data/Int/Fib.lean 2 11 ['Ruben-VandeVelde', 'github-actions', 'themathqueen', 'vihdzp'] nobody
13-74792
13 days ago
17-56421
17 days ago
18-52083
18 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
13-73506
13 days ago
unknown
unknown
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 138/0 Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Topology/MetricSpace/Basic.lean,Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean 3 6 ['github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'pechersky'] urkud
assignee:urkud
13-55955
13 days ago
13-58808
13 days ago
107-7622
107 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 108 ['YaelDillies', 'eric-wieser', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] YaelDillies
assignee:YaelDillies
13-40268
13 days ago
17-64128
17 days ago
51-1976
51 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 109/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean 2 2 ['IvanRenison', 'github-actions'] awainverse
assignee:awainverse
13-21691
13 days ago
31-15705
1 month ago
31-15739
31 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'] mattrobball
assignee:mattrobball
13-21688
13 days ago
22-37296
22 days ago
22-37270
22 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'] alexjbest
assignee:alexjbest
13-21684
13 days ago
20-58384
20 days ago
20-58358
20 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'] mariainesdff
assignee:mariainesdff
13-21682
13 days ago
20-28854
20 days ago
20-35299
20 days
31119 LLaurance
author:LLaurance
feat(Combinatorics/SimpleGraph/Walk): a vertex of a walk is in its tail starting from the second vertex onwards Add helper theorems for https://github.com/leanprover-community/mathlib4/pull/29309 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 10/0 Mathlib/Combinatorics/SimpleGraph/Walk.lean 1 3 ['SnirBroshi', 'github-actions'] nobody
13-3196
13 days ago
13-76266
13 days ago
13-76970
13 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/) 272/47 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 2 ['github-actions', 'mathlib4-merge-conflict-bot'] dupuisf
assignee:dupuisf
12-80403
12 days ago
13-26595
13 days ago
35-38499
35 days
31120 LLaurance
author:LLaurance
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): toSubgraph and Subgraph.map preserve connectivity Add helper theorems for https://github.com/leanprover-community/mathlib4/pull/29309 --- - [ ] depends on : #31118 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 42/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean 1 1 ['github-actions'] nobody
12-72814
12 days ago
13-1467
13 days ago
13-74746
13 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'] urkud
assignee:urkud
12-21695
12 days ago
19-65215
19 days ago
19-70790
19 days
30345 vlad902
author:vlad902
feat(Order): replace the implementation of `Set.chainHeight` `Set.chainHeight` is unused in Mathlib--it was a previous attempt to formalize heights for preorders before `Order.height` came into use. The current implementation `Set.chainHeight` is previously defined for Sets that had an `LT` order but it's behavior was unexpected for relations that were not strict orders, e.g. singleton sets with a reflexive relation would have infinite height. LE is such a relation so this implementation is very limited in what it could be used for. I replace it with an implementation that: - Is defined for arbitrary relations instead of using `[LT]`. - Uses `IsChain` instead of `List.IsChain` for defining chains. This is equivalent for transitive relations, but behaves differently for non- transitive relations--it requires that all elements in the set are comparable instead of just comparability between neighboring elements in the List. This makes the definition better behaved for e.g. reflexive relations and better matches the definition of chain height typically used in the literature. The API has been slimmed down but what remains largely matches the previous API. Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Definitions.20for.20chain.20height.2Fpartitions/near/542823244) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-order 133/292 Mathlib/Order/Height.lean 1 6 ['Vierkantor', 'github-actions', 'mathlib4-merge-conflict-bot', 'vlad902'] b-mehta
assignee:b-mehta
11-31875
11 days ago
11-31875
11 days ago
29-39972
29 days
31178 morrison-daniel
author:morrison-daniel
feat(LinearAlgebra/Multilinear): basis for multilinear maps Adds a basis for MulilinearMap given bases for the domain and codomain. This PR builds upon work started in #25141 toward #11155. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import new-contributor t-algebra
label:t-algebra$
567/10 Mathlib.lean,Mathlib/LinearAlgebra/DFinsupp/PiTensorProduct.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/DirectSum/PiTensorProduct.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basis.lean,Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean,Mathlib/LinearAlgebra/Multilinear/DirectSum.lean,Mathlib/LinearAlgebra/Multilinear/Finsupp.lean,Mathlib/LinearAlgebra/Multilinear/Pi.lean 10 n/a ['github-actions'] nobody
11-31557
11 days ago
unknown
unknown
30363 smmercuri
author:smmercuri
feat: `PadicInt` is isomorphic to the integers of the uniform space completion `(Rat.padicValuation p).Completion` - Uniform and ring isomorphisms between `𝒪[(Rat.padicValuation p).Completion]` and `ℤ_[p]` - A homeomorphism `e : X ≃ Y` gives a closed set `{ x : X | p x ↔ q (e x) }` for clopen subsets given by `p` and `q` - Move `Padic.isUnit_den` to an earlier file to avoid having to import `Padics.RingHoms` unnecessarily --- - [x] depends on: #30361 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 86/21 Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/NumberTheory/Padics/PadicIntegers.lean,Mathlib/NumberTheory/Padics/RingHoms.lean,Mathlib/NumberTheory/Padics/WithVal.lean,Mathlib/Topology/Homeomorph/Defs.lean 5 2 ['github-actions', 'mathlib4-dependent-issues-bot'] dwrensha
assignee:dwrensha
10-73862
10 days ago
35-51846
1 month ago
35-54377
35 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 350/1 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/RingTheory/PowerSeries/Schroder.lean 3 1 ['github-actions'] dwrensha
assignee:dwrensha
10-68346
10 days ago
19-69972
19 days ago
19-69958
19 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 10 ['Rob23oba', 'dwrensha', 'github-actions', 'plp127', 'vasnesterov'] dwrensha
assignee:dwrensha
10-37412
10 days ago
33-58027
1 month ago
33-58058
33 days
31107 rudynicolop
author:rudynicolop
feat(Data/Multiset): add Multiset filter and bind lemmas Add basic lemmas equating `Multiset` `filter`, `filterMap`, `join`, and `bind` operations. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 67/2 Mathlib/Data/Multiset/Bind.lean,Mathlib/Data/Multiset/Filter.lean 2 7 ['Ruben-VandeVelde', 'github-actions', 'rudynicolop'] nobody
10-20409
10 days ago
14-31106
14 days ago
14-31142
14 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 154/2 Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/List/TakeDrop.lean 2 7 ['BoltonBailey', 'github-actions', 'rudynicolop'] nobody
10-19897
10 days ago
35-28278
1 month ago
35-28312
35 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$
107/1 Mathlib/LinearAlgebra/SymmetricAlgebra/Basic.lean,Mathlib/LinearAlgebra/SymmetricAlgebra/Basis.lean 2 13 ['github-actions', 'kckennylau', 'mattrobball', 'xyzw12345'] mattrobball
assignee:mattrobball
9-69261
9 days ago
9-72891
9 days ago
116-8130
116 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'] jcommelin
assignee:jcommelin
9-58811
9 days ago
151-67162
4 months ago
151-67198
151 days
31103 YaelDillies
author:YaelDillies
feat: removing leaves from a connected graph keeps it connected ... using properties of 2-connected components. From the ProofBench workshop --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 78/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Data/List/Nodup.lean 2 6 ['SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions'] nobody
9-53306
9 days ago
9-78826
9 days ago
14-23809
14 days
30639 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity/Connected): `IsBridge` is antitone --- - [x] depends on: #30602 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 6/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean 1 5 ['SnirBroshi', 'b-mehta', 'github-actions', 'mathlib4-dependent-issues-bot'] nobody
9-51730
9 days ago
9-51925
9 days ago
9-62471
9 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 33/4 Mathlib/RingTheory/RootsOfUnity/Complex.lean 1 7 ['Ruben-VandeVelde', 'SnirBroshi', 'chrisflav', 'github-actions', 'kckennylau'] chrisflav
assignee:chrisflav
9-38897
9 days ago
9-38910
9 days ago
55-44770
55 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 8 ['alreadydone', 'dwrensha', 'github-actions', 'j-loreaux', 'plp127'] TwoFX
assignee:TwoFX
9-38543
9 days ago
39-50041
1 month ago
39-50070
39 days
31243 FlAmmmmING
author:FlAmmmmING
feat(Mathlib/Combinatorics/SimpleGraph/Planar.lean): Define the planar graph in mathlib --- [![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/SimpleGraph/Planar.lean 2 5 ['SnirBroshi', 'github-actions'] nobody
9-37486
9 days ago
10-12675
10 days ago
10-12710
10 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 182/2 Mathlib/NumberTheory/ModularForms/Cusps.lean 1 8 ['CBirkbeck', 'github-actions', 'loefflerd', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] alreadydone
assignee:alreadydone
9-35217
9 days ago
16-30407
16 days ago
16-31304
16 days
30181 alreadydone
author:alreadydone
feat(Data/Nat): reducible strong recursion + Redefine `Nat.strongRec'` to allow Lean kernel computation (reduction) with the strong Nat recursor. TODO: maybe merge this with Batteries' `Nat.strongRec`. + Redefine `Nat.xgcd` to use `Nat.strongRec'` to allow kernel reduction. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 46/72 Mathlib/Data/Int/GCD.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Nat/Init.lean 3 4 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] pechersky
assignee:pechersky
9-21697
9 days ago
41-34702
1 month ago
41-40748
41 days
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'] JovanGerb
assignee:JovanGerb
9-21695
9 days ago
17-1212
17 days ago
17-3535
17 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'] b-mehta
assignee:b-mehta
9-21694
9 days ago
27-48962
27 days ago
27-49004
27 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'] b-mehta
assignee:b-mehta
9-21691
9 days ago
24-39439
24 days ago
24-39479
24 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 94/30 Mathlib/RingTheory/Ideal/Prime.lean,Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean,Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean 3 1 ['github-actions'] chrisflav
assignee:chrisflav
9-21687
9 days ago
19-53273
19 days ago
19-53319
19 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'] bryangingechen
assignee:bryangingechen
9-21686
9 days ago
16-62904
16 days ago
16-71769
16 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'] chrisflav
assignee:chrisflav
9-21684
9 days ago
17-32597
17 days ago
17-32698
17 days
30994 kim-em
author:kim-em
feat: `fix_deprecations.py` script CI 131/0 scripts/README.md,scripts/fix_deprecations.py 2 18 ['SnirBroshi', 'github-actions', 'kim-em'] bryangingechen
assignee:bryangingechen
9-21682
9 days ago
16-78180
16 days ago
16-78221
16 days
31011 YuvalFilmus
author:YuvalFilmus
feat: properties of Chebyshev polynomials over the reals Added several properties of the Chebyshev polynomials: - Degrees of T_n, U_n - Leading coefficients of T_n, U_n - Evaluations ofT_n, U_n at the endpoints ±1 - T_n is bounded on [-1, 1], and vice versa - Zeroes of T_n and U_n, and extrema of T_n - Normalized T_n minimizes the maximum absolute value over [-1, 1] for monic polynomials --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 989/5 Mathlib.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Analysis/SpecialFunctions/Arsinh.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/RingTheory/Polynomial/Chebyshev.lean,Mathlib/RingTheory/Polynomial/ChebyshevReal/Basic.lean,Mathlib/RingTheory/Polynomial/ChebyshevReal/Monic.lean 7 22 ['Ruben-VandeVelde', 'YuvalFilmus', 'github-actions', 'plp127'] Vierkantor
assignee:Vierkantor
9-21677
9 days ago
16-55372
16 days ago
16-55399
16 days
26039 tsuki8
author:tsuki8
feat(RingTheory/MvPolynomial/{MonomialOrder,Ideal}): leadingTerm define the leadingTerm and prove some lemmas related to the def `leadingTerm`: the leading term of `f` for the monomial ordering `m` some basic lemmas about leadingTerm including: 1. `leadingTerm_eq_zero_iff` 2. `leadingTerm_image_sdiff_singleton_zero` 3. `leadingTerm_image_insert_zero` 4. `leadingTerm_zero` 5. `leadingTerm_degree_eq` 6. `leadingTerm_degree_eq'` some lemmas about the degree of `f - m.leadingTerm f`: 1. `degree_sub_leadingTerm` 2. `degree_sub_leadingTerm_lt_degree` 3. `degree_sub_leadingTerm_lt_iff` also some lemmas about leading terms and ideals: 1. `span_leadingTerm_sdiff_singleton_zero` 2. `span_leadingTerm_insert_zero` 3. `span_leadingTerm_eq_span_monomial` 4. `span_leadingTerm_eq_span_monomial'` Co-authored-by: Junyu Guo @Hagb --- - [x] depends on: #24361 - [x] depends on: #26148 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import new-contributor 142/1 Mathlib/RingTheory/MvPolynomial/Ideal.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean 2 38 ['Hagb', 'chrisflav', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] chrisflav
assignee:chrisflav
9-14658
9 days ago
9-14658
9 days ago
26-64663
26 days
29354 themathqueen
author:themathqueen
refactor(Algebra/Algebra/Equiv): allow for non-unital `AlgEquiv` This refactors `AlgEquiv` to allow for non-unital algebras. More specifically, we weaken the type class assumptions from: ```lean structure AlgEquiv (R A B : Type*) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] ``` to ```lean structure AlgEquiv (R A B : Type*) [Add A] [Add B] [Mul A] [Mul B] [SMul R A] [SMul R B] ``` Instead of a `commutes'` field, we now have a `map_smul'` field. We also include a definition `AlgEquiv.ofCommutes` which takes in a `RingEquiv` and a `commutes'` field to match before and for convenience. `StarAlgEquiv` now extends `AlgEquiv`. We also generalize a few files to allow for non-unital. I suspect there are a few more things to generalize, but will leave this for later. Co-authored-by: Jireh Loreaux --- Revives #8686. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
560/491 Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Opposite.lean,Mathlib/Algebra/Algebra/Pi.lean,Mathlib/Algebra/Algebra/Prod.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/MulOpposite.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Algebra/TransferInstance.lean,Mathlib/Algebra/Category/AlgCat/Basic.lean,Mathlib/Algebra/Category/CommAlgCat/Basic.lean,Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean,Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/Algebra/DualQuaternion.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Rename.lean,Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Taylor.lean,Mathlib/Algebra/Quaternion.lean,Mathlib/Algebra/SkewMonoidAlgebra/Lift.lean,Mathlib/Algebra/Star/Free.lean,Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/Normed/Lp/LpEquiv.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Data/Matrix/Basic.lean,Mathlib/Data/Matrix/Composition.lean,Mathlib/Data/Matrix/DualNumber.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/Notation.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean,Mathlib/FieldTheory/IntermediateField/Basic.lean,Mathlib/FieldTheory/Normal/Basic.lean,Mathlib/FieldTheory/PrimitiveElement.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/FieldTheory/Separable.lean,Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean,Mathlib/LinearAlgebra/Complex/Module.lean,Mathlib/LinearAlgebra/Matrix/Basis.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean,Mathlib/LinearAlgebra/Matrix/Reindex.lean,Mathlib/LinearAlgebra/Matrix/ToLin.lean,Mathlib/LinearAlgebra/Matrix/Unique.lean,Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean,Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean,Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/Etale/Field.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Flat/Equalizer.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/RingTheory/Frobenius.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Invariant/Profinite.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/Jacobson/Artinian.lean,Mathlib/RingTheory/Jacobson/Ring.lean,Mathlib/RingTheory/Kaehler/Basic.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean,Mathlib/RingTheory/MatrixAlgebra.lean,Mathlib/RingTheory/MvPolynomial/Localization.lean,Mathlib/RingTheory/Norm/Basic.lean,Mathlib/RingTheory/Polynomial/Quotient.lean,Mathlib/RingTheory/PolynomialAlgebra.lean,Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean,Mathlib/RingTheory/RingHom/FiniteType.lean,Mathlib/RingTheory/SimpleModule/Isotypic.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Smooth/Pi.lean,Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean,Mathlib/RingTheory/TensorProduct/Maps.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean,Mathlib/RingTheory/TensorProduct/Pi.lean,Mathlib/RingTheory/TensorProduct/Quotient.lean,Mathlib/RingTheory/Trace/Basic.lean,Mathlib/RingTheory/Unramified/Field.lean,Mathlib/Topology/Algebra/Algebra/Equiv.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean,Mathlib/Topology/LocallyConstant/Algebra.lean,MathlibTest/GalNotation.lean 100 35 ['fpvandoorn', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot', 'themathqueen'] joelriou
assignee:joelriou
8-43875
8 days ago
8-43899
8 days ago
57-61703
57 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 187/42 Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean 2 11 ['erdOne', 'github-actions', 'mariainesdff', 'pechersky'] mariainesdff
assignee:mariainesdff
8-39920
8 days ago
8-39920
8 days ago
33-16217
33 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 5 ['SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] nobody
8-37887
8 days ago
8-37906
8 days ago
40-27052
40 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 12 ['alreadydone', 'github-actions', 'j-loreaux', 'jcommelin', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'urkud'] jcommelin
assignee:jcommelin
8-31202
8 days ago
77-37951
2 months ago
83-65231
83 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 108/6 Mathlib/Computability/NFA.lean 1 23 ['eric-wieser', 'github-actions', 'rudynicolop'] nobody
8-24379
8 days ago
16-23892
16 days ago
16-23939
16 days
30318 joelriou
author:joelriou
feat(Algebra/ModuleCat/Presheaf): composition of pushforwards and pullbacks and compatibilites The composition of two pullback functors on presheaves of modules `pullback φ ⋙ pullback ψ` identifies to the pullback of the composition. We show compatibilites for these isomorphisms: they are deduced from similar identifies for pushforwards (in which case they are `rfl`). --- - [x] depends on: #30335 This PR continues the work from #17589. Original PR: https://github.com/leanprover-community/mathlib4/pull/17589 t-algebra t-algebraic-geometry t-category-theory
label:t-algebra$
121/14 Mathlib/Algebra/Category/ModuleCat/Presheaf/Pullback.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean,Mathlib/CategoryTheory/Adjunction/CompositionIso.lean 3 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
8-21700
8 days ago
15-50422
15 days ago
15-50441
15 days
30696 joelriou
author:joelriou
feat(Order/Category): `PardOrdEmb` has filtered colimits --- - [x] depends on: #30693 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-order 161/2 Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/Order/Category/PartOrdEmb.lean 2 2 ['github-actions', 'mathlib4-dependent-issues-bot'] Vierkantor
assignee:Vierkantor
8-21696
8 days ago
15-72346
15 days ago
15-72373
15 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'] kmill
assignee:kmill
8-21694
8 days ago
23-42155
23 days ago
23-42198
23 days
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 36/36 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.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 27 3 ['github-actions', 'mathlib4-merge-conflict-bot'] dwrensha
assignee:dwrensha
8-21693
8 days ago
16-4913
16 days ago
23-9293
23 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'] b-mehta
assignee:b-mehta
8-21691
8 days ago
21-51039
21 days ago
21-51083
21 days
30827 dagurtomas
author:dagurtomas
feat(Condensed): constructions for light condensed objects can be done 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 36/2 Mathlib/Condensed/Light/Small.lean 1 1 ['github-actions'] joneugster
assignee:joneugster
8-21690
8 days ago
21-49832
21 days ago
21-49871
21 days
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$
212/161 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 17 ['YaelDillies', 'eric-wieser', 'github-actions', 'vihdzp'] jcommelin
assignee:jcommelin
8-21689
8 days ago
16-45429
16 days ago
16-75966
16 days
31054 jsm28
author:jsm28
feat(LinearAlgebra/AffineSpace/Simplex/Basic): faces and `reindex` Add lemmas about the set of vertices of a `face` or `faceOpposite` of `Simplex.reindex`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
14/0 Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean 1 1 ['github-actions'] kim-em
assignee:kim-em
8-21684
8 days ago
15-69240
15 days ago
15-69215
15 days
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 166/2 Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean 3 32 ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'sgouezel', 'winstonyin'] grunweg
assignee:grunweg
8-6508
8 days ago
8-6530
8 days ago
19-63495
19 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/28 Mathlib/Algebra/Quaternion.lean 1 20 ['YaelDillies', 'eric-wieser', 'github-actions'] joneugster
assignee:joneugster
7-79977
7 days ago
24-79039
24 days ago
25-17375
25 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 11 ['FernandoChu', 'dagurtomas', 'github-actions', 'joelriou'] joneugster
assignee:joneugster
7-75651
7 days ago
7-75651
7 days ago
34-57406
34 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'] awainverse
assignee:awainverse
7-59797
7 days ago
34-40497
1 month ago
34-42722
34 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 11 ['Ruben-VandeVelde', 'github-actions', 'josephmckinsey', 'mathlib4-merge-conflict-bot'] joneugster
assignee:joneugster
7-53349
7 days ago
7-53371
7 days ago
33-46635
33 days
28100 themathqueen
author:themathqueen
feat(LinearAlgebra/GeneralLinearGroup): algebra automorphisms in endomorphisms are inner Characterization of automorphisms in endomorphisms of vector spaces: for any algebra automorphism `f : End R V ≃ₐ[R] End R V`, there exists a linear isomorphism `T` such that `f a = T.conj a = T ∘ a ∘ T.symm` for all `a`. This does not suppose finite-dimensionality. Also adds an instance for `Algebra.IsCentral K (Module.End K V)`. --- Technically used Aristotle for showing that `T` is injective (out of curiosity) :) (added as co-author) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
122/3 Mathlib.lean,Mathlib/Algebra/Central/End.lean,Mathlib/FieldTheory/SplittingField/Construction.lean,Mathlib/LinearAlgebra/FreeModule/Basic.lean,Mathlib/LinearAlgebra/FreeModule/Norm.lean,Mathlib/LinearAlgebra/GeneralLinearGroup/AlgEquiv.lean,Mathlib/RingTheory/LocalRing/Module.lean 7 41 ['Whysoserioushah', 'eric-wieser', 'github-actions', 'hrmacbeth', 'mathlib4-merge-conflict-bot', 'themathqueen'] Vierkantor
assignee:Vierkantor
7-49704
7 days ago
12-58450
12 days ago
46-75290
46 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/) large-import t-meta 331/43 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 18 ['Vierkantor', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127', 'vasnesterov'] alexjbest
assignee:alexjbest
7-47415
7 days ago
7-48249
7 days ago
123-65797
123 days
31287 YaelDillies
author:YaelDillies
refactor(SetTheory/ZFC): deduplicate coercion to sets Currently, we have both `ZFSet.toSet` and `SetLike.coe` to turn a `ZFSet` into a `Set ZFSet`. This is bad for simp normal form. This PR removes the first spelling in favor of the second one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 111/104 Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/SetTheory/ZFC/Ordinal.lean 3 16 ['YaelDillies', 'eric-wieser', 'github-actions', 'staroperator'] nobody
7-40484
7 days ago
8-58012
8 days ago
8-58049
8 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'] awainverse
assignee:awainverse
7-21703
7 days ago
17-84204
17 days ago
17-84242
17 days
31072 euprunin
author:euprunin
golf(Combinatorics/Quiver/Path): golf `exists_eq_comp_and_notMem_tail_of_mem_vertices` using `grind` ---
Show trace profiling of exists_eq_comp_and_notMem_tail_of_mem_vertices: 38 ms before, 46 ms after ### Trace profiling of `exists_eq_comp_and_notMem_tail_of_mem_vertices` before PR 31072 ```diff diff --git a/Mathlib/Combinatorics/Quiver/Path/Vertices.lean b/Mathlib/Combinatorics/Quiver/Path/Vertices.lean index 9d27be9e85..35d3daa185 100644 --- a/Mathlib/Combinatorics/Quiver/Path/Vertices.lean +++ b/Mathlib/Combinatorics/Quiver/Path/Vertices.lean @@ -206,6 +206,7 @@ theorem exists_eq_comp_of_mem_vertices {v : V} (hv : v ∈ p.vertices) : obtain ⟨v, p₁, p₂, hp, hv, rfl⟩ := p.exists_eq_comp_and_length_eq_of_lt_length n hn exact ⟨p₁, p₂, hp⟩ +set_option trace.profiler true in /-- Split a path at the *last* occurrence of a vertex. -/ theorem exists_eq_comp_and_notMem_tail_of_mem_vertices {v : V} (hv : v ∈ p.vertices) : ∃ (p₁ : Path a v) (p₂ : Path v b), ``` ``` ℹ [521/521] Built Mathlib.Combinatorics.Quiver.Path.Vertices (1.1s) info: Mathlib/Combinatorics/Quiver/Path/Vertices.lean:210:0: [Elab.async] [0.039993] elaborating proof of Quiver.Path.exists_eq_comp_and_notMem_tail_of_mem_vertices [Elab.definition.value] [0.038334] Quiver.Path.exists_eq_comp_and_notMem_tail_of_mem_vertices [Elab.step] [0.036860] induction p with | nil => have hxa : v = a := by simpa [vertices_nil, List.mem_singleton] using hv subst hxa exact ⟨Path.nil, Path.nil, by simp only [comp_nil], by simp only [vertices_nil, tail_cons, not_mem_nil, not_false_eq_true]⟩ | cons pPrev e ih => have hv' : v ∈ pPrev.vertices ∨ v = (pPrev.cons e).end := by simpa using (mem_vertices_cons pPrev e).1 hv have h_case₁ : v = (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by rintro rfl exact ⟨pPrev.cons e, Path.nil, by simp [comp_nil], by simp [vertices_nil]⟩ have h_case₂ : v ∈ pPrev.vertices → v ≠ (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by intro hmem have hmem' : v ∈ (q₂.vertices ++ [(pPrev.cons e).end]).tail := by simpa [q₂', vertices_cons, concat_eq_append] using hmem cases hq2 : q₂.vertices with | nil => simp [hq2] at hmem' | cons y ys => have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' obtain (hx_ys | hx_last) := List.mem_append.mp hx_in · exact h_not_tail <| by simpa [hq2] · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last exact hxe_ne this exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩ cases hv' with | inl h_in_prefix => by_cases h_eq_end : v = (pPrev.cons e).end · exact h_case₁ h_eq_end · exact h_case₂ h_in_prefix h_eq_end | inr h_eq_end => exact h_case₁ h_eq_end [Elab.step] [0.036855] induction p with | nil => have hxa : v = a := by simpa [vertices_nil, List.mem_singleton] using hv subst hxa exact ⟨Path.nil, Path.nil, by simp only [comp_nil], by simp only [vertices_nil, tail_cons, not_mem_nil, not_false_eq_true]⟩ | cons pPrev e ih => have hv' : v ∈ pPrev.vertices ∨ v = (pPrev.cons e).end := by simpa using (mem_vertices_cons pPrev e).1 hv have h_case₁ : v = (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by rintro rfl exact ⟨pPrev.cons e, Path.nil, by simp [comp_nil], by simp [vertices_nil]⟩ have h_case₂ : v ∈ pPrev.vertices → v ≠ (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by intro hmem have hmem' : v ∈ (q₂.vertices ++ [(pPrev.cons e).end]).tail := by simpa [q₂', vertices_cons, concat_eq_append] using hmem cases hq2 : q₂.vertices with | nil => simp [hq2] at hmem' | cons y ys => have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' obtain (hx_ys | hx_last) := List.mem_append.mp hx_in · exact h_not_tail <| by simpa [hq2] · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last exact hxe_ne this exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩ cases hv' with | inl h_in_prefix => by_cases h_eq_end : v = (pPrev.cons e).end · exact h_case₁ h_eq_end · exact h_case₂ h_in_prefix h_eq_end | inr h_eq_end => exact h_case₁ h_eq_end [Elab.step] [0.036851] induction p with | nil => have hxa : v = a := by simpa [vertices_nil, List.mem_singleton] using hv subst hxa exact ⟨Path.nil, Path.nil, by simp only [comp_nil], by simp only [vertices_nil, tail_cons, not_mem_nil, not_false_eq_true]⟩ | cons pPrev e [… 447 lines omitted …] have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' obtain (hx_ys | hx_last) := List.mem_append.mp hx_in · exact h_not_tail <| by simpa [hq2] · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last exact hxe_ne this) [Elab.step] [0.014253] with_annotate_state"by" ( intro hmem have hmem' : v ∈ (q₂.vertices ++ [(pPrev.cons e).end]).tail := by simpa [q₂', vertices_cons, concat_eq_append] using hmem cases hq2 : q₂.vertices with | nil => simp [hq2] at hmem' | cons y ys => have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' obtain (hx_ys | hx_last) := List.mem_append.mp hx_in · exact h_not_tail <| by simpa [hq2] · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last exact hxe_ne this) [Elab.step] [0.014250] with_annotate_state"by" ( intro hmem have hmem' : v ∈ (q₂.vertices ++ [(pPrev.cons e).end]).tail := by simpa [q₂', vertices_cons, concat_eq_append] using hmem cases hq2 : q₂.vertices with | nil => simp [hq2] at hmem' | cons y ys => have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' obtain (hx_ys | hx_last) := List.mem_append.mp hx_in · exact h_not_tail <| by simpa [hq2] · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last exact hxe_ne this) [Elab.step] [0.014246] with_annotate_state"by" ( intro hmem have hmem' : v ∈ (q₂.vertices ++ [(pPrev.cons e).end]).tail := by simpa [q₂', vertices_cons, concat_eq_append] using hmem cases hq2 : q₂.vertices with | nil => simp [hq2] at hmem' | cons y ys => have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' obtain (hx_ys | hx_last) := List.mem_append.mp hx_in · exact h_not_tail <| by simpa [hq2] · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last exact hxe_ne this) [Elab.step] [0.014243] ( intro hmem have hmem' : v ∈ (q₂.vertices ++ [(pPrev.cons e).end]).tail := by simpa [q₂', vertices_cons, concat_eq_append] using hmem cases hq2 : q₂.vertices with | nil => simp [hq2] at hmem' | cons y ys => have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' obtain (hx_ys | hx_last) := List.mem_append.mp hx_in · exact h_not_tail <| by simpa [hq2] · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last exact hxe_ne this) [Elab.step] [0.014240] intro hmem have hmem' : v ∈ (q₂.vertices ++ [(pPrev.cons e).end]).tail := by simpa [q₂', vertices_cons, concat_eq_append] using hmem cases hq2 : q₂.vertices with | nil => simp [hq2] at hmem' | cons y ys => have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' obtain (hx_ys | hx_last) := List.mem_append.mp hx_in · exact h_not_tail <| by simpa [hq2] · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last exact hxe_ne this [Elab.step] [0.014235] intro hmem have hmem' : v ∈ (q₂.vertices ++ [(pPrev.cons e).end]).tail := by simpa [q₂', vertices_cons, concat_eq_append] using hmem cases hq2 : q₂.vertices with | nil => simp [hq2] at hmem' | cons y ys => have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' obtain (hx_ys | hx_last) := List.mem_append.mp hx_in · exact h_not_tail <| by simpa [hq2] · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last exact hxe_ne this Build completed successfully (521 jobs). ``` ### Trace profiling of `exists_eq_comp_and_notMem_tail_of_mem_vertices` after PR 31072 ```diff diff --git a/Mathlib/Combinatorics/Quiver/Path/Vertices.lean b/Mathlib/Combinatorics/Quiver/Path/Vertices.lean index 9d27be9e85..d658dc1eb1 100644 --- a/Mathlib/Combinatorics/Quiver/Path/Vertices.lean +++ b/Mathlib/Combinatorics/Quiver/Path/Vertices.lean @@ -206,6 +206,7 @@ theorem exists_eq_comp_of_mem_vertices {v : V} (hv : v ∈ p.vertices) : obtain ⟨v, p₁, p₂, hp, hv, rfl⟩ := p.exists_eq_comp_and_length_eq_of_lt_length n hn exact ⟨p₁, p₂, hp⟩ +set_option trace.profiler true in /-- Split a path at the *last* occurrence of a vertex. -/ theorem exists_eq_comp_and_notMem_tail_of_mem_vertices {v : V} (hv : v ∈ p.vertices) : ∃ (p₁ : Path a v) (p₂ : Path v b), @@ -230,18 +231,7 @@ theorem exists_eq_comp_and_notMem_tail_of_mem_vertices {v : V} (hv : v ∈ p.ver intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e - have h_no_tail : v ∉ q₂'.vertices.tail := by - intro hmem - have hmem' : v ∈ (q₂.vertices ++ [(pPrev.cons e).end]).tail := by - simpa [q₂', vertices_cons, concat_eq_append] using hmem - cases hq2 : q₂.vertices with - | nil => simp [hq2] at hmem' - | cons y ys => - have hx_in : v ∈ ys ++ [(pPrev.cons e).end] := by simpa [hq2] using hmem' - obtain (hx_ys | hx_last) := List.mem_append.mp hx_in - · exact h_not_tail <| by simpa [hq2] - · have : v = (pPrev.cons e).end := by simpa [List.mem_singleton] using hx_last - exact hxe_ne this + have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩ cases hv' with | inl h_in_prefix => ``` ``` ℹ [521/521] Built Mathlib.Combinatorics.Quiver.Path.Vertices (1.1s) info: Mathlib/Combinatorics/Quiver/Path/Vertices.lean:210:0: [Elab.async] [0.047236] elaborating proof of Quiver.Path.exists_eq_comp_and_notMem_tail_of_mem_vertices [Elab.definition.value] [0.045901] Quiver.Path.exists_eq_comp_and_notMem_tail_of_mem_vertices [Elab.step] [0.044896] induction p with | nil => have hxa : v = a := by simpa [vertices_nil, List.mem_singleton] using hv subst hxa exact ⟨Path.nil, Path.nil, by simp only [comp_nil], by simp only [vertices_nil, tail_cons, not_mem_nil, not_false_eq_true]⟩ | cons pPrev e ih => have hv' : v ∈ pPrev.vertices ∨ v = (pPrev.cons e).end := by simpa using (mem_vertices_cons pPrev e).1 hv have h_case₁ : v = (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by rintro rfl exact ⟨pPrev.cons e, Path.nil, by simp [comp_nil], by simp [vertices_nil]⟩ have h_case₂ : v ∈ pPrev.vertices → v ≠ (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩ cases hv' with | inl h_in_prefix => by_cases h_eq_end : v = (pPrev.cons e).end · exact h_case₁ h_eq_end · exact h_case₂ h_in_prefix h_eq_end | inr h_eq_end => exact h_case₁ h_eq_end [Elab.step] [0.044892] induction p with | nil => have hxa : v = a := by simpa [vertices_nil, List.mem_singleton] using hv subst hxa exact ⟨Path.nil, Path.nil, by simp only [comp_nil], by simp only [vertices_nil, tail_cons, not_mem_nil, not_false_eq_true]⟩ | cons pPrev e ih => have hv' : v ∈ pPrev.vertices ∨ v = (pPrev.cons e).end := by simpa using (mem_vertices_cons pPrev e).1 hv have h_case₁ : v = (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by rintro rfl exact ⟨pPrev.cons e, Path.nil, by simp [comp_nil], by simp [vertices_nil]⟩ have h_case₂ : v ∈ pPrev.vertices → v ≠ (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩ cases hv' with | inl h_in_prefix => by_cases h_eq_end : v = (pPrev.cons e).end · exact h_case₁ h_eq_end · exact h_case₂ h_in_prefix h_eq_end | inr h_eq_end => exact h_case₁ h_eq_end [Elab.step] [0.044888] induction p with | nil => have hxa : v = a := by simpa [vertices_nil, List.mem_singleton] using hv subst hxa exact ⟨Path.nil, Path.nil, by simp only [comp_nil], by simp only [vertices_nil, tail_cons, not_mem_nil, not_false_eq_true]⟩ | cons pPrev e ih => have hv' : v ∈ pPrev.vertices ∨ v = (pPrev.cons e).end := by simpa using (mem_vertices_cons pPrev e).1 hv have h_case₁ : v = (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by rintro rfl exact ⟨pPrev.cons e, Path.nil, by simp [comp_nil], by simp [vertices_nil]⟩ have h_case₂ : v ∈ pPrev.vertices → v ≠ (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := by intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩ cases hv' with | inl h_in_prefix => [… 96 lines omitted …] case body✝ => with_annotate_state"by" ( intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩) [Elab.step] [0.029274] refine no_implicit_lambda% (have h_case₂ : v ∈ pPrev.vertices → v ≠ (pPrev.cons e).end → ∃ (p₁ : Path a v) (p₂ : Path v (pPrev.cons e).end), pPrev.cons e = p₁.comp p₂ ∧ v ∉ p₂.vertices.tail := ?body✝; ?_) case body✝ => with_annotate_state"by" ( intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩) [Elab.step] [0.025886] case body✝ => with_annotate_state"by" ( intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩) [Elab.step] [0.025862] with_annotate_state"by" ( intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩) [Elab.step] [0.025858] with_annotate_state"by" ( intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩) [Elab.step] [0.025854] with_annotate_state"by" ( intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩) [Elab.step] [0.025851] ( intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩) [Elab.step] [0.025848] intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩ [Elab.step] [0.025842] intro hxPrev hxe_ne obtain ⟨q₁, q₂, h_prev, h_not_tail⟩ := ih hxPrev let q₂' : Path v (pPrev.cons e).end := q₂.cons e have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] exact ⟨q₁, q₂', by simp [q₂', h_prev], h_no_tail⟩ [Elab.step] [0.022111] have h_no_tail : v ∉ q₂'.vertices.tail := by grind [vertices_cons, end_cons] [Elab.step] [0.022085] focus refine no_implicit_lambda% (have h_no_tail : v ∉ q₂'.vertices.tail := ?body✝; ?_) case body✝ => with_annotate_state"by" (grind [vertices_cons, end_cons]) [Elab.step] [0.022082] refine no_implicit_lambda% (have h_no_tail : v ∉ q₂'.vertices.tail := ?body✝; ?_) case body✝ => with_annotate_state"by" (grind [vertices_cons, end_cons]) [Elab.step] [0.022079] refine no_implicit_lambda% (have h_no_tail : v ∉ q₂'.vertices.tail := ?body✝; ?_) case body✝ => with_annotate_state"by" (grind [vertices_cons, end_cons]) [Elab.step] [0.021564] case body✝ => with_annotate_state"by" (grind [vertices_cons, end_cons]) [Elab.step] [0.021552] with_annotate_state"by" (grind [vertices_cons, end_cons]) [Elab.step] [0.021549] with_annotate_state"by" (grind [vertices_cons, end_cons]) [Elab.step] [0.021546] with_annotate_state"by" (grind [vertices_cons, end_cons]) [Elab.step] [0.021542] (grind [vertices_cons, end_cons]) [Elab.step] [0.021539] grind [vertices_cons, end_cons] [Elab.step] [0.021535] grind [vertices_cons, end_cons] [Elab.step] [0.021527] grind [vertices_cons, end_cons] Build completed successfully (521 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-combinatorics 1/12 Mathlib/Combinatorics/Quiver/Path/Vertices.lean 1 1 ['github-actions'] b-mehta
assignee:b-mehta
7-21701
7 days ago
15-32825
15 days ago
15-32865
15 days
31077 peabrainiac
author:peabrainiac
feat(Topology): `nhdsSetWithin` filter Add a relative version `nhdsSetWithin` of `nhdsSet`, analogous to `nhdsWithin`. The main application of this is a slightly more general variant of the tube lemma (`generalized_tube_lemma_left`) that came up while working in analysis files. --- - [x] depends on: #31090 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 159/4 Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/Defs/Filter.lean,Mathlib/Topology/NhdsWithin.lean 4 7 ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'peabrainiac', 'plp127'] fpvandoorn
assignee:fpvandoorn
7-21700
7 days ago
14-46770
14 days ago
14-80093
14 days
31086 kckennylau
author:kckennylau
feat(Util): open unscoped `open unscoped Foo` opens the namespace `Foo` without activating its scope, meaning without activating any of its scoped instances or notations. Example usage: ```lean namespace Nat def pi : Nat := 3 scoped notation "π" => pi end Nat open unscoped Nat #check pi #check π -- error ``` --- Zulip: * [lean4 > Why "scoped notation" for Euler's totient function?](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Why.20.22scoped.20notation.22.20for.20Euler's.20totient.20function.3F/with/547890198) * [mathlib4 > open unscoped](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/open.20unscoped/with/547890545) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 82/0 Mathlib.lean,Mathlib/Util/OpenUnscoped.lean,MathlibTest/Util/OpenUnscoped.lean 3 1 ['github-actions'] robertylewis
assignee:robertylewis
7-21699
7 days ago
14-76642
14 days ago
14-76677
14 days
31087 joelriou
author:joelriou
feat(CategoryTheory/Sites): categories of sheaves on Over categories, as a pseudofunctor Given a Grothendieck topology `J` on a category `C` and a category `A`, we define the pseudofunctor `J.pseudofunctorOver A : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat` which sends `X : C` to the category of sheaves on `Over X` with values in `A`. In order to do this, we expand the API for pushforward of sheaves for continuous functors. We add a few pseudofunctor-like definitions for these pushforwards. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 190/7 Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Sites/Continuous.lean,Mathlib/CategoryTheory/Sites/Over.lean,Mathlib/CategoryTheory/Sites/PseudofunctorSheafOver.lean 5 1 ['github-actions'] dagurtomas
assignee:dagurtomas
7-21698
7 days ago
14-72910
14 days ago
14-72884
14 days
31092 FlAmmmmING
author:FlAmmmmING
feat(Algebra/Group/ForwardDiff.lean): Add theorem `sum_shift_eq_fwdDiff_iter`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
19/0 Mathlib/Algebra/Group/ForwardDiff.lean 1 9 ['FlAmmmmING', 'Ruben-VandeVelde', 'github-actions'] dagurtomas
assignee:dagurtomas
7-21697
7 days ago
14-58930
14 days ago
14-58972
14 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 8 ['faenuccio', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri'] Vierkantor
assignee:Vierkantor
6-70867
6 days ago
24-83673
24 days ago
42-31819
42 days
30940 jessealama
author:jessealama
feat(Data/Set/Image): add Option.range lemmas for elim function This PR adds two new lemmas about `Option.elim` and `range`: - `Option.range_elim`: characterizes the range of a function defined via `Option.elim` - `Option.image_elim_range_some_eq_range`: the image of `range some` under `Option.elim b f` equals `range f` ## Context These lemmas are part of a larger PR (#30854) that touched multiple areas of Mathlib. Following reviewer suggestions, the PR has been split into smaller, focused contributions. This PR contains only the changes to `Mathlib/Data/Set/Image.lean`. ## Potential Reviewers Based on recent contributions to `Mathlib/Data/Set/Image.lean`: - @euprunin - @plp127 t-data 12/0 Mathlib/Data/Set/Image.lean 1 5 ['github-actions', 'jessealama', 'plp127'] nobody
6-65544
6 days ago
18-42053
18 days ago
18-42091
18 days
29270 euprunin
author:euprunin
chore: remove redundant `refine` invocations --- **Note:** Although technically redundant, some of these may be worth keeping for readability, or other reasons. Let me know if you think any should stay. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 4/12 Mathlib/Algebra/Order/GroupWithZero/Lex.lean,Mathlib/Algebra/Polynomial/Smeval.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/Geometry/Manifold/LocalInvariantProperties.lean,Mathlib/Probability/Density.lean 5 16 ['euprunin', 'github-actions', 'j-loreaux', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'sgouezel'] dupuisf
assignee:dupuisf
6-48967
6 days ago
6-48967
6 days ago
36-39301
36 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 7 ['Jlh18', 'github-actions', 'joelriou', 'sinhp'] adamtopaz
assignee:adamtopaz
6-43435
6 days ago
7-56033
7 days ago
22-66999
22 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 136/118 Mathlib/Tactic/Ring/Basic.lean 1 12 ['JovanGerb', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'thorimur'] thorimur
assignee:thorimur
6-33885
6 days ago
26-69545
26 days ago
26-69529
26 days
30669 harahu
author:harahu
doc(Algebra): fix typos Found with help from Codex. I've tried to limit the PR to changes that are easy to review. --- 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$
46/46 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,Mathlib/Algebra/Star/NonUnitalSubsemiring.lean 31 1 ['github-actions'] kim-em
assignee:kim-em
6-27614
6 days ago
25-70192
25 days ago
25-74836
25 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$
90/35 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/Bitwise.lean 6 8 ['alreadydone', 'astrainfinita', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] pechersky
assignee:pechersky
6-21713
6 days ago
14-26619
14 days ago
40-23880
40 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$
345/379 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 13 ['JovanGerb', 'YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] Vierkantor
assignee:Vierkantor
6-21712
6 days ago
13-64080
13 days ago
16-63093
16 days
30657 alreadydone
author:alreadydone
feat(Algebra): generalize Picard group to Semiring --- - [x] depends on: #30638 - [x] depends on: #30665 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
33/28 Mathlib/RingTheory/PicardGroup.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
6-21710
6 days ago
13-56492
13 days ago
13-56691
13 days
31113 515801431
author:515801431
feat(Mathlib/Combinatorics/Enumerative/Polya.lean): Add additional theorem in `Polya.lean` -- depend on #30525 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 298/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean 2 1 ['github-actions'] b-mehta
assignee:b-mehta
6-21702
6 days ago
14-1541
14 days ago
14-1590
14 days
31132 kckennylau
author:kckennylau
Feat(Algebra): saturation of a submonoid This PR defines the saturation of a submonoid and the type of saturated submonoids. It is used for the context of localisations. Caveat: there is a similarly named predicate called `AddSubgroup.Saturated`. Zulip: * [mathlib4 > saturation of a submonoid](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/saturation.20of.20a.20submonoid/with/548242862) * [#Is there code for X? > Closure of Submonoid in CommMonoids](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Closure.20of.20Submonoid.20in.20CommMonoids/near/419087778) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
279/0 Mathlib.lean,Mathlib/Algebra/Group/Submonoid/Saturation.lean 2 11 ['github-actions', 'kckennylau', 'plp127'] kim-em
assignee:kim-em
6-21698
6 days ago
13-32891
13 days ago
13-32925
13 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 12 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mitchell-horner', 'vihdzp'] kmill
assignee:kmill
6-12429
6 days ago
46-81707
1 month ago
74-14425
74 days
31201 euprunin
author:euprunin
chore(RingTheory): golf `isPrimary_decomposition_pairwise_ne_radical` using `grind` ---
Show trace profiling of isPrimary_decomposition_pairwise_ne_radical: 89 ms before, 156 ms after ### Trace profiling of `isPrimary_decomposition_pairwise_ne_radical` before PR 31201 ```diff diff --git a/Mathlib/RingTheory/Lasker.lean b/Mathlib/RingTheory/Lasker.lean index 8f522d48f8..21bf4d68b6 100644 --- a/Mathlib/RingTheory/Lasker.lean +++ b/Mathlib/RingTheory/Lasker.lean @@ -57,6 +57,7 @@ lemma decomposition_erase_inf [DecidableEq (Ideal R)] {I : Ideal R} open scoped Function -- required for scoped `on` notation +set_option trace.profiler true in lemma isPrimary_decomposition_pairwise_ne_radical {I : Ideal R} {s : Finset (Ideal R)} (hs : s.inf id = I) (hs' : ∀ ⦃J⦄, J ∈ s → J.IsPrimary) : ∃ t : Finset (Ideal R), t.inf id = I ∧ (∀ ⦃J⦄, J ∈ t → J.IsPrimary) ∧ ``` ``` ℹ [1261/1261] Built Mathlib.RingTheory.Lasker (1.3s) info: Mathlib/RingTheory/Lasker.lean:61:0: [Elab.command] [0.013044] theorem isPrimary_decomposition_pairwise_ne_radical {I : Ideal R} {s : Finset (Ideal R)} (hs : s.inf id = I) (hs' : ∀ ⦃J⦄, J ∈ s → J.IsPrimary) : ∃ t : Finset (Ideal R), t.inf id = I ∧ (∀ ⦃J⦄, J ∈ t → J.IsPrimary) ∧ (t : Set (Ideal R)).Pairwise ((· ≠ ·) on radical) := by classical refine ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ · rw [← hs] refine le_antisymm ?_ ?_ <;> intro x hx · simp only [Finset.inf_image, CompTriple.comp_eq, Submodule.mem_finsetInf, Function.comp_apply, Finset.mem_filter, id_eq, and_imp] at hx ⊢ intro J hJ exact hx J hJ J hJ rfl · simp only [Submodule.mem_finsetInf, id_eq, Finset.inf_image, CompTriple.comp_eq, Function.comp_apply, Finset.mem_filter, and_imp] at hx ⊢ intro J _ K hK _ exact hx K hK · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] · intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.definition.header] [0.010071] Ideal.isPrimary_decomposition_pairwise_ne_radical info: Mathlib/RingTheory/Lasker.lean:61:0: [Elab.command] [0.016459] lemma isPrimary_decomposition_pairwise_ne_radical {I : Ideal R} {s : Finset (Ideal R)} (hs : s.inf id = I) (hs' : ∀ ⦃J⦄, J ∈ s → J.IsPrimary) : ∃ t : Finset (Ideal R), t.inf id = I ∧ (∀ ⦃J⦄, J ∈ t → J.IsPrimary) ∧ (t : Set (Ideal R)).Pairwise ((· ≠ ·) on radical) := by classical refine ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ · rw [← hs] refine le_antisymm ?_ ?_ <;> intro x hx · simp only [Finset.inf_image, CompTriple.comp_eq, Submodule.mem_finsetInf, Function.comp_apply, Finset.mem_filter, id_eq, and_imp] at hx ⊢ intro J hJ exact hx J hJ J hJ rfl · simp only [Submodule.mem_finsetInf, id_eq, Finset.inf_image, CompTriple.comp_eq, Function.comp_apply, Finset.mem_filter, and_imp] at hx ⊢ intro J _ K hK _ exact hx K hK · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] · intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] info: Mathlib/RingTheory/Lasker.lean:61:0: [Elab.async] [0.091697] elaborating proof of Ideal.isPrimary_decomposition_pairwise_ne_radical [Elab.definition.value] [0.089099] Ideal.isPrimary_decomposition_pairwise_ne_radical [Elab.step] [0.086924] classical refine ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ · rw [← hs] refine le_antisymm ?_ ?_ <;> intro x hx · simp only [Finset.inf_image, CompTriple.comp_eq, Submodule.mem_finsetInf, Function.comp_apply, Finset.mem_filter, id_eq, and_imp] at hx ⊢ intro J hJ exact hx J hJ J hJ rfl · simp only [Submodule.mem_finsetInf, id_eq, Finset.inf_image, CompTriple.comp_eq, Function.comp_apply, Finset.mem_filter, and_imp] at hx ⊢ intro J _ K hK _ exact hx K hK · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] · intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.086918] classical [… 154 lines omitted …] Finset.mem_filter, id_eq, and_imp] at hx ⊢ intro J hJ exact hx J hJ J hJ rfl · simp only [Submodule.mem_finsetInf, id_eq, Finset.inf_image, CompTriple.comp_eq, Function.comp_apply, Finset.mem_filter, and_imp] at hx ⊢ intro J _ K hK _ exact hx K hK [Elab.step] [0.020717] rw [← hs] refine le_antisymm ?_ ?_ <;> intro x hx · simp only [Finset.inf_image, CompTriple.comp_eq, Submodule.mem_finsetInf, Function.comp_apply, Finset.mem_filter, id_eq, and_imp] at hx ⊢ intro J hJ exact hx J hJ J hJ rfl · simp only [Submodule.mem_finsetInf, id_eq, Finset.inf_image, CompTriple.comp_eq, Function.comp_apply, Finset.mem_filter, and_imp] at hx ⊢ intro J _ K hK _ exact hx K hK [Elab.step] [0.010102] · simp only [Finset.inf_image, CompTriple.comp_eq, Submodule.mem_finsetInf, Function.comp_apply, Finset.mem_filter, id_eq, and_imp] at hx ⊢ intro J hJ exact hx J hJ J hJ rfl [Elab.step] [0.010064] simp only [Finset.inf_image, CompTriple.comp_eq, Submodule.mem_finsetInf, Function.comp_apply, Finset.mem_filter, id_eq, and_imp] at hx ⊢ intro J hJ exact hx J hJ J hJ rfl [Elab.step] [0.010060] simp only [Finset.inf_image, CompTriple.comp_eq, Submodule.mem_finsetInf, Function.comp_apply, Finset.mem_filter, id_eq, and_imp] at hx ⊢ intro J hJ exact hx J hJ J hJ rfl [Elab.step] [0.015365] · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] [Elab.step] [0.015273] simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] [Elab.step] [0.015268] simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] [Elab.step] [0.027960] · intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.027947] intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.027944] intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.014324] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.014317] rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.014310] rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] Build completed successfully (1261 jobs). ``` ### Trace profiling of `isPrimary_decomposition_pairwise_ne_radical` after PR 31201 ```diff diff --git a/Mathlib/RingTheory/Lasker.lean b/Mathlib/RingTheory/Lasker.lean index 8f522d48f8..6f1c39f8a7 100644 --- a/Mathlib/RingTheory/Lasker.lean +++ b/Mathlib/RingTheory/Lasker.lean @@ -57,6 +57,7 @@ lemma decomposition_erase_inf [DecidableEq (Ideal R)] {I : Ideal R} open scoped Function -- required for scoped `on` notation +set_option trace.profiler true in lemma isPrimary_decomposition_pairwise_ne_radical {I : Ideal R} {s : Finset (Ideal R)} (hs : s.inf id = I) (hs' : ∀ ⦃J⦄, J ∈ s → J.IsPrimary) : ∃ t : Finset (Ideal R), t.inf id = I ∧ (∀ ⦃J⦄, J ∈ t → J.IsPrimary) ∧ @@ -64,16 +65,8 @@ lemma isPrimary_decomposition_pairwise_ne_radical {I : Ideal R} classical refine ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ - · rw [← hs] - refine le_antisymm ?_ ?_ <;> intro x hx - · simp only [Finset.inf_image, CompTriple.comp_eq, Submodule.mem_finsetInf, - Function.comp_apply, Finset.mem_filter, id_eq, and_imp] at hx ⊢ - intro J hJ - exact hx J hJ J hJ rfl - · simp only [Submodule.mem_finsetInf, id_eq, Finset.inf_image, CompTriple.comp_eq, - Function.comp_apply, Finset.mem_filter, and_imp] at hx ⊢ - intro J _ K hK _ - exact hx K hK + · ext + grind [Finset.inf_image, Submodule.mem_finsetInf] · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ ``` ``` ℹ [1261/1261] Built Mathlib.RingTheory.Lasker (1.2s) info: Mathlib/RingTheory/Lasker.lean:61:0: [Elab.command] [0.011121] theorem isPrimary_decomposition_pairwise_ne_radical {I : Ideal R} {s : Finset (Ideal R)} (hs : s.inf id = I) (hs' : ∀ ⦃J⦄, J ∈ s → J.IsPrimary) : ∃ t : Finset (Ideal R), t.inf id = I ∧ (∀ ⦃J⦄, J ∈ t → J.IsPrimary) ∧ (t : Set (Ideal R)).Pairwise ((· ≠ ·) on radical) := by classical refine ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ · ext grind [Finset.inf_image, Submodule.mem_finsetInf] · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] · intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] info: Mathlib/RingTheory/Lasker.lean:61:0: [Elab.command] [0.012898] lemma isPrimary_decomposition_pairwise_ne_radical {I : Ideal R} {s : Finset (Ideal R)} (hs : s.inf id = I) (hs' : ∀ ⦃J⦄, J ∈ s → J.IsPrimary) : ∃ t : Finset (Ideal R), t.inf id = I ∧ (∀ ⦃J⦄, J ∈ t → J.IsPrimary) ∧ (t : Set (Ideal R)).Pairwise ((· ≠ ·) on radical) := by classical refine ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ · ext grind [Finset.inf_image, Submodule.mem_finsetInf] · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] · intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] info: Mathlib/RingTheory/Lasker.lean:61:0: [Elab.async] [0.157957] elaborating proof of Ideal.isPrimary_decomposition_pairwise_ne_radical [Elab.definition.value] [0.156050] Ideal.isPrimary_decomposition_pairwise_ne_radical [Elab.step] [0.154194] classical refine ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ · ext grind [Finset.inf_image, Submodule.mem_finsetInf] · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] · intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.154189] classical refine ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ · ext grind [Finset.inf_image, Submodule.mem_finsetInf] · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] · intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.154184] classical refine ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ · ext grind [Finset.inf_image, Submodule.mem_finsetInf] · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, [… 59 lines omitted …] ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ [Elab.step] [0.017062] expected type: ∃ t, t.inf id = I ∧ (∀ ⦃J : Ideal R⦄, J ∈ t → J.IsPrimary) ∧ (↑t).Pairwise ((fun x1 x2 ↦ x1 ≠ x2) on radical), term ⟨(s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id, ?_, ?_, ?_⟩ [Elab.step] [0.017043] expected type: ∃ t, t.inf id = I ∧ (∀ ⦃J : Ideal R⦄, J ∈ t → J.IsPrimary) ∧ (↑t).Pairwise ((fun x1 x2 ↦ x1 ≠ x2) on radical), term Exists.intro✝ ((s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id) ⟨?_, ?_, ?_⟩ [Elab.step] [0.016253] expected type: Finset (Ideal R), term (s.image (fun J ↦ {I ∈ s | I.radical = J.radical})).image fun t ↦ t.inf id [Elab.step] [0.013756] expected type: , term (s.image (fun J ↦ {I ∈ s | I.radical = J.radical})) [Elab.step] [0.013751] expected type: , term s.image (fun J ↦ {I ∈ s | I.radical = J.radical}) [Elab.step] [0.011627] expected type: ?m.44 → Finset (Ideal R), term (fun J ↦ {I ∈ s | I.radical = J.radical}) [Elab.step] [0.011622] expected type: ?m.44 → Finset (Ideal R), term fun J ↦ {I ∈ s | I.radical = J.radical} [Elab.step] [0.011555] expected type: Finset (Ideal R), term {I ∈ s | I.radical = J.radical} [Elab.step] [0.090158] · ext grind [Finset.inf_image, Submodule.mem_finsetInf] [Elab.step] [0.090093] ext grind [Finset.inf_image, Submodule.mem_finsetInf] [Elab.step] [0.090089] ext grind [Finset.inf_image, Submodule.mem_finsetInf] [Elab.step] [0.089120] grind [Finset.inf_image, Submodule.mem_finsetInf] [Elab.step] [0.014619] · simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] [Elab.step] [0.014610] simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] [Elab.step] [0.014605] simp only [Finset.mem_image, exists_exists_and_eq_and, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂] intro J hJ refine isPrimary_finset_inf (i := J) ?_ ?_ (by simp) · simp [hJ] · simp only [Finset.mem_filter, id_eq, and_imp] intro y hy simp [hs' hy] [Elab.step] [0.026753] · intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.026740] intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.026737] intro I hI J hJ hIJ simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, exists_exists_and_eq_and] at hI hJ obtain ⟨I', hI', hI⟩ := hI obtain ⟨J', hJ', hJ⟩ := hJ simp only [Function.onFun, ne_eq] contrapose! hIJ suffices I'.radical = J'.radical by rw [← hI, ← hJ, this] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.013805] · rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.013799] rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] [Elab.step] [0.013796] rw [← hI, radical_finset_inf (i := I') (by simp [hI']) (by simp), id_eq] at hIJ rw [hIJ, ← hJ, radical_finset_inf (i := J') (by simp [hJ']) (by simp), id_eq] Build completed successfully (1261 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-ring-theory maintainer-merge 2/10 Mathlib/RingTheory/Lasker.lean 1 2 ['erdOne', 'github-actions'] nobody
5-67928
5 days ago
5-67928
5 days ago
11-40100
11 days
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 141/0 Mathlib.lean,Mathlib/CategoryTheory/Presentable/Type.lean 2 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] TwoFX
assignee:TwoFX
5-33035
5 days ago
5-33295
5 days ago
15-69892
15 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 335/0 Archive.lean,Archive/Imo/Imo2020Q6.lean 2 10 ['JovanGerb', 'dwrensha', 'github-actions', 'mathlib4-dependent-issues-bot'] dwrensha
assignee:dwrensha
5-29966
5 days ago
52-53795
1 month ago
52-55072
52 days
29147 ocfnash
author:ocfnash
feat: miscellaneous root system lemmas --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
73/34 Mathlib/LinearAlgebra/RootSystem/Defs.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean 4 2 ['github-actions', 'ocfnash'] dagurtomas
assignee:dagurtomas
5-21700
5 days ago
12-59549
12 days ago
12-59523
12 days
31118 LLaurance
author:LLaurance
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): the path of a walk is a subgraph of the walk itself Add helper theorems for https://github.com/leanprover-community/mathlib4/pull/29309 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 19/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean 1 2 ['SnirBroshi', 'github-actions'] b-mehta
assignee:b-mehta
5-21700
5 days ago
13-76280
13 days ago
13-77990
13 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_eq_iff`, `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 42/5 Mathlib/Data/Sym/Sym2.lean 1 1 ['github-actions'] nobody
5-19011
5 days ago
30-36560
30 days ago
30-36596
30 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 96/0 Mathlib/Data/Nat/Factorization/Basic.lean,Mathlib/Data/Nat/Factorization/Defs.lean,Mathlib/Data/Nat/Factorization/PrimePow.lean 3 22 ['Ruben-VandeVelde', 'ShreckYe', 'github-actions', 'robin-carlier'] pechersky
assignee:pechersky
5-11776
5 days ago
5-20480
5 days ago
84-58965
84 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 134/22 Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean,Mathlib/Data/Set/Image.lean,Mathlib/Topology/Instances/NNReal/Lemmas.lean 3 15 ['YaelDillies', 'github-actions', 'mitchell-horner'] YaelDillies
assignee:YaelDillies
5-10256
5 days ago
5-10256
5 days ago
64-36181
64 days
31416 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Walk): lemmas about the first and last darts/edges --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 43/0 Mathlib/Combinatorics/SimpleGraph/Walk.lean 1 1 ['github-actions'] nobody
4-83225
4 days ago
4-83227
4 days ago
4-83260
4 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 20 ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] YaelDillies
assignee:YaelDillies
4-81236
4 days ago
4-81260
4 days ago
38-61174
38 days
31418 mitchell-horner
author:mitchell-horner
feat(Combinatorics/SimpleGraph): impl `Iso.degree_eq` and `Iso.minDegree_eq` and `Iso.maxDegree_eq` Move `Iso.card_edgeFinset_eq` further down in Finite.lean and implement: - `Iso.degree_eq` - `Iso.minDegree_eq` - `Iso.maxDegree_eq` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 51/12 Mathlib/Combinatorics/SimpleGraph/Finite.lean 1 1 ['github-actions'] nobody
4-73201
4 days ago
4-73475
4 days ago
4-73499
4 days
27602 mitchell-horner
author:mitchell-horner
feat(Combinatorics/SimpleGraph): define `CompleteBipartiteSubgraph` Define the complete bipartite subgraphs of `s` and `t` parts as a "left" subset of `s` vertices and a "right" subset of `t` vertices such that every vertex in the "left" subset is adjacent to every vertex in the "right" subset. In this case `Nonempty (G.CompleteBipartiteSubgraph (card α) (card β))` is equivalent to `completeBipartiteGraph α β ⊑ G`, that is, finding a "left" subset of `s` vertices and a "right" subset of `t` vertices such that every vertex in the "left" subset is adjacent to every vertex in the "right" subset is equivalent to finding an injective homomorphism `completeBipartiteGraph α β` to `G`. --- - [x] depends on: #30287 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 93/0 Mathlib/Combinatorics/SimpleGraph/Bipartite.lean 1 18 ['YaelDillies', 'b-mehta', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mitchell-horner', 'vlad902'] YaelDillies
assignee:YaelDillies
4-72591
4 days ago
4-72611
4 days ago
73-3553
73 days
31423 harahu
author:harahu
doc(Combinatorics): ensure only a single H1 header per file This PR ensures we only have a single H1 header per lean file in the `Combinatorics` subdirectory. We do this for the following reasons: - Having more than one H1 header per file is likely to hamper both assistive technologies and SEO, since it introduces ambiguity about what the title of the resulting documentation webpage actually should be. - The [documentation style guide](https://leanprover-community.github.io/contribute/doc.html) asks for the title of the file to be H1, any other header in the file-level docstring to be H2, and sectioning headers to be H3. I have used my own judgement to decide whether to demote the extra H1 headers to H2 or H3. I've also tried to ensure that any intended header hierarchy is maintained, by further demoting existing H2 comments to H3 where applicable. I ask reviewers to verify that my choices makes sense to them. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 20/22 Mathlib/Combinatorics/Derangements/Finite.lean,Mathlib/Combinatorics/Enumerative/Stirling.lean,Mathlib/Combinatorics/Matroid/Circuit.lean,Mathlib/Combinatorics/Matroid/Minor/Contract.lean,Mathlib/Combinatorics/Matroid/Minor/Delete.lean,Mathlib/Combinatorics/Matroid/Minor/Order.lean,Mathlib/Combinatorics/Matroid/Rank/Cardinal.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Combinatorics/Matroid/Rank/Finite.lean 9 1 ['github-actions'] nobody
4-70961
4 days ago
4-70977
4 days ago
4-71009
4 days
27599 mitchell-horner
author:mitchell-horner
feat(Combinatorics/SimpleGraph): define `CompleteEquipartiteSubgraph` Define the complete equipartite subgraphs in `r` parts each of size `t` in `G` as the `r` subsets of vertices each of size `t` such that vertices in distinct subsets are adjacent. In this case `Nonempty (G.CompleteEquipartiteSubgraph r t)` is equivalent to `completeEquipartiteGraph r t ⊑ G`, that is, finding `r` subsets of vertices each of size `t` in `G` such that vertices in distinct subsets are adjacent is equivalent to finding an injective homomorphism from `completeEquipartiteGraph r t` to `G`. --- - [x] depends on: #27597 - [x] depends on: #30287 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 117/7 Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean 1 24 ['YaelDillies', 'b-mehta', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mitchell-horner'] YaelDillies
assignee:YaelDillies
4-68720
4 days ago
4-72232
4 days ago
44-54133
44 days
27493 themathqueen
author:themathqueen
feat(RingTheory/Coalgebra): define Frobenius algebra A Frobenius algebra `A` has the structure of both an algebra and a coalgebra such that: `(mul ⊗ id) ∘ assoc.symm ∘ (id ⊗ comul) = comul ∘ mul = (id ⊗ mul) ∘ assoc ∘ (comul ⊗ id)`. In diagrams this law looks like: ![](https://ncatlab.org/nlab/files/frobenius_laws.jpg) It suffices to show that `(mul ⊗ id) ∘ assoc.symm ∘ (id ⊗ comul) = (id ⊗ mul) ∘ assoc ∘ (comul ⊗ id)` (the proof of this is ugly). --- - [x] depends on: #27567 - [x] depends on: #27569 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 195/0 Mathlib.lean,Mathlib/RingTheory/Coalgebra/Frobenius.lean 2 4 ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'themathqueen'] alreadydone
assignee:alreadydone
4-66509
4 days ago
4-66509
4 days ago
15-3966
15 days
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$
467/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 44 ['AntoineChambert-Loir', 'eric-wieser', 'github-actions', 'mattrobball', 'mcdoll', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
4-65555
4 days ago
16-22570
16 days ago
16-71611
16 days
26710 metakunt
author:metakunt
feat (Data/Nat/Digits/Lemmas): Add digits_getD Adds digits_getD, an explicit computation of the i-th digits of n in base b representation. t-data new-contributor 15/0 Mathlib/Data/Nat/Digits/Lemmas.lean 1 19 ['github-actions', 'metakunt', 'pechersky', 'plp127'] nobody
4-64461
4 days ago
6-2161
6 days ago
62-82654
62 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/338 Archive/Imo/Imo2019Q2.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/Geometry/Euclidean/Angle/Sphere.lean,Mathlib/Geometry/Euclidean/Circumcenter.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/Geometry/Euclidean/MongePoint.lean,Mathlib/Geometry/Euclidean/Projection.lean,Mathlib/Geometry/Euclidean/SignedDist.lean,Mathlib/Geometry/Euclidean/Simplex.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean,scripts/nolints.json 15 7 ['JovanGerb', 'github-actions', 'jsm28'] robertylewis
assignee:robertylewis
4-62649
4 days ago
20-65917
20 days ago
20-65890
20 days
31055 jsm28
author:jsm28
feat(Geometry/Euclidean/Projection): `orthogonalProjectionSpan_congr` Add a congruence lemma for `orthogonalProjectionSpan` applied to two simplices with the same set of vertices, analogous to and proved using `orthogonalProjection_congr`, and a variant `orthogonalProjectionSpan_reindex`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-euclidean-geometry 10/0 Mathlib/Geometry/Euclidean/Projection.lean 1 3 ['JovanGerb', 'github-actions'] JovanGerb
assignee:JovanGerb
4-61165
4 days ago
4-61165
4 days ago
15-68951
15 days
30618 wwylele
author:wwylele
feat(Combinatorics): Glaisher's theorem This proves Glaisher's theorem, one of the 1000+ theorems. It is also a generalization of [Euler's partition theorem](https://github.com/leanprover-community/mathlib4/blob/master/Archive/Wiedijk100Theorems/Partition.lean), which can be rewritten as a collorary of this (will be in a different PR) --- - [ ] depends on: #30599 - [ ] depends on #30567 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 533/15 Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Finsupp.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/Combinatorics/Enumerative/Partition.lean,Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean,Mathlib/Combinatorics/Enumerative/Partition/Glaisher.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,docs/1000.yaml 12 2 ['github-actions', 'mathlib4-dependent-issues-bot'] nobody
4-59312
4 days ago
4-59315
4 days ago
4-61792
4 days
28346 joelriou
author:joelriou
feat(AlgebraicTopology/SimplicialSet): rank functions for pairings This PR introduces the type of (weak) rank functions for pairings, a notion introduced by Sean Moss, *Another approach to the Kan-Quillen model structure*. Rank functions can be used in order to show that certain pairings are regular (i.e. the ancestrality relation is well founded). In a future PR, it shall be shown that a regular pairing admits a rank function to the natural numbers, which shall be used to show that the corresponding inclusion of simplicial sets is a (strong) anodyne extension. --- - [x] depends on: #28336 - [x] depends on: #28332 - [x] depends on: #28330 - [x] depends on: #28224 - [x] depends on: #27968 - [x] depends on: #28034 - [x] depends on: #26076 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology 174/0 Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Rank.lean 3 n/a ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
4-57307
4 days ago
unknown
unknown
31097 joelriou
author:joelriou
feat(AlgebraicTopology): the model category structure on Over categories If `C` is a model category, then for any `X : C`, the category `Over X` is also a model category. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology 218/5 Mathlib.lean,Mathlib/Algebra/Homology/QuasiIso.lean,Mathlib/AlgebraicTopology/ModelCategory/Over.lean,Mathlib/CategoryTheory/CommSq.lean,Mathlib/CategoryTheory/LiftingProperties/Over.lean,Mathlib/CategoryTheory/Limits/Over.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean,Mathlib/CategoryTheory/MorphismProperty/FunctorCategory.lean,Mathlib/CategoryTheory/MorphismProperty/Retract.lean,Mathlib/CategoryTheory/Retract.lean 10 2 ['github-actions', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
4-52208
4 days ago
4-52228
4 days ago
14-40000
14 days
31431 harahu
author:harahu
doc(Data): misc. improvements This PR fixes a batch of typos in the `Data` subdirectory. Found and fixed with help from Codex. As part of this work, we also demote some headers that shouldn't have been H1. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 12/20 Mathlib/Data/ENNReal/Real.lean,Mathlib/Data/Nat/Factorial/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean 3 6 ['github-actions', 'grunweg', 'harahu', 'metakunt'] nobody
4-46777
4 days ago
4-64737
4 days ago
4-64774
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) - [x] depends on: #29791 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
455/5 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/LinearAlgebra/Eigenbasis.lean,Mathlib/LinearAlgebra/FreeModule/PID.lean,Mathlib/Order/CompleteLattice/Basic.lean 5 29 ['github-actions', 'kckennylau', 'llllvvuu', 'mathlib4-dependent-issues-bot'] joelriou
assignee:joelriou
4-31957
4 days ago
4-31957
4 days ago
17-42383
17 days
22782 alreadydone
author:alreadydone
feat(Topology): étalé space associated to a predicate on sections --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 886/160 Mathlib.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Topology/EtaleSpace.lean,Mathlib/Topology/IsLocalHomeomorph.lean,Mathlib/Topology/Sheaves/LocalPredicate.lean,Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Stalks.lean 10 16 ['AntoineChambert-Loir', 'alreadydone', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot'] PatrickMassot
assignee:PatrickMassot
4-26709
4 days ago
100-26350
3 months ago
30-3459
30 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'] kim-em
assignee:kim-em
4-21699
4 days ago
186-26093
6 months ago
252-26062
252 days
31144 YaelDillies
author:YaelDillies
feat: transfer `FaithfulSMul`/`NoZeroSMulDivisors` along equivs --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
26/1 Mathlib/Algebra/Group/Action/TransferInstance.lean,Mathlib/Algebra/Module/TransferInstance.lean 2 11 ['YaelDillies', 'erdOne', 'github-actions'] kim-em
assignee:kim-em
4-21696
4 days ago
11-54960
11 days ago
12-6393
12 days
31194 grunweg
author:grunweg
feat: add `#check'` command and tactic, which only show explicit arguments In some areas (such as differential geometry), many lemmas have a *lot* of implicit and typeclass arguments. Using `#check foo` to determine which explicit arguments are expected for a given lemma gives output which is painful to read, because the explicit argument is buried among many lines of other output. The `#check'` command and tactic produce very similar output, but with implicit and typeclass arguments omitted. This increases usability a lot. In the future, this could (and should) be unified to the #check command in core, by becoming e.g. `#check +only-explicit`. Until then, let us add this to mathlib to facilitate experimentation of the most useful behaviour. From the project towards geodesics and the Levi-Civita connection. Co-authored-by: Kyle Miller Co-authored-by: Patrick Massot --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 151/11 Mathlib/Tactic/Check.lean,MathlibTest/Check.lean 2 2 ['github-actions', 'grunweg'] thorimur
assignee:thorimur
4-21693
4 days ago
11-51374
11 days ago
11-51355
11 days
31199 YaelDillies
author:YaelDillies
feat: recursion principle for `Mᵐ⁰` From ClassFieldTheory Co-authored-by: Kenny Lau --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CFT t-algebra
label:t-algebra$
17/0 Mathlib/Algebra/GroupWithZero/WithZero.lean 1 3 ['YaelDillies', 'eric-wieser', 'github-actions'] dagurtomas
assignee:dagurtomas
4-21692
4 days ago
11-43977
11 days ago
11-44015
11 days
31204 jsm28
author:jsm28
feat(LinearAlgebra/AffineSpace/Combination): `affineCombination_mem_affineSpan_image` Add a lemma giving a condition for an affine combination to lie in the affine span of a subset of the indexed family of points (the reverse direction of `eq_affineCombination_of_mem_affineSpan_image`, which is the only current `image` lemma in this file, roughly). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
19/0 Mathlib/LinearAlgebra/AffineSpace/Combination.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
4-21691
4 days ago
11-30951
11 days ago
11-30926
11 days
31206 jsm28
author:jsm28
feat(Geometry/Euclidean/Incenter): bound coordinates of the incenter `inv_height_lt_sum_inv_height`, used to prove existence of the excenter opposite a vertex, has a remark in the docstring about what it also implies about the location of the incenter. Change this to an actual lemma `excenterWeights_empty_lt_inv_two` (which I think is the most natural form for that information that can then be applied further in any context where this information is useful). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 16/2 Mathlib/Geometry/Euclidean/Incenter.lean 1 1 ['github-actions'] JovanGerb
assignee:JovanGerb
4-21690
4 days ago
11-30018
11 days ago
11-29993
11 days
31462 ScottCarnahan
author:ScottCarnahan
feat (Algebra/Lie/Extension): 2-cocycle from a Lie algebra extension with abelian kernel and a linear splitting This PR defines the Lie algebra 2-cocycle of a Lie algebra extension with abelian kernel equipped with a linear splitting. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
219/12 Mathlib/Algebra/Lie/Abelian.lean,Mathlib/Algebra/Lie/Extension.lean 2 1 ['github-actions'] ocfnash
assignee:ocfnash
3-78648
3 days ago
3-79730
3 days ago
3-79731
3 days
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 347/35 Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean,Mathlib/AlgebraicGeometry/Gluing.lean,Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean,Mathlib/AlgebraicGeometry/Pullbacks.lean,Mathlib/AlgebraicGeometry/QuasiAffine.lean,Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean,Mathlib/Topology/LocalAtTarget.lean 8 21 ['chrisflav', 'erdOne', 'github-actions'] alexjbest
assignee:alexjbest
3-75395
3 days ago
7-34104
7 days ago
16-83465
16 days
30348 RemyDegenne
author:RemyDegenne
feat: convergence in probability implies convergence in distribution Prove that convergence in probability implies convergence in distribution, as well as Slutsky's theorem on the convergence of a product of random variables (since those two facts follow from the same lemma). --- - [x] depends on: #30346 - [x] depends on: #30385 - [x] depends on: #30402 - [x] depends on: #30540 - [x] depends on: #30585 - [x] depends on: #30742 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-measure-probability 256/2 Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean,Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean,Mathlib/Topology/Instances/ENNReal/Lemmas.lean,docs/1000.yaml 5 21 ['EtienneC30', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] EtienneC30
assignee:EtienneC30
3-73950
3 days ago
5-39657
5 days ago
13-8259
13 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 170/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 10 ['chrisflav', 'erdOne', 'github-actions', 'joelriou'] alexjbest
assignee:alexjbest
3-73307
3 days ago
3-73307
3 days ago
36-70872
36 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 13 ['JovanGerb', 'github-actions', 'grunweg', 'xyzw12345'] JovanGerb
assignee:JovanGerb
3-66586
3 days ago
66-12304
2 months ago
113-65777
113 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 48/0 Mathlib/RingTheory/Coprime/Lemmas.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/Ideal/Operations.lean 3 7 ['erdOne', 'github-actions', 'smmercuri'] erdOne
assignee:erdOne
3-66548
3 days ago
41-52652
1 month ago
41-52680
41 days
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 90/0 Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Extension/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Defs.lean,Mathlib/RingTheory/Localization/Away/Basic.lean 6 13 ['chrisflav', 'erdOne', 'github-actions'] erdOne
assignee:erdOne
3-64206
3 days ago
3-65112
3 days ago
11-22012
11 days
31467 maix00
author:maix00
feat(Combinatorics/SimpleGraph): add simp lemma `getVert_map` for `Walk.map` feat(Combinatorics/SimpleGraph) add simp lemma `getVert_map` to `Walk.map`; set longFile simple fact but can only be proved by reverting the start point of the walk due to the inductive definition --- - in concept similar to `List.getElem_map` - deserve a simp lemma (useful when pushing walks between Subgraphs) lemma getVert_map (i : ℕ) : (p.map f).getVert i = f (p.getVert i) := by revert u; induction i with | zero => simp | succ => intro _ p; cases p <;> simp [*] can not just use simp to prove this fact new-contributor t-combinatorics 6/0 Mathlib/Combinatorics/SimpleGraph/Walk.lean 1 1 ['github-actions'] nobody
3-64187
3 days ago
3-64199
3 days ago
3-64236
3 days
30797 adamtopaz
author:adamtopaz
feat(Mathlib/Tactic/CategoryStar): Category* We introduce `Category*`, an elaborator for introducing category instances which behaves analogously to `Type*`. Specifically, when writing `Category* C` this elaborator does the following: 1. It creates a new universe parameter `v`, and the elaborated term becomes `Category.{v} C`. 2. It places `v` *just before* the universe parameters appearing in `C` or its type, as commonly done in the category theory library. Basic usage: ```lean variable (C : Type*) [Category* C] variable (D : Type*) [Category* D] ``` This is essentially equivalent to: ```lean universe v_1 u_1 variable (C : Type u_1) [Category.{v_1} C] universe v_2 u_2 variable (D : Type u_2) [Category.{v_2} D] ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 229/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/CategoryStar.lean,MathlibTest/CategoryTheory/CategoryStar.lean 4 26 ['JovanGerb', 'adamtopaz', 'github-actions', 'mattrobball'] thorimur
assignee:thorimur
3-63402
3 days ago
22-34577
22 days ago
22-35373
22 days
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 16/1 Mathlib/Tactic/FunProp/Core.lean,MathlibTest/fun_prop_dev.lean 2 13 ['gasparattila', 'github-actions', 'grunweg', 'j-loreaux', 'leanprover-bot', 'thorimur'] thorimur
assignee:thorimur
3-62198
3 days ago
6-31382
6 days ago
16-71966
16 days
31308 alreadydone
author:alreadydone
feat(RingTheory): `Module.Invertible.tmul_comm` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
59/2 Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/PicardGroup.lean 3 5 ['alreadydone', 'github-actions', 'themathqueen'] nobody
3-61595
3 days ago
8-30464
8 days ago
8-30499
8 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 55/9 Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean 2 14 ['erdOne', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'xroblot'] kbuzzard
assignee:kbuzzard
3-58351
3 days ago
3-58351
3 days ago
105-80262
105 days
31429 llllvvuu
author:llllvvuu
feat(Topology): generalize `IsModuleTopology` lemmas to semilinear maps --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 116/52 Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/Algebra/Module/ModuleTopology.lean 2 3 ['erdOne', 'github-actions', 'llllvvuu'] kbuzzard
assignee:kbuzzard
3-55187
3 days ago
4-65841
4 days ago
4-65838
4 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 209/0 Mathlib.lean,Mathlib/CategoryTheory/Localization/Bifunctor.lean,Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Multifunctor.lean 5 28 ['dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] TwoFX
assignee:TwoFX
3-51499
3 days ago
3-51559
3 days ago
65-1448
65 days
31473 YaelDillies
author:YaelDillies
feat(RingTheory): compute `counitAlgHom`/`comulAlgHom` on specific bialgebras From Toric --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory toric 15/0 Mathlib/RingTheory/Bialgebra/Basic.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/Bialgebra/TensorProduct.lean 3 1 ['github-actions'] nobody
3-51384
3 days ago
3-51449
3 days ago
3-51424
3 days
31362 BeibeiX0
author:BeibeiX0
feat(partitions): generalized pentagonal numbers. feat(partitions): generalized pentagonal numbers and error term eₙ Introduce infrastructure around Euler’s pentagonal number theorem: * Define parity counters for strict partitions: - `p_even_distinct n` - `p_odd_distinct n` - `strict_partitions_parity_diff n := (p_even_distinct n : ℤ) - (p_odd_distinct n : ℤ)` * Generalized pentagonal numbers: - `generalizedPentagonalZ : ℤ → ℤ` with basic API (`gpn_nonneg`, `gpn_coe`) - `generalizedPentagonalNum : ℤ → ℕ` - parity lemma `even_neg_j_add_three_j_sq` and `even_neg_j_add_three_j_sq'` - search window equivalence `exists_j_iff_exists_j_in_range` - `Decidable (∃ j : ℤ, n = generalizedPentagonalZ j)` via a bounded range * Euler error term: - `error_term_e n : ℤ` (≔ `(-1)^{|j|}` if `n = generalizedPentagonalZ j` for some `j`, and `0` otherwise) * Finite product cut-off of the generating function: - `E n : PowerSeries ℤ := ∏_{k=1}^{n+1} (1 - X^k)` - lemma `coeff_E_eq_coeff_cutoff` Implementation notes: * Keep the integer-valued version `generalizedPentagonalZ` for arithmetic lemmas and signs; obtain the natural-number version via `Int.toNat`. * The bounded search lemma gives a small window `j ∈ [-(n+1), n+1]` for decidability. Motivation: * This is groundwork for proofs of Euler’s pentagonal number theorem and parity identities relating strict partitions to the error term. References: * https://en.wikipedia.org/wiki/Pentagonal_number_theorem new-contributor t-combinatorics 256/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/PentagonalNumbers.lean 2 5 ['BeibeiX0', 'github-actions', 'wwylele'] nobody
3-31514
3 days ago
6-56669
6 days ago
6-56703
6 days
26831 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(GroupTheory/SpecificGroups/Alternating/MaximalSubgroups): maximal subgroups of the alternating group This proves the first case (intransitive) of the O'Nan-Scott classification of maximal subgroups of the alternating group. --- - [x] depends on: #26457 - [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 569/20 Mathlib.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/GroupTheory/Perm/MaximalSubgroups.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/MaximalSubgroups.lean 6 n/a ['AntoineChambert-Loir', 'adomani', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
3-25421
3 days ago
unknown
unknown
24965 erdOne
author:erdOne
refactor: Make `IsLocalHom` take unbundled map Under the current definition, `IsLocalHom f` and `IsLocalHom f.toMonoidHom` are not defeq, which causes quite some annoyances. We also have a consensus to not use `*HomClass` in definitions. As a result, we change `IsLocalHom` to take an unbundled function instead of a funlike. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
16/7 Mathlib/Algebra/Group/Units/Hom.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean,Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean,Mathlib/Geometry/RingedSpace/OpenImmersion.lean 5 7 ['alreadydone', 'erdOne', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant'] mattrobball
assignee:mattrobball
3-21700
3 days ago
10-55934
10 days ago
20-81916
20 days
30133 smmercuri
author:smmercuri
feat: `WithVal v` and `WithVal w` are isomorphic as uniform spaces when `v` and `w` are equivalent valuations --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 97/0 Mathlib/Algebra/Order/Hom/Ring.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean 2 2 ['github-actions', 'kbuzzard'] robin-carlier
assignee:robin-carlier
3-21699
3 days ago
10-75570
10 days ago
14-49095
14 days
31145 FernandoChu
author:FernandoChu
chore(CategoryTheory): `IsRegularEpi` and its `MorphismProperty` This PR proves that isos are regular epis, and that epis are closed under postcomposition of isos. It also adds `IsRegularEpi` and the `MorphismProperty` it induces. This is so we can define regular categories, which require the regular epis to be stable under base change. 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 106/10 Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean,Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean 2 12 ['FernandoChu', 'github-actions', 'joelriou'] robin-carlier
assignee:robin-carlier
3-21696
3 days ago
10-38515
10 days ago
12-42258
12 days
31210 jsm28
author:jsm28
feat(Geometry/Euclidean/MongePoint): `reindex` lemmas Add lemmas about `mongePoint`, `mongePlane` and `orthocenter` applied to `Simplex.reindex`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 28/0 Mathlib/Geometry/Euclidean/MongePoint.lean 1 1 ['github-actions'] JovanGerb
assignee:JovanGerb
3-21695
3 days ago
11-17579
11 days ago
11-17555
11 days
31215 ScottCarnahan
author:ScottCarnahan
feat (RingTheory/HahnSeries): introduce binomialFamily and generalized powers. We introduce a way to take generalized powers of Hahn series whose leading term is 1. The powers take values in a binomial ring. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 286/14 Mathlib.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/HahnSeries/Basic.lean,Mathlib/RingTheory/HahnSeries/Binomial.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/Summable.lean 6 1 ['github-actions'] erdOne
assignee:erdOne
3-21694
3 days ago
10-73201
10 days ago
10-73237
10 days
31224 YaelDillies
author:YaelDillies
feat(Algebra/Homology): pushforward of connected complexes This is useful for proving functoriality of Tate cohomology, whose complex is defined as the connection of the homology and cohomology complexes. From ClassFieldTheory Co-authored-by: Edison Xie Co-authored-by: Michał Mrugała --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CFT t-algebra
label:t-algebra$
75/25 Mathlib/Algebra/Homology/Embedding/Connect.lean 1 4 ['YaelDillies', 'erdOne', 'github-actions'] dagurtomas
assignee:dagurtomas
3-21693
3 days ago
10-59315
10 days ago
10-61026
10 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 4 ['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] erdOne
assignee:erdOne
3-18107
3 days ago
3-18107
3 days ago
43-2027
43 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/) - [x] depends on: #26829 t-topology 219/26 Mathlib.lean,Mathlib/NumberTheory/Padics/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean 5 49 ['ADedecker', 'erdOne', 'faenuccio', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'loefflerd', 'mathlib4-dependent-issues-bot', 'pechersky'] jcommelin
assignee:jcommelin
3-18050
3 days ago
3-18050
3 days ago
31-10520
31 days
31494 jsm28
author:jsm28
feat(Geometry/Euclidean/Sphere/SecondInter): `eq_or_eq_secondInter_of_mem_affineSpan_pair_iff_mem` Add a variant of `eq_or_eq_secondInter_of_mem_mk'_span_singleton_iff_mem` in a form that's more convenient when the line is given in terms of two points, rather than a point and a vector. ```lean /-- A point on a line through a point on a sphere and a second point equals that point or `secondInter`. -/ lemma Sphere.eq_or_eq_secondInter_of_mem_affineSpan_pair_iff_mem {s : Sphere P} {p q : P} (hp : p ∈ s) {p' : P} (hp' : p' ∈ line[ℝ, p, q]) : p' = p ∨ p' = s.secondInter p (q -ᵥ p) ↔ p' ∈ s := by ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 11/0 Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean 1 1 ['github-actions'] nobody
3-17207
3 days ago
3-17273
3 days ago
3-17248
3 days
31240 AntoineChambert-Loir
author:AntoineChambert-Loir
feat: base change properties, direct sums, bases, modules of linear maps Establish various `IsBaseChange` properties: * direct sums commute with base change * when the source module is finite free, modules of linear maps commute with base change (on the right, on both sides, and for endomorphisms). * a base change of a free module is free, with compatible bases. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
399/6 Mathlib.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeFree.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangePi.lean 6 3 ['AntoineChambert-Loir', 'github-actions'] nobody
3-16268
3 days ago
3-16268
3 days ago
10-26996
10 days
31133 thorimur
author:thorimur
feat(Linter): combinators for linter option boilerplate Provides simple combinators `whenLinterOption` and `whenNotLinterOption` to parallel `whenPPOption` and `whenNotPPOption`, and bundles `withSetOptionIn` and `whenLinterOption` into `whenLinterActivated`. Currently, a typical linter action uses ```lean run := withSetOptionIn fun stx => do unless getLinterValue linter.foo (← getLinterOptions) do return ... ``` This allows us to simply write ```lean run := whenLinterActivated linter.foo fun stx => do ... ``` Using these combinators in Mathlib's linters is left to a subsequent PR (#31134). Since this is a utility used in basic linters, including the header linter, we exclude it from `lint-style`. --- I'm not sure I'm doing the right thing here re: Mathlib.Init. What exactly should happen? [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-linter t-meta 50/0 Mathlib.lean,Mathlib/Lean/Linter.lean,scripts/lint-style.lean 3 3 ['adomani', 'github-actions', 'thorimur'] adomani
assignee:adomani
3-7213
3 days ago
13-25996
13 days ago
13-32358
13 days
31498 zcyemi
author:zcyemi
feat(LinearAlgebra/AffineSpace/Independent): add affine independence permutation lemmas for three points --- Add three helper theorems for convenient reasoning with affine independence: - `AffineIndependent.comm_left` - `AffineIndependent.comm_right` - `AffineIndependent.reverse_of_three` t-algebra
label:t-algebra$
25/0 Mathlib/LinearAlgebra/AffineSpace/Independent.lean 1 1 ['github-actions'] nobody
3-6025
3 days ago
3-6046
3 days ago
3-6081
3 days
31499 zcyemi
author:zcyemi
feat(LinearAlgebra/AffineSpace/FiniteDimensional): add lemma preserving affine independence under collinear point replacement --- Add `affineIndependent_of_affineIndependent_collinear_ne` t-algebra
label:t-algebra$
15/0 Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean 1 1 ['github-actions'] nobody
3-5685
3 days ago
3-5692
3 days ago
3-5733
3 days
25779 robin-carlier
author:robin-carlier
feat(CategoryTheory/Bicategory/NaturalTransformations): strong and lax natural transformations of lax functors Given two lax functors `F G` between bicategories, we define lax natural transformations as families of 1-morphisms `∀ a : B, F.obj a ⟶ G.obj a` equipped with a naturality 2-cell `∀ {a b : B} (f : a ⟶ b), app a ≫ G.map f ⟶ F.map f ≫ app b` that are required to satisfy conditions such as naturality, and compatibility with the `mapId` and `mapComp` fields of the source and target functors. This notion dualizes the existing notion of oplax natural transformations between, and tries to narrow the current gap between lax and oplax functors in the library, where the latter has much more formalized API. For maintainability, The code tries to stay as aligned as possible with the code in `CategoryTheory.Bicategory.Naturaltransformations.Oplax`. --- I followed the book by Johnson and Yau for the definition. I made @yuma-mizuno and @callesonne authors of the files, as they are the authors of the original code for Oplax functors, which I basically copy-pasted and modified to make it work with lax functors. They should feel free to modify this if they want. Next thing on the list is to tackle modifications between lax/strong natural transforms of lax transforms, as well as the category instance on lax functors. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --- *This PR continues the work from #25565.* *Original PR: https://github.com/leanprover-community/mathlib4/pull/25565* t-category-theory 286/0 Mathlib.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean,scripts/noshake.json 3 8 ['github-actions', 'joelriou', 'robin-carlier', 'yuma-mizuno'] joelriou
assignee:joelriou
2-75386
2 days ago
2-75386
2 days ago
119-59290
119 days
31298 jjdishere
author:jjdishere
feat(RingTheory/AdicCompletion): `IsAdicComplete.lift` APIs for `RingHoms` In this PR, we build every API of the module version `IsAdicComplete.lift` for the ring version `IsAdicComplete.liftRingHom`. Mainly copying APIs in #25837, #31295, #31296. This would be used in #26388. --- - [x] depends on: #31296 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 308/0 Mathlib.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/RingHom.lean,Mathlib/RingTheory/Ideal/Quotient/Defs.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean 5 n/a ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
2-68371
2 days ago
unknown
unknown
31503 Scarlett-le
author:Scarlett-le
feat(Geometry/Euclidean/PerpBisector): add distance inequalities for Sbtw with perpendicularity This PR adds two theorems about distance relationships when points satisfy strict betweenness (`Sbtw`) and perpendicularity conditions: ### New theorems - `dist_lt_of_sbtw_of_inner_eq_zero`: If `b` is strictly between `a` and `c`, and `p - a` is perpendicular to `b - a`, then `dist p b < dist p c`. - `dist_lt_of_sbtw_of_mem_perpBisector`: If `p` lies on the perpendicular bisector of `ab` and `b` is strictly between `a` and `c`, then `dist p b < dist p c`. new-contributor t-euclidean-geometry 47/0 Mathlib/Geometry/Euclidean/PerpBisector.lean 1 1 ['github-actions'] nobody
2-65489
2 days ago
2-76680
2 days ago
2-76719
2 days
31496 Scarlett-le
author:Scarlett-le
feat(Geometry/Euclidean/Sphere/Power): power equals squared tangent length and characterization of tangency Adds two lemmas in `Geometry.Euclidean.Sphere.Power`: * `power_eq_dist_sq_of_IsTangentAt` — the power of a point equals the square of its tangent length. * `IsTangentAt_of_dist_sq_eq_power` — characterization of tangency via the power of a point. large-import new-contributor t-euclidean-geometry 18/0 Mathlib/Geometry/Euclidean/Sphere/Power.lean 1 2 ['github-actions', 'jsm28'] nobody
2-65463
2 days ago
3-11877
3 days ago
3-11919
3 days
31414 SnirBroshi
author:SnirBroshi
feat(Data/Nat/Bitwise): formula for the xor of {0,...,n} --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 40/2 Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Nat/Bitwise.lean 2 3 ['SnirBroshi', 'github-actions', 'plp127'] nobody
2-56296
2 days ago
4-45676
4 days ago
4-83537
4 days
31506 FLDutchmann
author:FLDutchmann
feat: Qq version of getLevel These were helpful for writing the `algebra` tactic for adding Qq annotations in cases where I know that an expression is a type. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-meta 11/2 Mathlib/Util/Qq.lean 1 6 ['FLDutchmann', 'github-actions', 'grunweg'] nobody
2-53757
2 days ago
2-53757
2 days ago
2-61095
2 days
31173 jsm28
author:jsm28
feat(Mathlib/Geometry/Euclidean/Incenter): excenters do not lie in faces Add lemmas with various versions of the statement that an excenter of a simplex does not lie in the affine span of a face. `excenter_ne_point` becomes a special case of this with a two-line proof. --- - [ ] depends on: #31172 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 53/10 Mathlib/Geometry/Euclidean/Incenter.lean 1 2 ['github-actions', 'mathlib4-dependent-issues-bot'] nobody
2-50466
2 days ago
2-51099
2 days ago
2-54176
2 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 531/3 Mathlib.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/Data/Set/Restrict.lean,Mathlib/LinearAlgebra/Dimension/DivisionRing.lean,Mathlib/RingTheory/Congruence/Defs.lean,Mathlib/RingTheory/Congruence/Hom.lean 7 52 ['AntoineChambert-Loir', 'eric-wieser', 'github-actions', 'kckennylau'] joneugster
assignee:joneugster
2-49293
2 days ago
2-49293
2 days ago
140-51469
140 days
31227 YaelDillies
author:YaelDillies
feat(Algebra/Homology): sandwich a comm group between two finite comm groups From ClassFieldTheory --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CFT maintainer-merge t-algebra
label:t-algebra$
64/39 Mathlib/Algebra/Homology/ShortComplex/Ab.lean,Mathlib/Data/Finite/Prod.lean,Mathlib/Data/Set/Finite/Basic.lean,Mathlib/GroupTheory/QuotientGroup/Finite.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/Topology/Algebra/Valued/LocallyCompact.lean 6 10 ['YaelDillies', 'erdOne', 'github-actions', 'jcommelin'] erdOne
assignee:erdOne
2-49270
2 days ago
2-68471
2 days ago
10-44949
10 days
31464 Ljon4ik4
author:Ljon4ik4
improved R-linearity to A-linearity in the PushForward of Derivations Let $A$ be an $R$-algebra for a commutative ring $R$ and $f:M\to N$ an $A$-module homomorphism. Given a derivation $D\in Der_R(A,M)$, we have a derivation $f \circ D$ of $Der_R(A,N)$. The induced map $Der_R(A,M)\to Der_R(A,N)$ is $A$-linear but was only reported to be $R$-linear in the previous implementation. All changes are in the PushForward section of the RingTheory/Derivation/Basic.lean file. The statements of definitions * `_root_.LinearMap.compDer` * `llcomp` * `_root_.LinearEquiv.compDer` are changed from $R$-linear to $A$-linear. For the stronger linearity the proof of `map_smul'` in `_root_.LinearMap.compDer` had to be changed. The rest remains as is. Edit: Some files explicitly used the weaker version, these have now been changed, by applying `.restrictScalars (R:=...)`, whereever the weaker linearity version of `compDer` was needed. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 9/8 Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean,Mathlib/Geometry/Manifold/DerivationBundle.lean,Mathlib/RingTheory/Derivation/Basic.lean,Mathlib/RingTheory/Kaehler/Basic.lean 4 13 ['Ljon4ik4', 'erdOne', 'github-actions', 'kckennylau'] nobody
2-49211
2 days ago
2-50196
2 days ago
3-66340
3 days
31231 Jlh18
author:Jlh18
refactor: MorphismProperty.HasPullbacksAlong Fix a morphism `f : X -> Y` in a category `C` with two morphism properties `P` and `Q`. To define a pullback functor between the subcategories of the slice categories `P.Over Q Y ⥤ P.Over Q X` one does not need the existence of all pullbacks along `f`. This refactor requires only that `f` has pullbacks of `P`-morphisms. This property of "`f` has pullbacks of `P`-morphisms is defined as a typeclass. Note that it cannot simply be an `abbrev` like `Limits.HasPullbacksAlong` because the typeclass inference system will not be able to infer `P` that way. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 72/34 Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean,Mathlib/CategoryTheory/MorphismProperty/Limits.lean,Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean 3 11 ['Jlh18', 'chrisflav', 'github-actions', 'joelriou'] joelriou
assignee:joelriou
2-48663
2 days ago
2-48681
2 days ago
10-39690
10 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 334/46 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 12 ['callesonne', 'github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'robin-carlier'] nobody
2-48560
2 days ago
2-68646
2 days ago
12-60742
12 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 181/0 Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Functor/StrictPseudofunctor.lean 2 17 ['callesonne', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] nobody
2-48384
2 days ago
2-68299
2 days ago
13-70469
13 days
31512 gasparattila
author:gasparattila
feat(MeasureTheory): typeclass for measurability of equality Currently, there are multiple lemmas of the form `MeasurableSet {x | f x = g x}` with different typeclass assumptions. This PR unifies them using a new `MeasurableEq` typeclass. A new instance for second-countable Hausdorff spaces is also added. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 75/50 Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean,Mathlib/MeasureTheory/Group/Arithmetic.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/MeasurableSpace/Defs.lean,Mathlib/MeasureTheory/Measure/AEMeasurable.lean,Mathlib/MeasureTheory/Measure/Trim.lean,Mathlib/Probability/Kernel/CondDistrib.lean,Mathlib/Probability/Kernel/Posterior.lean 8 1 ['github-actions'] nobody
2-45011
2 days ago
2-53753
2 days ago
2-53796
2 days
31504 joelriou
author:joelriou
refactor(CategoryTheory/Shift): export Functor.CommShift.commShiftIso The isomorphism of commutation with shifts `Functor.CommShift.iso` is renamed `Functor.CommShift.commShiftIso` and exported as `Functor.commShiftIso` (which was a definition previously). This allows to generate a few equational lemmas automatically. A few `erw` are also removed. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 79/112 Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean,Mathlib/CategoryTheory/Shift/Adjunction.lean,Mathlib/CategoryTheory/Shift/CommShift.lean,Mathlib/CategoryTheory/Shift/Induced.lean,Mathlib/CategoryTheory/Shift/Localization.lean,Mathlib/CategoryTheory/Shift/Opposite.lean,Mathlib/CategoryTheory/Shift/Pullback.lean,Mathlib/CategoryTheory/Shift/Quotient.lean,Mathlib/CategoryTheory/Shift/ShiftedHom.lean,Mathlib/CategoryTheory/Triangulated/Functor.lean,Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean 11 7 ['github-actions', 'joelriou', 'leanprover-bot'] nobody
2-39604
2 days ago
2-39604
2 days ago
2-39579
2 days
31407 SnirBroshi
author:SnirBroshi
feat(Analysis/SpecialFunctions/Gamma/BohrMollerup): Gamma is strictly decreasing on (0, 1] --- - [x] depends on: #31405 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 30/0 Mathlib/Analysis/Convex/Slope.lean,Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean 2 2 ['github-actions', 'mathlib4-dependent-issues-bot'] nobody
2-36678
2 days ago
2-37673
2 days ago
2-38487
2 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/) awaiting-bench t-analysis 110/11 Mathlib/Analysis/Normed/Ring/Basic.lean,MathlibTest/TCSynth.lean 2 4 ['github-actions', 'j-loreaux', 'leanprover-bot'] ADedecker
assignee:ADedecker
2-35312
2 days ago
2-38816
2 days ago
53-61680
53 days
31520 harahu
author:harahu
doc(Geometry): ensure only a single H1 header per file This PR ensures we only have a single H1 header per lean file in the `Geometry` subdirectory. We do this for the following reasons: - Having more than one H1 header per file is likely to hamper both assistive technologies and SEO, since it introduces ambiguity about what the title of the resulting documentation webpage actually is. - The [documentation style guide](https://leanprover-community.github.io/contribute/doc.html) asks for the title of the file to be H1, any other header in the file-level docstring to be H2, and sectioning headers to be H3. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 5/5 Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/Riemannian/Basic.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean 4 1 ['github-actions'] nobody
2-32636
2 days ago
2-32641
2 days ago
2-32682
2 days
31519 harahu
author:harahu
doc(FieldTheory): ensure only a single H1 header per file This PR ensures we only have a single H1 header per lean file in the `FieldTheory` subdirectory. We do this for the following reasons: - Having more than one H1 header per file is likely to hamper both assistive technologies and SEO, since it introduces ambiguity about what the title of the resulting documentation webpage actually is. - The [documentation style guide](https://leanprover-community.github.io/contribute/doc.html) asks for the title of the file to be H1, any other header in the file-level docstring to be H2, and sectioning headers to be H3. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
3/3 Mathlib/FieldTheory/Galois/GaloisClosure.lean,Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/Galois/Profinite.lean 3 1 ['github-actions'] nobody
2-32630
2 days ago
2-33312
2 days ago
2-33349
2 days
31521 harahu
author:harahu
doc(GroupTheory): ensure only a single H1 header per file This PR ensures we only have a single H1 header per lean file in the `GroupTheory` subdirectory. We do this for the following reasons: - Having more than one H1 header per file is likely to hamper both assistive technologies and SEO, since it introduces ambiguity about what the title of the resulting documentation webpage actually is. - The [documentation style guide](https://leanprover-community.github.io/contribute/doc.html) asks for the title of the file to be H1, any other header in the file-level docstring to be H2, and sectioning headers to be H3. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 3/3 Mathlib/GroupTheory/Exponent.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/SpecificGroups/KleinFour.lean 3 1 ['github-actions'] nobody
2-32103
2 days ago
2-32108
2 days ago
2-32147
2 days
31522 harahu
author:harahu
doc(LinearAlgebra): ensure only a single H1 header per file This PR ensures we only have a single H1 header per lean file in the `LinearAlgebra` subdirectory. We do this for the following reasons: - Having more than one H1 header per file is likely to hamper both assistive technologies and SEO, since it introduces ambiguity about what the title of the resulting documentation webpage actually is. - The [documentation style guide](https://leanprover-community.github.io/contribute/doc.html) asks for the title of the file to be H1, any other header in the file-level docstring to be H2, and sectioning headers to be H3. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
3/3 Mathlib/LinearAlgebra/Matrix/Transvection.lean,Mathlib/LinearAlgebra/Projectivization/Independence.lean,Mathlib/LinearAlgebra/Quotient/Pi.lean 3 1 ['github-actions'] nobody
2-30833
2 days ago
2-30839
2 days ago
2-30876
2 days
31179 SnirBroshi
author:SnirBroshi
feat(Algebra/QuadraticAlgebra/NormDeterminant): norm = det of left-mul endomorphism The norm of an element in a quadratic algebra is the determinant of the endomorphism defined by left multiplication by that element. --- I believe this is the reasoning behind the definition of the norm, though there might be an easier way to motivate the definition that I'm not aware of. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
45/1 Mathlib.lean,Mathlib/Algebra/QuadraticAlgebra/Basic.lean,Mathlib/Algebra/QuadraticAlgebra/NormDeterminant.lean,Mathlib/LinearAlgebra/Matrix/ToLin.lean 4 5 ['SnirBroshi', 'github-actions', 'kckennylau', 'themathqueen'] jcommelin
assignee:jcommelin
2-30167
2 days ago
2-30175
2 days ago
12-5122
12 days
26912 pechersky
author:pechersky
chore(Algebra/Ring/Subring): simp tag `Subring.smul_def` s-multiplying by a subtype is easiest to manipulate when both terms are in the ambient type. Many places that had to use the _def lemma for a rewrite, or to include it in a simp set, no longer have to. Ported from #25308 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) I found this being not-simp frustrating when talking about submodules over a valuation subring. t-algebra
label:t-algebra$
67/66 Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/Group/Subgroup/Actions.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/Algebra/Module/LocalizedModule/Exact.lean,Mathlib/Algebra/Module/LocalizedModule/IsLocalization.lean,Mathlib/Algebra/Module/LocalizedModule/Submodule.lean,Mathlib/Algebra/Ring/Periodic.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/LinearAlgebra/RootSystem/Irreducible.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/RingTheory/Etale/Kaehler.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/LocalProperties/Projective.lean,Mathlib/RingTheory/Localization/InvSubmonoid.lean,Mathlib/RingTheory/OreLocalization/Basic.lean 25 19 ['artie2000', 'eric-wieser', 'github-actions', 'j-loreaux', 'linesthatinterlace', 'mathlib4-merge-conflict-bot', 'pechersky'] joelriou
assignee:joelriou
2-29587
2 days ago
2-35529
2 days ago
54-23157
54 days
31524 harahu
author:harahu
doc(Logic/Equiv/Fintype): fix typos Found and fixed with help from Claude. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 4/4 Mathlib/Logic/Equiv/Fintype.lean 1 1 ['github-actions'] nobody
2-29487
2 days ago
2-29496
2 days ago
2-29532
2 days
30879 grunweg
author:grunweg
feat: beta reduce in the `T%` elaborator Whenever the `T%` elaborator succeeds, head beta reduce the resulting application. This enables applying it with anonymous functions or inside big operators without issue. (For instance, all changes to `SmoothSection` in #30357 are now possible without addition `dsimp` steps.) In the process, also extract the workhorse component of the elaborator into an independent function and improve its doc-string to mention the corresponding tracing option. --- - [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 62/20 Mathlib/Geometry/Manifold/Notation.lean,MathlibTest/DifferentialGeometry/Notation.lean 2 12 ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'thorimur'] thorimur
assignee:thorimur
2-21805
2 days ago
2-45399
2 days ago
13-640
13 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 - [x] depends on: #31123 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 658/2 Mathlib.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,Mathlib/Topology/Closure.lean,Mathlib/Topology/OpenPartialHomeomorph.lean,docs/references.bib 6 118 ['chrisflav', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'sgouezel'] sgouezel
assignee:sgouezel
2-21749
2 days ago
2-21749
2 days ago
35-46446
35 days
26149 vasnesterov
author:vasnesterov
feat(Topology): continuous surjection from Cantor set to Hilbert cube 1. Add `cantorToHilbert`: a continuous surjection from the Cantor space (`ℕ → Bool`) to the Hilbert Cube (`ℕ → unitInterval`). 2. Add auxiliary constructions for homeomorphisms: * `Equiv.toHomeomorphOfDiscrete`: any bijection between discrete spaces is a homeomorphism * `Homeomorph.piCurry`: `(X × Y → Z) ≃ₜ (X → Y → Z)` This is the first part of the Hausdorff–Alexandroff theorem's proof, the second is #26184. --- - [x] depends on: #26136 - [x] depends on: #31349 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 100/0 Mathlib.lean,Mathlib/Analysis/Real/OfDigits.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Homeomorph/Defs.lean,Mathlib/Topology/Instances/CantorSet.lean,Mathlib/Topology/MetricSpace/HausdorffAlexandroff.lean 6 5 ['alreadydone', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'vasnesterov'] dagurtomas
assignee:dagurtomas
2-21702
2 days ago
6-23023
6 days ago
7-9053
7 days
30168 joelriou
author:joelriou
feat(CategoryTheory): closure under bounded colimits In this PR, given `P : ObjectProperty C` and `κ : Cardinal.{w}`, we introduce the closure `P.colimitsCardinalClosure κ` of `P` under colimits of shapes given by categories `J` such that `HasCardinalLT (Arrow J) κ` holds. If `C` is locally `w`-small and `P` is essentially `w`-small, we show that this closure `P.colimitsCardinalClosure κ` is also essentially `w`-small. (In particular, if `κ = ℵ₀`, this is the closure of `P` under finite colimits.) --- - [x] depends on: #29851 - [x] depends on: #29881 - [x] depends on: #29903 - [x] depends on: #29854 - [x] depends on: #30160 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-category-theory 125/2 Mathlib.lean,Mathlib/CategoryTheory/ObjectProperty/ColimitsCardinalClosure.lean,Mathlib/CategoryTheory/SmallRepresentatives.lean 3 7 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] TwoFX
assignee:TwoFX
2-21700
2 days ago
5-34553
5 days ago
5-34527
5 days
30570 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Connectivity/Connected): `reachabilitySet` feat(Combinatorics/SimpleGraph/Connectivity/Connected): define `reachabilitySet` as the set of all pairs that have a walk between them --- The main motivation is making it easier to work with the bridge definition (see `isBridge_iff_mem_edgeSet_and_notMem_reachabilitySet_deleteEdges` and `mem_edgeSet_and_mem_reachabilitySet_deleteEdges_iff_exists_isCycle_and_mem_edges` at the bottom), although I think this set is worth defining regardless. - [x] depends on: #30542 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 57/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] kex-y
assignee:kex-y
2-21699
2 days ago
6-47688
6 days ago
6-50198
6 days
30798 joelriou
author:joelriou
feat(Algebra/Category/ModuleCat): a functorial projective resolution Any `R`-module can be written functorialy as a quotient of a projective `R`-module. --- - [x] depends on: #30796 This PR continues the work from #22556. Original PR: https://github.com/leanprover-community/mathlib4/pull/22556 t-category-theory 52/0 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/LeftResolution.lean,Mathlib/CategoryTheory/Preadditive/Injective/Basic.lean,Mathlib/CategoryTheory/Preadditive/Projective/Basic.lean 4 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
2-21698
2 days ago
5-32584
5 days ago
5-32596
5 days
30812 joelriou
author:joelriou
feat(CategoryTheory/Abelian): construction of reduced left resolutions The standard functorial free resolution of a `R`-module `M` (#30798) does not directly extend to free resolutions of (bounded above) complexes because the free `R`-module functor does preserve zero morphisms. In this PR, we provide a general construction which takes functorial left resolutions and modify them by considering a suitable direct factor so that it preserves zero morphisms. --- - [x] depends on: #30796 This PR continues the work from #22547. Original PR: https://github.com/leanprover-community/mathlib4/pull/22547 t-category-theory 233/0 Mathlib.lean,Mathlib/Algebra/Homology/LeftResolution/Reduced.lean,Mathlib/Algebra/Homology/LeftResolution/Transport.lean,Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean,Mathlib/CategoryTheory/Idempotents/Karoubi.lean,Mathlib/CategoryTheory/Retract.lean 6 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
2-21697
2 days ago
5-30588
5 days ago
5-30641
5 days
30897 euprunin
author:euprunin
chore(Order/Defs): golf multiple lemmas in `LinearOrder` using `grind` ---
Show trace profiling of lt_trichotomy: <10 ms before, <10 ms after 🎉 ### Trace profiling of `lt_trichotomy` before PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..12b8e67c46 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -87,6 +87,7 @@ lemma lt_of_not_ge (h : ¬b ≤ a) : a < b := lt_of_le_not_ge (le_of_not_ge h) h @[deprecated (since := "2025-05-11")] alias le_of_not_le := le_of_not_ge +set_option trace.profiler true in lemma lt_trichotomy (a b : α) : a < b ∨ a = b ∨ b < a := by grind [le_total, Decidable.lt_or_eq_of_le] ``` ``` ✔ [61/61] Built Mathlib.Order.Defs.LinearOrder (524ms) Build completed successfully (61 jobs). ``` ### Trace profiling of `lt_trichotomy` after PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..ea19594593 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -87,8 +87,9 @@ lemma lt_of_not_ge (h : ¬b ≤ a) : a < b := lt_of_le_not_ge (le_of_not_ge h) h @[deprecated (since := "2025-05-11")] alias le_of_not_le := le_of_not_ge +set_option trace.profiler true in lemma lt_trichotomy (a b : α) : a < b ∨ a = b ∨ b < a := by - grind [le_total, Decidable.lt_or_eq_of_le] + grind lemma le_of_not_gt (h : ¬b < a) : a ≤ b := match lt_trichotomy a b with ``` ``` ✔ [61/61] Built Mathlib.Order.Defs.LinearOrder (522ms) Build completed successfully (61 jobs). ```
---
Show trace profiling of lt_or_gt_of_ne: <10 ms before, <10 ms after 🎉 ### Trace profiling of `lt_or_gt_of_ne` before PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..f6b239762a 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -107,6 +107,7 @@ lemma le_or_gt (a b : α) : a ≤ b ∨ b < a := (lt_or_ge b a).symm @[deprecated (since := "2025-05-11")] alias le_or_lt := le_or_gt +set_option trace.profiler true in lemma lt_or_gt_of_ne (h : a ≠ b) : a < b ∨ b < a := by simpa [h] using lt_trichotomy a b lemma ne_iff_lt_or_gt : a ≠ b ↔ a < b ∨ b < a := ⟨lt_or_gt_of_ne, (Or.elim · ne_of_lt ne_of_gt)⟩ ``` ``` ✔ [61/61] Built Mathlib.Order.Defs.LinearOrder (526ms) Build completed successfully (61 jobs). ``` ### Trace profiling of `lt_or_gt_of_ne` after PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..32b1b7866a 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -107,7 +107,9 @@ lemma le_or_gt (a b : α) : a ≤ b ∨ b < a := (lt_or_ge b a).symm @[deprecated (since := "2025-05-11")] alias le_or_lt := le_or_gt -lemma lt_or_gt_of_ne (h : a ≠ b) : a < b ∨ b < a := by simpa [h] using lt_trichotomy a b +set_option trace.profiler true in +lemma lt_or_gt_of_ne (h : a ≠ b) : a < b ∨ b < a := by + grind lemma ne_iff_lt_or_gt : a ≠ b ↔ a < b ∨ b < a := ⟨lt_or_gt_of_ne, (Or.elim · ne_of_lt ne_of_gt)⟩ ``` ``` ✔ [61/61] Built Mathlib.Order.Defs.LinearOrder (523ms) Build completed successfully (61 jobs). ```
---
Show trace profiling of min_le_left: <10 ms before, 11 ms after ### Trace profiling of `min_le_left` before PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..7df1c3ca17 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -131,6 +131,7 @@ lemma min_def (a b : α) : min a b = if a ≤ b then a else b := LinearOrder.min @[grind =] lemma max_def (a b : α) : max a b = if a ≤ b then b else a := LinearOrder.max_def a b +set_option trace.profiler true in lemma min_le_left (a b : α) : min a b ≤ a := by if h : a ≤ b then simp [min_def, if_pos h, le_refl] ``` ``` ✔ [61/61] Built Mathlib.Order.Defs.LinearOrder (522ms) Build completed successfully (61 jobs). ``` ### Trace profiling of `min_le_left` after PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..5b358180c5 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -131,10 +131,9 @@ lemma min_def (a b : α) : min a b = if a ≤ b then a else b := LinearOrder.min @[grind =] lemma max_def (a b : α) : max a b = if a ≤ b then b else a := LinearOrder.max_def a b +set_option trace.profiler true in lemma min_le_left (a b : α) : min a b ≤ a := by - if h : a ≤ b - then simp [min_def, if_pos h, le_refl] - else simpa [min_def, if_neg h] using le_of_not_ge h + grind lemma min_le_right (a b : α) : min a b ≤ b := by if h : a ≤ b ``` ``` ℹ [61/61] Built Mathlib.Order.Defs.LinearOrder (537ms) info: Mathlib/Order/Defs/LinearOrder.lean:135:0: [Elab.async] [0.011028] elaborating proof of min_le_left [Elab.definition.value] [0.010868] min_le_left [Elab.step] [0.010797] grind [Elab.step] [0.010791] grind [Elab.step] [0.010784] grind Build completed successfully (61 jobs). ```
---
Show trace profiling of min_assoc: <10 ms before, 19 ms after ### Trace profiling of `min_assoc` before PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..5d78975606 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -163,6 +163,7 @@ lemma eq_min (h₁ : c ≤ a) (h₂ : c ≤ b) (h₃ : ∀ {d}, d ≤ a → d lemma min_comm (a b : α) : min a b = min b a := eq_min (min_le_right a b) (min_le_left a b) fun h₁ h₂ => le_min h₂ h₁ +set_option trace.profiler true in lemma min_assoc (a b c : α) : min (min a b) c = min a (min b c) := by apply eq_min · apply le_trans (min_le_left ..) (min_le_left ..) ``` ``` ✔ [61/61] Built Mathlib.Order.Defs.LinearOrder (531ms) Build completed successfully (61 jobs). ``` ### Trace profiling of `min_assoc` after PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..abb242c8ee 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -163,15 +163,9 @@ lemma eq_min (h₁ : c ≤ a) (h₂ : c ≤ b) (h₃ : ∀ {d}, d ≤ a → d lemma min_comm (a b : α) : min a b = min b a := eq_min (min_le_right a b) (min_le_left a b) fun h₁ h₂ => le_min h₂ h₁ +set_option trace.profiler true in lemma min_assoc (a b c : α) : min (min a b) c = min a (min b c) := by - apply eq_min - · apply le_trans (min_le_left ..) (min_le_left ..) - · apply le_min - · apply le_trans (min_le_left ..) (min_le_right ..) - · apply min_le_right - · intro d h₁ h₂; apply le_min - · apply le_min h₁; apply le_trans h₂; apply min_le_left - · apply le_trans h₂; apply min_le_right + grind lemma min_left_comm (a b c : α) : min a (min b c) = min b (min a c) := by rw [← min_assoc, min_comm a, min_assoc] ``` ``` ℹ [61/61] Built Mathlib.Order.Defs.LinearOrder (521ms) info: Mathlib/Order/Defs/LinearOrder.lean:167:0: [Elab.async] [0.019168] elaborating proof of min_assoc [Elab.definition.value] [0.018952] min_assoc [Elab.step] [0.018863] grind [Elab.step] [0.018857] grind [Elab.step] [0.018848] grind Build completed successfully (61 jobs). ```
---
Show trace profiling of min_left_comm: <10 ms before, 19 ms after ### Trace profiling of `min_left_comm` before PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..331ed67051 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -173,6 +173,7 @@ lemma min_assoc (a b c : α) : min (min a b) c = min a (min b c) := by · apply le_min h₁; apply le_trans h₂; apply min_le_left · apply le_trans h₂; apply min_le_right +set_option trace.profiler true in lemma min_left_comm (a b c : α) : min a (min b c) = min b (min a c) := by rw [← min_assoc, min_comm a, min_assoc] ``` ``` ✔ [61/61] Built Mathlib.Order.Defs.LinearOrder (529ms) Build completed successfully (61 jobs). ``` ### Trace profiling of `min_left_comm` after PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..dc93dd47af 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -173,8 +173,9 @@ lemma min_assoc (a b c : α) : min (min a b) c = min a (min b c) := by · apply le_min h₁; apply le_trans h₂; apply min_le_left · apply le_trans h₂; apply min_le_right +set_option trace.profiler true in lemma min_left_comm (a b c : α) : min a (min b c) = min b (min a c) := by - rw [← min_assoc, min_comm a, min_assoc] + grind @[simp] lemma min_self (a : α) : min a a = a := by simp [min_def] ``` ``` ℹ [61/61] Built Mathlib.Order.Defs.LinearOrder (522ms) info: Mathlib/Order/Defs/LinearOrder.lean:177:0: [Elab.async] [0.019701] elaborating proof of min_left_comm [Elab.definition.value] [0.019485] min_left_comm [Elab.step] [0.019416] grind [Elab.step] [0.019411] grind [Elab.step] [0.019404] grind Build completed successfully (61 jobs). ```
---
Show trace profiling of compare_lt_iff_lt: 23 ms before, 14 ms after 🎉 ### Trace profiling of `compare_lt_iff_lt` before PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..a38e430f94 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -223,6 +223,7 @@ lemma max_lt (h₁ : a < c) (h₂ : b < c) : max a b < c := by section Ord +set_option trace.profiler true in lemma compare_lt_iff_lt : compare a b = .lt ↔ a < b := by rw [LinearOrder.compare_eq_compareOfLessAndEq, compareOfLessAndEq] split_ifs <;> simp only [*, lt_irrefl] ``` ``` ℹ [61/61] Built Mathlib.Order.Defs.LinearOrder (521ms) info: Mathlib/Order/Defs/LinearOrder.lean:227:0: [Elab.async] [0.023362] elaborating proof of compare_lt_iff_lt [Elab.definition.value] [0.022981] compare_lt_iff_lt [Elab.step] [0.022850] rw [LinearOrder.compare_eq_compareOfLessAndEq, compareOfLessAndEq] split_ifs <;> simp only [*, lt_irrefl] [Elab.step] [0.022844] rw [LinearOrder.compare_eq_compareOfLessAndEq, compareOfLessAndEq] split_ifs <;> simp only [*, lt_irrefl] [Elab.step] [0.021754] split_ifs <;> simp only [*, lt_irrefl] [Elab.step] [0.021740] focus split_ifs with_annotate_state"<;>" skip all_goals simp only [*, lt_irrefl] [Elab.step] [0.021735] split_ifs with_annotate_state"<;>" skip all_goals simp only [*, lt_irrefl] [Elab.step] [0.021730] split_ifs with_annotate_state"<;>" skip all_goals simp only [*, lt_irrefl] [Elab.step] [0.018987] split_ifs Build completed successfully (61 jobs). ``` ### Trace profiling of `compare_lt_iff_lt` after PR 30897 ```diff diff --git a/Mathlib/Order/Defs/LinearOrder.lean b/Mathlib/Order/Defs/LinearOrder.lean index 7b6f0d5598..a97d025c43 100644 --- a/Mathlib/Order/Defs/LinearOrder.lean +++ b/Mathlib/Order/Defs/LinearOrder.lean @@ -223,9 +223,10 @@ lemma max_lt (h₁ : a < c) (h₂ : b < c) : max a b < c := by section Ord +set_option trace.profiler true in lemma compare_lt_iff_lt : compare a b = .lt ↔ a < b := by rw [LinearOrder.compare_eq_compareOfLessAndEq, compareOfLessAndEq] - split_ifs <;> simp only [*, lt_irrefl] + grind lemma compare_gt_iff_gt : compare a b = .gt ↔ b < a := by rw [LinearOrder.compare_eq_compareOfLessAndEq, compareOfLessAndEq] ``` ``` ℹ [61/61] Built Mathlib.Order.Defs.LinearOrder (518ms) info: Mathlib/Order/Defs/LinearOrder.lean:227:0: [Elab.async] [0.014062] elaborating proof of compare_lt_iff_lt [Elab.definition.value] [0.013827] compare_lt_iff_lt [Elab.step] [0.013735] rw [LinearOrder.compare_eq_compareOfLessAndEq, compareOfLessAndEq] grind [Elab.step] [0.013730] rw [LinearOrder.compare_eq_compareOfLessAndEq, compareOfLessAndEq] grind [Elab.step] [0.012536] grind Build completed successfully (61 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-order 19/60 Mathlib/Order/Defs/LinearOrder.lean 1 11 ['euprunin', 'github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] bryangingechen
assignee:bryangingechen
2-21696
2 days ago
6-35802
6 days ago
6-48258
6 days
31051 joelriou
author:joelriou
chore(CategoryTheory): adding grind annotations for `op_comp` and `Quiver.Hom.comp_toLoc` This shall be used in #30189 in order to define descent data (which shall be used to define stacks). --- In the application to #30189, any of `grind =`, `grind =_` or `grind _=_` would work. I am not sure which one is the best option. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 2/2 Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean,Mathlib/CategoryTheory/Opposites.lean 2 5 ['github-actions', 'joelriou', 'leanprover-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] dagurtomas
assignee:dagurtomas
2-21695
2 days ago
9-50571
9 days ago
15-62284
15 days
31147 daefigueroa
author:daefigueroa
feat(Dynamics): point transitive monoid actions and transitive points We define point transitivity for a monoid action on a topological space and define the set of transitive points. We add some basic lemmas and implications between topological transitivity and point transitivity. --- - [x] depends on: #28001 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-dynamics 114/6 Mathlib/Dynamics/Transitive.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] sgouezel
assignee:sgouezel
2-21695
2 days ago
9-58100
9 days ago
9-62283
9 days
31221 themathqueen
author:themathqueen
chore(Algebra/Star/LinearMap): moving stuff around Moving stuff around from `Algebra/Star/LinearMap` to other files. This way, the intrinsic star gets imported early on instead of keeping it all in one file with big imports. Also adds `LinearMap.toMatrix'_intrinsicStar : (star f).toMatrix' = f.toMatrix'.map star` and `LinearMap.isSelfAdjoint_iff_forall_isSelfAdjoint_toMatrix'_apply`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-algebra
label:t-algebra$
69/38 Mathlib/Algebra/Algebra/Bilinear.lean,Mathlib/Algebra/Star/LinearMap.lean,Mathlib/Algebra/Star/TensorProduct.lean,Mathlib/LinearAlgebra/Matrix/ToLin.lean 4 2 ['github-actions', 'themathqueen'] chrisflav
assignee:chrisflav
2-21693
2 days ago
9-73206
9 days ago
10-57760
10 days
31239 Paul-Lez
author:Paul-Lez
feat(NumberTheory/NumberField/InfinitePlace): A few easy lemmas about totally real fields --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 15/0 Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean 1 9 ['Paul-Lez', 'Ruben-VandeVelde', 'github-actions', 'riccardobrasca'] jcommelin
assignee:jcommelin
2-21692
2 days ago
8-70944
8 days ago
9-21571
9 days
31242 plp127
author:plp127
feat: express filter as supremum of principal filter and free filter Prove a filter is free iff it is smaller than the cofinite filter. Prove that every filter decomposes as the disjoint supremum of a principal filter and a free filter. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 52/0 Mathlib/Order/Filter/Cofinite.lean,Mathlib/Order/Lattice.lean 2 1 ['github-actions'] bryangingechen
assignee:bryangingechen
2-21691
2 days ago
10-13223
10 days ago
10-13213
10 days
31250 joelriou
author:joelriou
feat(AlgebraicTopology): inductive construction of StrictSegal structures We obtain a computable `StrictSegal (nerve C)` structure by using an inductive construction based on a new `StrictSegalCore` structure which provides a way to construct a `n + 1`-simplex by from a `1`-simplex and a `n`-simplex satisfying a compatibility. --- - [x] depends on: #31248 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology maintainer-merge 177/29 Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean,Mathlib/AlgebraicTopology/SimplicialSet/Path.lean,Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean,Mathlib/CategoryTheory/ComposableArrows.lean 4 20 ['emilyriehl', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'robin-carlier'] dagurtomas
assignee:dagurtomas
2-21689
2 days ago
9-52267
9 days ago
9-62564
9 days
31256 jsm28
author:jsm28
feat(Geometry/Euclidean/SignedDist): `signedInfDist_reindex` Add a lemma saying how `Affine.Simplex.signedInfDist` interacts with `Affine.Simplex.reindex`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 5/0 Mathlib/Geometry/Euclidean/SignedDist.lean 1 1 ['github-actions'] JovanGerb
assignee:JovanGerb
2-21688
2 days ago
9-72259
9 days ago
9-72234
9 days
31257 jsm28
author:jsm28
feat(LinearAlgebra/AffineSpace/Simplex/Basic): more `reindex` lemmas Add lemmas about how `reindex` interacts with `restrict`, `setInterior`, `interior` and `closedInterior`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
35/0 Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean 1 1 ['github-actions'] riccardobrasca
assignee:riccardobrasca
2-21687
2 days ago
9-70221
9 days ago
9-70197
9 days
31258 joelriou
author:joelriou
chore(CategoryTheory/Limits/Types): split Shapes.lean The file `CategoryTheory.Limits.Types.Shapes` is split in several files corresponding to different kinds of shapes of limits/colimits. (As that constructions are not self-dual, dual shapes appear in separate files, e.g. `Pushouts` and `Pullbacks`.) --- (The `large-import` warning is obviously a false positive...) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-category-theory 1131/1025 Mathlib.lean,Mathlib/Algebra/Category/Grp/Adjunctions.lean,Mathlib/AlgebraicGeometry/GluingOneHypercover.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/CategoryTheory/Extensive.lean,Mathlib/CategoryTheory/Galois/Basic.lean,Mathlib/CategoryTheory/GlueData.lean,Mathlib/CategoryTheory/Limits/FilteredColimitCommutesProduct.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/FintypeCat.lean,Mathlib/CategoryTheory/Limits/Pi.lean,Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean,Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean,Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean,Mathlib/CategoryTheory/Limits/Types/Coproducts.lean,Mathlib/CategoryTheory/Limits/Types/Equalizers.lean,Mathlib/CategoryTheory/Limits/Types/Multiequalizer.lean,Mathlib/CategoryTheory/Limits/Types/Products.lean,Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean,Mathlib/CategoryTheory/Limits/Types/Pushouts.lean,Mathlib/CategoryTheory/Limits/Types/Shapes.lean,Mathlib/CategoryTheory/Monoidal/Types/Basic.lean,Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean,Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean,Mathlib/CategoryTheory/Types/Monomorphisms.lean,Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean,Mathlib/Topology/Category/TopCat/Yoneda.lean,Mathlib/Topology/Gluing.lean,Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean 29 1 ['github-actions'] robin-carlier
assignee:robin-carlier
2-21686
2 days ago
9-68355
9 days ago
9-68394
9 days
31259 YaelDillies
author:YaelDillies
refactor(Dynamics): use `SetRel` notions of separation and cover ... instead of the handmade ones. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-dynamics 173/203 Mathlib/Data/Rel/Cover.lean,Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean,Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean,Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean,Mathlib/Dynamics/TopologicalEntropy/Semiconj.lean,Mathlib/Dynamics/TopologicalEntropy/Subset.lean,Mathlib/Topology/UniformSpace/Defs.lean 7 1 ['github-actions'] urkud
assignee:urkud
2-21685
2 days ago
8-74849
8 days ago
8-74824
8 days
31294 erdOne
author:erdOne
feat(Analysis): Weierstrass ℘ functions --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 274/0 Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean 2 2 ['github-actions', 'grunweg'] urkud
assignee:urkud
2-21681
2 days ago
8-45563
8 days ago
8-45604
8 days
31309 gasparattila
author:gasparattila
feat(Probability/Independence): reindexing lemmas for `iIndep*` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 105/30 Mathlib/Probability/Independence/Basic.lean,Mathlib/Probability/Independence/Kernel.lean 2 3 ['EtienneC30', 'gasparattila', 'github-actions'] sgouezel
assignee:sgouezel
2-21680
2 days ago
8-28445
8 days ago
8-28482
8 days
31315 Parcly-Taxel
author:Parcly-Taxel
feat: IMO 2010 Q5 I use an opaque power function to avoid `(kernel) deep recursion detected`. Cf. [#general > Panic in rw: Nat.pow exponent is too big @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Panic.20in.20rw.3A.20Nat.2Epow.20exponent.20is.20too.20big/near/513294906). IMO 252/0 Archive.lean,Archive/Imo/Imo2010Q5.lean 2 2 ['github-actions', 'jsm28'] dwrensha
assignee:dwrensha
2-21679
2 days ago
8-10417
8 days ago
8-10398
8 days
31356 adomani
author:adomani
feat: add inspect-like functions Produces a tree-like formatting for `Syntax`, `Expr` and `InfoTree`. Especially for the `InfoTree`s, there are *many* parts of it that do not get printed. For instance, this is how the `InfoTree`s of `set_option linter.missingDocs true` get printed: ```lean inspectIT set_option linter.missingDocs true /- commandCtx |-Info.ofCommandInfo: Lean.Elab.Command.elabSetOption, 'set_option…gDocs true' | |-Info.ofCompletionInfo.CompletionInfo.option 'set_option…issingDocs' | |-Info.ofOptionInfo: linter.missingDocs, Linter.linter.missingDocs -/ ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 720/0 Mathlib.lean,Mathlib/Util/Inspect.lean,MathlibTest/Inspect.lean 3 2 ['github-actions', 'plp127'] kim-em
assignee:kim-em
2-21677
2 days ago
6-66402
6 days ago
6-66436
6 days
31358 erdOne
author:erdOne
feat(RingTheory): universal factorization map of polynomials --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 220/0 Mathlib.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean,Mathlib/RingTheory/TensorProduct/Maps.lean 4 1 ['github-actions'] dwrensha
assignee:dwrensha
2-21676
2 days ago
6-65539
6 days ago
6-65513
6 days
31371 euprunin
author:euprunin
chore(RingTheory): golf `RingTheory/` using `order` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 11/20 Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean 6 4 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] EtienneC30
assignee:EtienneC30
2-21675
2 days ago
6-20417
6 days ago
6-28443
6 days
31387 gasparattila
author:gasparattila
feat(Topology/Separation): condition for regularity given a subbasis --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 19/0 Mathlib/Topology/Separation/Regular.lean 1 1 ['github-actions', 'plp127'] j-loreaux
assignee:j-loreaux
2-21675
2 days ago
5-46754
5 days ago
5-46785
5 days
31389 YaelDillies
author:YaelDillies
chore: golf proofs involving permutations This reduces the diff of #27433. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 175/247 Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Data/Fintype/Perm.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 11 7 ['YaelDillies', 'github-actions', 'plp127'] kex-y
assignee:kex-y
2-21674
2 days ago
5-39813
5 days ago
5-39787
5 days
31400 joelriou
author:joelriou
feat(CategoryTheory): deriving functors using a right derivability structure We develop the API for derived functors following the existence theorem obtained in #26374. If `Φ` is a localizer morphism, we introduce a predicate `Φ.Derives F` for a functor `F` saying that `Φ.functor ⋙ F` inverts the given class of morphisms, and in case `Φ` is a right derivability structure, we show that `F` admits a right derived functor, and we obtain a recognition lemma for this derived functor. (In the future, this will be applied to the injective/projective/flat derivability structures.) --- - [x] depends on: #26374 - [x] depends on: #22474 - [x] depends on: #26036 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 117/1 Mathlib.lean,Mathlib/CategoryTheory/Functor/Derived/PointwiseRightDerived.lean,Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean,Mathlib/CategoryTheory/Localization/DerivabilityStructure/Derives.lean 4 2 ['github-actions', 'mathlib4-dependent-issues-bot'] erdOne
assignee:erdOne
2-21669
2 days ago
5-30666
5 days ago
5-30641
5 days
31401 SnirBroshi
author:SnirBroshi
feat(NumberTheory/Real/GoldenRatio): add two more fib identities --- In case using `grind` here is considered too fragile, there are alternative proofs without `grind` in the first commit, let me know if I should switch to them. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 8/0 Mathlib/NumberTheory/Real/GoldenRatio.lean 1 1 ['github-actions'] mariainesdff
assignee:mariainesdff
2-21668
2 days ago
5-30689
5 days ago
5-30721
5 days
31526 Aaron1011
author:Aaron1011
feat: Add multiplicative version of structure theorem for finitely generated abelian groups This is similar to the multiplicative version of the structure theorem for *finite* abelian groups (using a pi type instead of a direct sum) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory new-contributor 18/0 Mathlib/GroupTheory/FiniteAbelian/Basic.lean 1 1 ['github-actions'] nobody
2-20729
2 days ago
2-20731
2 days ago
2-20770
2 days
28266 euprunin
author:euprunin
chore(RingTheory): golf entire `single_one_eq_pow` using `simp`. deprecate `single_inv`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 4/6 Mathlib/RingTheory/LaurentSeries.lean 1 10 ['erdOne', 'eric-wieser', 'euprunin', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] erdOne
assignee:erdOne
2-19287
2 days ago
6-46882
6 days ago
6-58232
6 days
31528 bwangpj
author:bwangpj
feat: MulAction.fixedPoints and MulAction.fixedBy under MulActionHom MulActionHom maps fixedPoints to fixedPoints and fixedBy to fixedBy. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory large-import 33/1 Mathlib/GroupTheory/GroupAction/FixedPoints.lean 1 0 [] nobody
2-10714
2 days ago
2-10796
2 days ago
2-10829
2 days
31502 urkud
author:urkud
feat: add a version of Bernoulli's inequality Motivated by #31492 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-algebra
label:t-algebra$
82/21 Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/Ring/Pow.lean 2 1 ['github-actions'] nobody
2-10695
2 days ago
2-10734
2 days ago
2-83211
2 days
30331 urkud
author:urkud
feat(Calculus): derivative of `ContinuousAlternatingMap.compContinuousLinearMap` --- - [ ] depends on: #30182 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 359/9 Mathlib.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousAlternatingMap.lean,Mathlib/Analysis/Convex/EGauge.lean,Mathlib/Analysis/NormedSpace/Alternating/Basic.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.lean 6 13 ['github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'urkud'] nobody
1-84531
1 day ago
1-84531
1 day ago
7-22899
7 days
31376 euprunin
author:euprunin
chore: use `order` instead of `linarith` to make the intent clearer --- Separated from the non-`linarith` cases for benchmarking reasons. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 57/55 Mathlib/Analysis/Convex/Slope.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean,Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean,Mathlib/Combinatorics/Schnirelmann.lean,Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean,Mathlib/FieldTheory/PrimitiveElement.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/Geometry/Euclidean/Triangle.lean,Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean,Mathlib/MeasureTheory/Integral/PeakFunction.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/NumberField/ClassNumber.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/Probability/Distributions/Exponential.lean,Mathlib/Probability/Distributions/Gamma.lean,Mathlib/Probability/StrongLaw.lean 32 7 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] nobody
1-78883
1 day ago
1-78923
1 day ago
5-53549
5 days
31530 euprunin
author:euprunin
chore(Data/List): golf entire `drop_length_sub_one` using `ext; grind` ---
Show trace profiling of drop_length_sub_one: 131 ms before, 272 ms after ### Trace profiling of `drop_length_sub_one` before PR 31530 ```diff diff --git a/Mathlib/Data/List/TakeDrop.lean b/Mathlib/Data/List/TakeDrop.lean index 7598f40935..efa3cdfbb1 100644 --- a/Mathlib/Data/List/TakeDrop.lean +++ b/Mathlib/Data/List/TakeDrop.lean @@ -68,6 +68,7 @@ theorem cons_get_drop_succ {l : List α} {n} : l.get n :: l.drop (n.1 + 1) = l.drop n.1 := (drop_eq_getElem_cons n.2).symm +set_option trace.profiler true in lemma drop_length_sub_one {l : List α} (h : l ≠ []) : l.drop (l.length - 1) = [l.getLast h] := by induction l with | nil => aesop ``` ``` ℹ [436/436] Built Mathlib.Data.List.TakeDrop (1.2s) info: Mathlib/Data/List/TakeDrop.lean:72:0: [Elab.async] [0.131338] elaborating proof of List.drop_length_sub_one [Elab.definition.value] [0.130820] List.drop_length_sub_one [Elab.step] [0.130582] induction l with | nil => aesop | cons a l ih => by_cases hl : l = [] · simp_all rw [length_cons, Nat.add_one_sub_one, List.drop_length_cons hl a] simp [getLast_cons, hl] [Elab.step] [0.130577] induction l with | nil => aesop | cons a l ih => by_cases hl : l = [] · simp_all rw [length_cons, Nat.add_one_sub_one, List.drop_length_cons hl a] simp [getLast_cons, hl] [Elab.step] [0.130571] induction l with | nil => aesop | cons a l ih => by_cases hl : l = [] · simp_all rw [length_cons, Nat.add_one_sub_one, List.drop_length_cons hl a] simp [getLast_cons, hl] [Elab.step] [0.124915] aesop [Elab.step] [0.124908] aesop [Elab.step] [0.124896] aesop [aesop.forward] [0.025181] building initial forward state [aesop] [0.017932] ✅️ (G0) [100.0000%] ⋯ ⊢ drop ([].length - 1) [] = [[].getLast h] [aesop] [0.013220] ✅️ Safe rules [aesop] [0.014939] 🏁 (G1) [100.0000%] ⋯ ⊢ drop ([].length - 1) [] = [[].getLast h] [aesop] [0.014777] 🏁 Normalisation Build completed successfully (436 jobs). ``` ### Trace profiling of `drop_length_sub_one` after PR 31530 ```diff diff --git a/Mathlib/Data/List/TakeDrop.lean b/Mathlib/Data/List/TakeDrop.lean index 7598f40935..d5c64d154e 100644 --- a/Mathlib/Data/List/TakeDrop.lean +++ b/Mathlib/Data/List/TakeDrop.lean @@ -68,14 +68,10 @@ theorem cons_get_drop_succ {l : List α} {n} : l.get n :: l.drop (n.1 + 1) = l.drop n.1 := (drop_eq_getElem_cons n.2).symm +set_option trace.profiler true in lemma drop_length_sub_one {l : List α} (h : l ≠ []) : l.drop (l.length - 1) = [l.getLast h] := by - induction l with - | nil => aesop - | cons a l ih => - by_cases hl : l = [] - · simp_all - rw [length_cons, Nat.add_one_sub_one, List.drop_length_cons hl a] - simp [getLast_cons, hl] + ext + grind section TakeI ``` ``` ℹ [436/436] Built Mathlib.Data.List.TakeDrop (1.4s) info: Mathlib/Data/List/TakeDrop.lean:72:0: [Elab.async] [0.273157] elaborating proof of List.drop_length_sub_one [Elab.definition.value] [0.272410] List.drop_length_sub_one [Elab.step] [0.272252] ext grind [Elab.step] [0.272245] ext grind [Elab.step] [0.271667] grind info: Mathlib/Data/List/TakeDrop.lean:74:2: [Elab.async] [0.030869] Lean.addDecl [Kernel] [0.030851] ✅️ typechecking declarations [List.drop_length_sub_one._proof_1_24] Build completed successfully (436 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-data 2/7 Mathlib/Data/List/TakeDrop.lean 1 1 ['github-actions'] nobody
1-77724
1 day ago
1-78987
1 day ago
1-79023
1 day
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 275/201 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,MathlibTest/hintAll.lean 17 19 ['BoltonBailey', 'Vierkantor', 'euprunin', 'github-actions', 'mathlib4-merge-conflict-bot'] adamtopaz
assignee:adamtopaz
1-76510
1 day ago
6-50001
6 days ago
30-6407
30 days
31539 joelriou
author:joelriou
feat(CategoryTheory/Triangulated): basic lemmas for t-structures This PR adds a few very basic lemmas about `t`-structures. For example `t.IsLE (X⟦a⟧) n' ↔ t.IsLE X n` when `a + n' = n`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 60/0 Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean 1 1 ['github-actions'] nobody
1-74469
1 day ago
1-74567
1 day ago
1-74542
1 day
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$
258/10 Mathlib/Algebra/Category/Grp/Preadditive.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean 4 n/a ['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
1-74405
1 day ago
unknown
unknown
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 - [x] depends on: #31515 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory toric 315/0 Mathlib.lean,Mathlib/RingTheory/Bialgebra/GroupLike.lean,Mathlib/RingTheory/Coalgebra/GroupLike.lean,Mathlib/RingTheory/HopfAlgebra/GroupLike.lean 4 81 ['Julian-Kuelshammer', 'Parcly-Taxel', 'Whysoserioushah', 'YaelDillies', 'erdOne', 'eric-wieser', 'github-actions', 'kckennylau', 'kim-em', 'leanprover-bot', 'mathlib4-dependent-issues-bot', 'smorel394'] eric-wieser
assignee:eric-wieser
1-72968
1 day ago
1-73157
1 day ago
182-48906
182 days
31536 joelriou
author:joelriou
feat(CategoryTheory/Triangulated): the category of triangles is preadditive --- Note that `Linear.LinearFunctor` is already imported by the other files in this directory like `TriangleShift` or `Pretriangulated`), so that the `large-import` label could be ignored. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-category-theory 103/0 Mathlib/CategoryTheory/Triangulated/Basic.lean 1 1 ['github-actions'] nobody
1-72938
1 day ago
1-76083
1 day ago
1-76123
1 day
31537 RemyDegenne
author:RemyDegenne
feat: totally bounded sets have finite covers New result: a totally bounded set has finite `ε`-covers for all `ε > 0`. I then use it to golf and generalize `exists_finite_isCover_of_isCompact_closure` and `exists_finite_isCover_of_isCompact` to extended pseudo-metric spaces. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-topology 36/17 Mathlib/Data/Rel/Cover.lean,Mathlib/Topology/MetricSpace/Cover.lean 2 7 ['YaelDillies', 'github-actions'] nobody
1-71856
1 day ago
1-71856
1 day ago
1-73558
1 day
31219 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra): lemma about `IsBaseChange` under exact sequence In this lemma, we proved cokernel preserve `IsBaseChange S` and kernel preserve `IsBaseChange S` when `S` is flat. Co-authored-by: Wang Jingting --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 162/0 Mathlib.lean,Mathlib/Algebra/FiveLemma.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean 3 2 ['github-actions', 'mathlib4-merge-conflict-bot'] nobody
1-67033
1 day ago
1-67053
1 day ago
8-82539
8 days
31543 grunweg
author:grunweg
chore: rename FiniteDimensional.of_fintype_basis The lemma has a Finite hypothesis now, not a Fintype one. The new name was discussed on zulip: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.20convention/near/555088215 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
37/33 Archive/Sensitivity.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean,Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean,Mathlib/LinearAlgebra/BilinearForm/Properties.lean,Mathlib/LinearAlgebra/Complex/FiniteDimensional.lean,Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean,Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean,Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean,Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean,Mathlib/NumberTheory/FunctionField.lean,Mathlib/RingTheory/Norm/Basic.lean,Mathlib/RingTheory/Trace/Basic.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean 15 1 ['github-actions'] nobody
1-65974
1 day ago
1-71165
1 day ago
1-71238
1 day
31540 themathqueen
author:themathqueen
chore: move `LinearAlgebra/Matrix/HermitianFunctionalCalculus` to `Analysis/Matrix` `Analysis/Matrix` is a more appropriate location for this as these are analysis results and depends on `Analysis/Matrix/Spectrum`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed maintainer-merge t-analysis 2/2 Mathlib.lean,Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean,Mathlib/Analysis/Matrix/Order.lean 3 6 ['Vierkantor', 'github-actions', 'grunweg'] nobody
1-65884
1 day ago
1-71958
1 day ago
1-73460
1 day
30083 grunweg
author:grunweg
feat: local frames in a vector bundle We construct local frames on a vector from local trivialisations. The former constructs, given a trivialisation `e` of the vector bundle and a basis of the model fibre, `Basis.localFrame` is a local frame on `e.baseSet` A future PR will use this to define the local extension of a tangent vector to a vector field near a point. From the path towards geodesics and the Levi-Civita connection. Co-authored-by: Patrick Massot [patrickmassot@free.fr](mailto:patrickmassot@free.fr) --- - [x] depends on: #27021 - [x] depends on: #30338 - [x] depends on: #31542 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 320/22 Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean 1 41 ['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] ocfnash
assignee:ocfnash
1-65266
1 day ago
1-65771
1 day ago
14-62880
14 days
31550 RemyDegenne
author:RemyDegenne
feat: properties of sub-Gaussian random variables Add several simple lemmas, and the fact that for `X, Y` two independent sub-Gaussian random variables such that `μ[X] ≥ μ[Y]`, the probability that `X ≤ Y` is bounded by an exponential function of `(μ[X] - μ[Y])^2`. From the LeanBandits project. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 93/0 Mathlib/Probability/Moments/Basic.lean,Mathlib/Probability/Moments/IntegrableExpMul.lean,Mathlib/Probability/Moments/SubGaussian.lean 3 1 ['github-actions'] nobody
1-64774
1 day ago
1-64779
1 day ago
1-64822
1 day
31511 bwangpj
author:bwangpj
feat: fixed points of normal subgroup is stable under the group action The set of fixed points of a normal subgroup is stable under the group action. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 34/0 Mathlib/GroupTheory/GroupAction/SubMulAction.lean 1 3 ['ADedecker', 'bwangpj', 'github-actions'] nobody
1-64615
1 day ago
2-54420
2 days ago
2-54453
2 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`. From ClassFieldTheory --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CFT t-algebra
label:t-algebra$
6/0 Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/Group/Nat/Defs.lean 2 2 ['github-actions', 'plp127'] mattrobball
assignee:mattrobball
1-63650
1 day ago
11-46109
11 days ago
16-46413
16 days
31430 gasparattila
author:gasparattila
feat(Topology/Sets): `Unique`, `Nontrivial`, etc. instances for `(Nonempty)Compacts` --- - [x] depends on: #31379 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 24/0 Mathlib/Topology/Sets/Compacts.lean 1 2 ['github-actions', 'mathlib4-dependent-issues-bot'] nobody
1-61127
1 day ago
1-61142
1 day ago
1-62464
1 day
31549 ADedecker
author:ADedecker
feat: more API on tsupport and operations on functions Variants of [Function.mulSupport_one](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Notation/Support.html#Function.mulSupport_one), [Function.mulSupport_binop_subset](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Notation/Support.html#Function.mulSupport_binop_subset), [Function.mulSupport_inv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Support.html#Function.mulSupport_inv), [Function.mulSupport_div](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Support.html#Function.mulSupport_div)... for the topological support. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 52/9 Archive/Hairer.lean,Mathlib/Topology/Algebra/Support.lean 2 1 ['github-actions'] nobody
1-59923
1 day ago
1-65005
1 day ago
1-65042
1 day
31555 EtienneC30
author:EtienneC30
feat: bounded distance implies bounded space --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 24/0 Mathlib/Topology/MetricSpace/Pseudo/Basic.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 2 1 ['github-actions'] nobody
1-58426
1 day ago
1-58489
1 day ago
1-58464
1 day
30928 themathqueen
author:themathqueen
chore(LinearAlgebra/Matrix/PosDef): rename `Matrix.InnerProductSpace.ofMatrix` - Renames `Matrix.NormedAddCommGroup.ofMatrix` to `Matrix.PosDef.normedAddCommGroup` - Removes `Matrix.InnerProductSpace.ofMatrix` and adds `Matrix.PosSemidef.innerProductSpace` instead. - Removes `Matrix.PosDef.matrixInnerProductSpace` and adds `Matrix.PosSemidef.matrixInnerProductSpace` instead. - Defines `Matrix.PosSemidef.seminormedAddCommGroup` and `Matrix.PosSemidef.matrixSeminormedAddCommGroup`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
71/41 Mathlib/Analysis/Matrix/Order.lean,Mathlib/LinearAlgebra/Matrix/LDL.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean 3 22 ['YaelDillies', 'eric-wieser', 'github-actions', 'riccardobrasca', 'themathqueen'] riccardobrasca
assignee:riccardobrasca
1-57791
1 day ago
1-74079
1 day ago
18-64022
18 days
31514 staroperator
author:staroperator
feat(Order): reprove Dickson's lemma Reprove Dickson's lemma `Pi.wellQuasiOrderedLE` under assumption of preorder and well-quasi-order, and generalize it to any relation and/or product of well-quasi-ordered sets. Also add an instance of `WellQuasiOrderedLE` from `LinearOrder` and `WellFoundedLT`. `Pi.isPWO` and `Finsupp.isPWO` are deprecated since they are superseded by `isPWO_of_wellQuasiOrderedLE` and instances. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 89/33 Mathlib/Data/Finsupp/PWO.lean,Mathlib/Order/Preorder/Finsupp.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/Order/WellQuasiOrder.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean 5 7 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] nobody
1-57298
1 day ago
2-11477
2 days ago
2-52321
2 days
27107 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(GroupTheory/GroupAction/SubMulAction/Combination) : combinations and group actions `Nat.Combination X n` is the type all `s : Finset X` such that `s.card = n`. This PR provides some API for this subtype and the `SubMulAction` it inherits when a group acts on `X`. It will be used in conjunction with the description of some maximal subgroups of `Equiv.Perm X` to construct primitive actions. Question on the names: when `X` is a fintype, there is `Finset.powersetCard` that gives the same object, as a `Finset`. But the present PR also applies when `X` is infinite. Then maybe `Nat.Combination` should be renamed as `Set.powersetCard`? --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 336/0 Mathlib.lean,Mathlib/Data/Fintype/EquivFin.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean 4 40 ['AntoineChambert-Loir', 'alreadydone', 'github-actions', 'mathlib4-merge-conflict-bot', 'tb65536'] alreadydone
assignee:alreadydone
1-55815
1 day ago
1-55834
1 day ago
122-54774
122 days
31548 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Analysis/Convex/Quasiconvex): properties of quasiconcave functions Prove properties of quasiconcave/quasiconvex functions: * monotony * restriction * connectedness of preimages Co-authored with: @ADedecker --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import 107/1 Mathlib/Analysis/Convex/Quasiconvex.lean,Mathlib/Data/Set/Basic.lean 2 1 ['github-actions'] nobody
1-55730
1 day ago
1-65713
1 day ago
1-65747
1 day
31547 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Analysis/Convex/SaddlePoint): define saddle points of a map * `IsSaddlePointOn`. Let `f : E × F → β` be a map, where `β` is preordered. A pair `(a,b)` in `E × F` is a *saddle point* of `f` on `X × Y` if `f a y ≤ f x b` for all `x ∈ X` and all `y `in Y`. * `isSaddlePointOn_iff`: if `β` is a complete linear order, then `(a, b) ∈ X × Y` is a saddle point on `X × Y` iff `⨆ y ∈ Y, f a y = ⨅ x ∈ X f x b = f a b`. Co-authored-by: @ADedecker --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import 228/0 Mathlib.lean,Mathlib/Analysis/Convex/Quasiconvex.lean,Mathlib/Analysis/Convex/SaddlePoint.lean,Mathlib/Data/Set/Basic.lean 4 1 ['github-actions'] nobody
1-55722
1 day ago
1-65816
1 day ago
1-65847
1 day
31326 sgouezel
author:sgouezel
chore: deprecate `smooth` variants of `contMDiff` results --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 22/41 Mathlib/Geometry/Manifold/PartitionOfUnity.lean 1 6 ['github-actions', 'grunweg', 'sgouezel'] grunweg
assignee:grunweg
1-55271
1 day ago
5-39446
5 days ago
5-49803
5 days
31166 gasparattila
author:gasparattila
feat(Topology/Sets): add `NonemptyCompacts.map` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 34/0 Mathlib/Topology/Sets/Compacts.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
1-53759
1 day ago
12-41979
12 days ago
12-42020
12 days
30201 luigi-massacci
author:luigi-massacci
feat: add differentiation for ContDiffMapSupportedIn Add a wrapper for `iteratedFDeriv` on `ContDiffMapSupportedIn` and related API. --- - [x] depends on: #30199 - [x] depends on: #30198 - [x] depends on: #30197 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-analysis 180/11 Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Topology/ContinuousMap/Bounded/Basic.lean 2 44 ['ADedecker', 'github-actions', 'grunweg', 'luigi-massacci', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
1-53606
1 day ago
1-59433
1 day ago
5-50320
5 days
31046 Thmoas-Guan
author:Thmoas-Guan
feat(Homology) : map between `Ext` induced by exact functor In this PR, we developed the additive map `Ext(M,N) => Ext(F(M), F(N))` when `F` is exact functor between abelian category. We also developed its linear version when `F` is linear. Co-authored-by: Wang Jingting --- - [x] depends on: #31004 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 475/0 Mathlib.lean,Mathlib/Algebra/Homology/DerivedCategory/ExactFunctor.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean 3 2 ['github-actions', 'mathlib4-dependent-issues-bot'] nobody
1-52930
1 day ago
1-65783
1 day ago
1-65812
1 day
31554 bwangpj
author:bwangpj
feat: define Subrepresentation This is upstreamed from the FLT project. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) FLT t-algebra
label:t-algebra$
108/0 Mathlib.lean,Mathlib/LinearAlgebra/Span/Defs.lean,Mathlib/RepresentationTheory/Subrepresentation.lean 3 1 ['github-actions'] nobody
1-48508
1 day ago
1-58863
1 day ago
1-59225
1 day
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 9 ['Rob23oba', 'eric-wieser', 'github-actions', 'kim-em', 'mathlib4-merge-conflict-bot', 'pechersky'] pechersky
assignee:pechersky
1-35845
1 day ago
59-21721
1 month ago
80-76214
80 days
31559 joelriou
author:joelriou
feat(Algebra/Homology): a factorization of morphisms of cochain complexes Let `C` be an abelian category with enough injectives. We show that any morphism `f : K ⟶ L` between bounded below cochain complexes in `C` can be factored as `i ≫ p` where `i : K ⟶ L'` is a monomorphism (with `L'` bounded below) and `p : L' ⟶ L` a quasi-isomorphism that is an epimorphism with a degreewise injective kernel. (This is part of the factorization axiom CM5 for a model category structure on bounded below cochain complexes.) (This shall be used in the formalization of right derived functors using injective resolutions.) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 186/32 Mathlib.lean,Mathlib/Algebra/Homology/Embedding/CochainComplex.lean,Mathlib/Algebra/Homology/Factorizations/CM5b.lean,Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean,Mathlib/Algebra/Homology/QuasiIso.lean,Mathlib/CategoryTheory/Preadditive/Injective/Basic.lean 6 1 ['github-actions'] nobody
1-42043
1 day ago
1-49450
1 day ago
1-49426
1 day
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`. I'm avoiding changing names to avoid lots of deprecated aliases during the transition period. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
92/87 Mathlib/Algebra/CubicDiscriminant.lean,Mathlib/Algebra/Polynomial/Factors.lean,Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/Analysis/Complex/Polynomial/GaussLucas.lean,Mathlib/Analysis/Matrix/Spectrum.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Finite/GaloisField.lean,Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.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/NumberTheory/Cyclotomic/Basic.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 21 5 ['github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'tb65536'] riccardobrasca
assignee:riccardobrasca
1-40081
1 day ago
1-43171
1 day ago
12-74505
12 days
31497 staroperator
author:staroperator
feat(Algebra/Group): semigroup ideals This PR defines semigroup ideals; they are different from (in fact, a weaker form of) ring ideals. We prove that in a monoid whose algebraic order is well-quasi-order, all semigroup ideals are finitely generated, and the semigroup ideals satisfy the ascending chain condition. These definitions and results are useful in #27414. Note: Following `Ideal` with `Submodule`, `SemigroupIdeal M` is an `abbrev` of `SubMulAction M M`. Also, `Ideal.closure` is a re-definition of `SubMulAction.closure` and `Ideal.FG` is defeq to `SubMulAction.FG` but unfolds more nicely. --- - [x] depends on: #31517 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-algebra
label:t-algebra$
194/0 Mathlib.lean,Mathlib/Algebra/Group/Ideal.lean,Mathlib/Algebra/Order/Group/Ideal.lean 3 24 ['YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'staroperator'] nobody
1-38982
1 day ago
1-53437
1 day ago
2-74295
2 days
31273 euprunin
author:euprunin
chore(MeasureTheory/MeasurableSpace): golf `measurableSet_generateFrom_singleton_iff` using `grind` ---
Show trace profiling of measurableSet_generateFrom_singleton_iff: 70 ms before, 91 ms after ### Trace profiling of `measurableSet_generateFrom_singleton_iff` before PR 31273 ```diff diff --git a/Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean b/Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean index baf5299a16..fb8e3fc16d 100644 --- a/Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean +++ b/Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean @@ -42,6 +42,7 @@ end MeasurableSpace namespace MeasureTheory +set_option trace.profiler true in theorem measurableSet_generateFrom_singleton_iff {s t : Set α} : MeasurableSet[MeasurableSpace.generateFrom {s}] t ↔ t = ∅ ∨ t = s ∨ t = sᶜ ∨ t = univ := by simp_rw [MeasurableSpace.generateFrom_singleton] ``` ``` ℹ [880/880] Built Mathlib.MeasureTheory.MeasurableSpace.MeasurablyGenerated (1.2s) info: Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean:46:0: [Elab.async] [0.071352] elaborating proof of MeasureTheory.measurableSet_generateFrom_singleton_iff [Elab.definition.value] [0.069878] MeasureTheory.measurableSet_generateFrom_singleton_iff [Elab.step] [0.068734] simp_rw [MeasurableSpace.generateFrom_singleton] unfold MeasurableSet MeasurableSpace.MeasurableSet' MeasurableSpace.comap simp_rw [MeasurableSpace.measurableSet_top, true_and] constructor · rintro ⟨x, rfl⟩ by_cases hT : True ∈ x · by_cases hF : False ∈ x · refine Or.inr <| Or.inr <| Or.inr <| subset_antisymm (subset_univ _) ?_ suffices x = univ by simp only [this, preimage_univ, subset_refl] refine subset_antisymm (subset_univ _) ?_ rw [univ_eq_true_false] rintro - (rfl | rfl) · assumption · assumption · have hx : x = { True } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hT⟩ by_contra hpneg rw [eq_iff_iff, iff_true, ← false_iff] at hpneg exact hF (by convert hp) simp [hx] · by_cases hF : False ∈ x · have hx : x = { False } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hF⟩ grind refine Or.inr <| Or.inr <| Or.inl <| ?_ simp [hx, compl_def] · refine Or.inl <| subset_antisymm ?_ <| empty_subset _ suffices x ⊆ ∅ by rw [subset_empty_iff] at this simp only [this, preimage_empty, subset_refl] intro p hp fin_cases p · contradiction · contradiction · rintro (rfl | rfl | rfl | rfl) on_goal 1 => use ∅ on_goal 2 => use { True } on_goal 3 => use { False } on_goal 4 => use Set.univ all_goals simp [compl_def] [Elab.step] [0.068727] simp_rw [MeasurableSpace.generateFrom_singleton] unfold MeasurableSet MeasurableSpace.MeasurableSet' MeasurableSpace.comap simp_rw [MeasurableSpace.measurableSet_top, true_and] constructor · rintro ⟨x, rfl⟩ by_cases hT : True ∈ x · by_cases hF : False ∈ x · refine Or.inr <| Or.inr <| Or.inr <| subset_antisymm (subset_univ _) ?_ suffices x = univ by simp only [this, preimage_univ, subset_refl] refine subset_antisymm (subset_univ _) ?_ rw [univ_eq_true_false] rintro - (rfl | rfl) · assumption · assumption · have hx : x = { True } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hT⟩ by_contra hpneg rw [eq_iff_iff, iff_true, ← false_iff] at hpneg exact hF (by convert hp) simp [hx] · by_cases hF : False ∈ x · have hx : x = { False } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hF⟩ grind refine Or.inr <| Or.inr <| Or.inl <| ?_ simp [hx, compl_def] · refine Or.inl <| subset_antisymm ?_ <| empty_subset _ suffices x ⊆ ∅ by rw [subset_empty_iff] at this simp only [this, preimage_empty, subset_refl] intro p hp fin_cases p · contradiction · contradiction · rintro (rfl | rfl | rfl | rfl) on_goal 1 => use ∅ on_goal 2 => use { True } on_goal 3 => use { False } on_goal 4 => use Set.univ all_goals simp [compl_def] [Elab.step] [0.012541] simp_rw [MeasurableSpace.generateFrom_singleton] [Elab.step] [0.041180] · rintro ⟨x, rfl⟩ by_cases hT : True ∈ x · by_cases hF : False ∈ x · refine Or.inr <| Or.inr <| Or.inr <| subset_antisymm (subset_univ _) ?_ suffices x = univ by simp only [this, preimage_univ, subset_refl] refine subset_antisymm (subset_univ _) ?_ rw [univ_eq_true_false] rintro - (rfl | rfl) · assumption [… 112 lines omitted …] · assumption · assumption · have hx : x = { True } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hT⟩ by_contra hpneg rw [eq_iff_iff, iff_true, ← false_iff] at hpneg exact hF (by convert hp) simp [hx] [Elab.step] [0.028797] by_cases hF : False ∈ x · refine Or.inr <| Or.inr <| Or.inr <| subset_antisymm (subset_univ _) ?_ suffices x = univ by simp only [this, preimage_univ, subset_refl] refine subset_antisymm (subset_univ _) ?_ rw [univ_eq_true_false] rintro - (rfl | rfl) · assumption · assumption · have hx : x = { True } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hT⟩ by_contra hpneg rw [eq_iff_iff, iff_true, ← false_iff] at hpneg exact hF (by convert hp) simp [hx] [Elab.step] [0.025079] · have hx : x = { True } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hT⟩ by_contra hpneg rw [eq_iff_iff, iff_true, ← false_iff] at hpneg exact hF (by convert hp) simp [hx] [Elab.step] [0.025059] have hx : x = { True } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hT⟩ by_contra hpneg rw [eq_iff_iff, iff_true, ← false_iff] at hpneg exact hF (by convert hp) simp [hx] [Elab.step] [0.025057] have hx : x = { True } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hT⟩ by_contra hpneg rw [eq_iff_iff, iff_true, ← false_iff] at hpneg exact hF (by convert hp) simp [hx] [Elab.step] [0.015096] simp [hx] [Meta.synthInstance] [0.011997] ❌️ Nontrivial (Set α) [Elab.step] [0.011467] · by_cases hF : False ∈ x · have hx : x = { False } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hF⟩ grind refine Or.inr <| Or.inr <| Or.inl <| ?_ simp [hx, compl_def] · refine Or.inl <| subset_antisymm ?_ <| empty_subset _ suffices x ⊆ ∅ by rw [subset_empty_iff] at this simp only [this, preimage_empty, subset_refl] intro p hp fin_cases p · contradiction · contradiction [Elab.step] [0.011367] by_cases hF : False ∈ x · have hx : x = { False } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hF⟩ grind refine Or.inr <| Or.inr <| Or.inl <| ?_ simp [hx, compl_def] · refine Or.inl <| subset_antisymm ?_ <| empty_subset _ suffices x ⊆ ∅ by rw [subset_empty_iff] at this simp only [this, preimage_empty, subset_refl] intro p hp fin_cases p · contradiction · contradiction [Elab.step] [0.011363] by_cases hF : False ∈ x · have hx : x = { False } := by ext p refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hF⟩ grind refine Or.inr <| Or.inr <| Or.inl <| ?_ simp [hx, compl_def] · refine Or.inl <| subset_antisymm ?_ <| empty_subset _ suffices x ⊆ ∅ by rw [subset_empty_iff] at this simp only [this, preimage_empty, subset_refl] intro p hp fin_cases p · contradiction · contradiction Build completed successfully (880 jobs). ``` ### Trace profiling of `measurableSet_generateFrom_singleton_iff` after PR 31273 ```diff diff --git a/Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean b/Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean index baf5299a16..b67f37d372 100644 --- a/Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean +++ b/Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean @@ -42,6 +42,7 @@ end MeasurableSpace namespace MeasureTheory +set_option trace.profiler true in theorem measurableSet_generateFrom_singleton_iff {s t : Set α} : MeasurableSet[MeasurableSpace.generateFrom {s}] t ↔ t = ∅ ∨ t = s ∨ t = sᶜ ∨ t = univ := by simp_rw [MeasurableSpace.generateFrom_singleton] @@ -51,35 +52,14 @@ theorem measurableSet_generateFrom_singleton_iff {s t : Set α} : · rintro ⟨x, rfl⟩ by_cases hT : True ∈ x · by_cases hF : False ∈ x - · refine Or.inr <| Or.inr <| Or.inr <| subset_antisymm (subset_univ _) ?_ - suffices x = univ by simp only [this, preimage_univ, subset_refl] - refine subset_antisymm (subset_univ _) ?_ - rw [univ_eq_true_false] - rintro - (rfl | rfl) - · assumption - · assumption - · have hx : x = {True} := by - ext p - refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hT⟩ - by_contra hpneg - rw [eq_iff_iff, iff_true, ← false_iff] at hpneg - exact hF (by convert hp) - simp [hx] + · suffices x = univ by grind + grind [univ_eq_true_false] + · grind · by_cases hF : False ∈ x - · have hx : x = {False} := by - ext p - refine ⟨fun hp ↦ mem_singleton_iff.2 ?_, fun hp ↦ hp ▸ hF⟩ - grind - refine Or.inr <| Or.inr <| Or.inl <| ?_ - simp [hx, compl_def] - · refine Or.inl <| subset_antisymm ?_ <| empty_subset _ - suffices x ⊆ ∅ by - rw [subset_empty_iff] at this - simp only [this, preimage_empty, subset_refl] + · grind + · suffices x ⊆ ∅ by grind intro p hp - fin_cases p - · contradiction - · contradiction + fin_cases p <;> contradiction · rintro (rfl | rfl | rfl | rfl) on_goal 1 => use ∅ on_goal 2 => use {True} ``` ``` ℹ [880/880] Built Mathlib.MeasureTheory.MeasurableSpace.MeasurablyGenerated (1.2s) info: Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean:46:0: [Elab.async] [0.092756] elaborating proof of MeasureTheory.measurableSet_generateFrom_singleton_iff [Elab.definition.value] [0.091377] MeasureTheory.measurableSet_generateFrom_singleton_iff [Elab.step] [0.090497] simp_rw [MeasurableSpace.generateFrom_singleton] unfold MeasurableSet MeasurableSpace.MeasurableSet' MeasurableSpace.comap simp_rw [MeasurableSpace.measurableSet_top, true_and] constructor · rintro ⟨x, rfl⟩ by_cases hT : True ∈ x · by_cases hF : False ∈ x · suffices x = univ by grind grind [univ_eq_true_false] · grind · by_cases hF : False ∈ x · grind · suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction · rintro (rfl | rfl | rfl | rfl) on_goal 1 => use ∅ on_goal 2 => use { True } on_goal 3 => use { False } on_goal 4 => use Set.univ all_goals simp [compl_def] [Elab.step] [0.090489] simp_rw [MeasurableSpace.generateFrom_singleton] unfold MeasurableSet MeasurableSpace.MeasurableSet' MeasurableSpace.comap simp_rw [MeasurableSpace.measurableSet_top, true_and] constructor · rintro ⟨x, rfl⟩ by_cases hT : True ∈ x · by_cases hF : False ∈ x · suffices x = univ by grind grind [univ_eq_true_false] · grind · by_cases hF : False ∈ x · grind · suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction · rintro (rfl | rfl | rfl | rfl) on_goal 1 => use ∅ on_goal 2 => use { True } on_goal 3 => use { False } on_goal 4 => use Set.univ all_goals simp [compl_def] [Elab.step] [0.012749] simp_rw [MeasurableSpace.generateFrom_singleton] [Elab.step] [0.062153] · rintro ⟨x, rfl⟩ by_cases hT : True ∈ x · by_cases hF : False ∈ x · suffices x = univ by grind grind [univ_eq_true_false] · grind · by_cases hF : False ∈ x · grind · suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction [Elab.step] [0.062134] rintro ⟨x, rfl⟩ by_cases hT : True ∈ x · by_cases hF : False ∈ x · suffices x = univ by grind grind [univ_eq_true_false] · grind · by_cases hF : False ∈ x · grind · suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction [Elab.step] [0.062131] rintro ⟨x, rfl⟩ by_cases hT : True ∈ x · by_cases hF : False ∈ x · suffices x = univ by grind grind [univ_eq_true_false] · grind · by_cases hF : False ∈ x · grind · suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction [Elab.step] [0.031421] · by_cases hF : False ∈ x · suffices x = univ by grind grind [univ_eq_true_false] · grind [Elab.step] [0.031410] by_cases hF : False ∈ x · suffices x = univ by grind grind [univ_eq_true_false] · grind [Elab.step] [0.031407] by_cases hF : False ∈ x · suffices x = univ by grind grind [univ_eq_true_false] · grind [Elab.step] [0.019456] · suffices x = univ by grind grind [univ_eq_true_false] [Elab.step] [0.019448] suffices x = univ by grind grind [univ_eq_true_false] [Elab.step] [0.019444] suffices x = univ by grind grind [univ_eq_true_false] [Elab.step] [0.010344] grind [univ_eq_true_false] [Elab.step] [0.011419] · grind [Elab.step] [0.011411] grind [Elab.step] [0.011407] grind [Elab.step] [0.011402] grind [Elab.step] [0.029820] · by_cases hF : False ∈ x · grind · suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction [Elab.step] [0.029812] by_cases hF : False ∈ x · grind · suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction [Elab.step] [0.029808] by_cases hF : False ∈ x · grind · suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction [Elab.step] [0.011217] · grind [Elab.step] [0.011211] grind [Elab.step] [0.011208] grind [Elab.step] [0.011203] grind [Elab.step] [0.017927] · suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction [Elab.step] [0.017920] suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction [Elab.step] [0.017914] suffices x ⊆ ∅ by grind intro p hp fin_cases p <;> contradiction [Elab.step] [0.014460] suffices x ⊆ ∅ by grind [Elab.step] [0.014455] refine_lift suffices x ⊆ ∅ by grind; ?_ [Elab.step] [0.014451] focus (refine no_implicit_lambda% (suffices x ⊆ ∅ by grind; ?_); rotate_right) [Elab.step] [0.014447] (refine no_implicit_lambda% (suffices x ⊆ ∅ by grind; ?_); rotate_right) [Elab.step] [0.014445] (refine no_implicit_lambda% (suffices x ⊆ ∅ by grind; ?_); rotate_right) [Elab.step] [0.014442] (refine no_implicit_lambda% (suffices x ⊆ ∅ by grind; ?_); rotate_right) [Elab.step] [0.014440] refine no_implicit_lambda% (suffices x ⊆ ∅ by grind; ?_); rotate_right [Elab.step] [0.014438] refine no_implicit_lambda% (suffices x ⊆ ∅ by grind; ?_); rotate_right [Elab.step] [0.014428] refine no_implicit_lambda% (suffices x ⊆ ∅ by grind; ?_) [Elab.step] [0.013889] grind [Elab.step] [0.013885] grind [Elab.step] [0.013879] grind Build completed successfully (880 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
maintainer-merge t-measure-probability 6/27 Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean 1 3 ['EtienneC30', 'github-actions'] EtienneC30
assignee:EtienneC30
1-37550
1 day ago
1-37550
1 day ago
8-78992
8 days
31398 YaelDillies
author:YaelDillies
feat(MeasureTheory/Measure): `comap_apply` version for measurable equivs This one is stated in terms of the preimage of the inverse, which is sometimes (but not always!) more useful than the image of the forward map. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-measure-probability 13/0 Mathlib/MeasureTheory/Measure/Restrict.lean 1 4 ['EtienneC30', 'YaelDillies', 'github-actions'] EtienneC30
assignee:EtienneC30
1-36395
1 day ago
1-36420
1 day ago
5-29604
5 days
31558 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(Topology/Sublevel): sublevels and overlevels, relation with semicontinuity Define sublevels and overlevels of a function, in various sorts (`LE` or LT`, relative to a set). Relation with semicontinuity. `Set.inter_leSublevelOn_empty_iff_exists_finset_inter`, an intersection of sublevels of a lower semicontinuous function on a compact set is empty if and only if a finite sub-intersection is already empty. Co-authored with @ADedecker --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 399/0 Mathlib.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Sublevel.lean 3 1 ['github-actions'] nobody
1-36181
1 day ago
1-53265
1 day ago
1-53299
1 day
28013 astrainfinita
author:astrainfinita
feat: Lindemann-Weierstrass Theorem This PR continues the work from #6718. -------- - [x] depends on: #18693 - [ ] depends on: #29121 t-algebra t-analysis
label:t-algebra$
1141/54 Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/NoZeroSMulDivisors/Basic.lean,Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/NumberTheory/Transcendental/Lindemann/AlgebraicPart.lean,Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean,Mathlib/NumberTheory/Transcendental/Lindemann/Basic.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Eval.lean,docs/100.yaml,docs/1000.yaml 11 n/a ['astrainfinita', 'github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
1-32546
1 day ago
unknown
unknown
31562 MichaelStollBayreuth
author:MichaelStollBayreuth
chore: clean up imports This PR removes unnecessary imports from a number of files. The method is not very systematic: prompted by a PR I was reviewing that had a few unnecessary imports (not noticed by `#min_imports`), I was looking through Mathlib for these imports and tried to remove them (and possibly further imports in the files I was looking at). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 3/94 Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2019Q4.lean,Counterexamples/Phillips.lean,Counterexamples/SorgenfreyLine.lean,Mathlib/Algebra/IsPrimePow.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Range.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/Rayleigh.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean,Mathlib/Combinatorics/Schnirelmann.lean,Mathlib/Data/Int/NatPrime.lean,Mathlib/Data/Nat/Factorization/Defs.lean,Mathlib/Data/Nat/Factorization/PrimePow.lean,Mathlib/Data/Nat/Prime/Int.lean,Mathlib/Data/Num/Prime.lean,Mathlib/Data/ZMod/Coprime.lean,Mathlib/Dynamics/PeriodicPts/Lemmas.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/FieldTheory/RatFunc/Degree.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean,Mathlib/GroupTheory/GroupAction/Primitive.lean,Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean,Mathlib/LinearAlgebra/CrossProduct.lean,Mathlib/LinearAlgebra/InvariantBasisNumber.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/LinearAlgebra/Reflection.lean,Mathlib/Logic/Godel/GodelBetaFunction.lean,Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean,Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean,Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean,Mathlib/NumberTheory/Multiplicity.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/NumberTheory/Primorial.lean,Mathlib/NumberTheory/Real/GoldenRatio.lean,Mathlib/NumberTheory/Real/Irrational.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean,Mathlib/RingTheory/Adjoin/FG.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/DualNumber.lean,Mathlib/RingTheory/EuclideanDomain.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/RingTheory/Ideal/NatInt.lean,Mathlib/RingTheory/Int/Basic.lean,Mathlib/RingTheory/KrullDimension/PID.lean,Mathlib/RingTheory/Polynomial/Dickson.lean,Mathlib/RingTheory/Polynomial/Quotient.lean,Mathlib/RingTheory/Radical.lean,Mathlib/RingTheory/ZMod/UnitsCyclic.lean,Mathlib/Topology/Algebra/InfiniteSum/ConditionalInt.lean,Mathlib/Topology/ContinuousMap/Compact.lean,Mathlib/Topology/ContinuousMap/ContinuousSqrt.lean,Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean 57 4 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] nobody
1-31131
1 day ago
1-31131
1 day ago
1-35890
1 day
31571 erdOne
author:erdOne
feat(RingTheory): existence of local algebra with given residue field --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 221/0 Mathlib.lean,Mathlib/RingTheory/LocalRing/SeparableResidueField.lean 2 1 ['github-actions'] nobody
1-30021
1 day ago
1-30033
1 day ago
1-30068
1 day
31570 tb65536
author:tb65536
feat(GroupTheory/Perm/ClosureSwap): add slight generalization This PR adds a slight generalization of `surjective_of_isSwap_of_isPretransitive` that is needed to compute the Galois group of `x^n - x - 1`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 15/5 Mathlib/GroupTheory/Perm/ClosureSwap.lean 1 1 ['github-actions'] nobody
1-29789
1 day ago
1-29789
1 day ago
1-29764
1 day
31573 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph): split `Walk.lean` into 4 files Split into 4 files in a new `Walks` subfolder: - `Basic.lean`: basic definitions and theorems about them, without modifying the walks: `Walk`, `Nil`, `length`, `getVert`, `support`, `darts`, `edges`, `edgeSet`, `snd`, `penultimate`, `firstDart`, `lastDart` - `Operations.lean`: similar to the existing `WalkDecomp.lean`, this file defines operations on walks: `copy`, `append`, `concat`, `reverse`, `drop`, `take`, `tail`, `dropLast`. The name of the file matches `SimpleGraph/Operations.lean` which defines operations on graphs. - `Maps.lean`: operations that map the walk to another graph: `map`, `mapLe`, `transfer`, `induce`, `toDeleteEdges`, `toDeleteEdge`. The name of the file matches `SimpleGraph/Maps.lean` which defines maps on graphs. - `Subwalks.lean`: the definition of `IsSubwalk` and theorems about it Deprecates the original `Walk.lean` module. --- `Walk.lean` has been [around 1500 lines](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/long.20files/near/554617597) for a while, so this PR splits it into 4 files. Fixes [this TODO](https://github.com/leanprover-community/mathlib4/blob/4055dfea0311fa984f3b4eaa629c12220ff0a03a/Mathlib/Combinatorics/SimpleGraph/Walk.lean#L36). **What changed:** I haven't changed any of the declarations, nor their relative order, just partitioned the contents of the original module. But I *did* modify `namespace`/`end`/`variable`/`universe`/`open` commands, while attempting to not cause modifications to variable names/order/binder-info (can the bot verify that or does it only check name changes?). Also I modified the module docstrings to include the definitions in each file, and a few heading comments (comments that begin with pound symbols). I'll move the existing `Paths.lean` and `WalkDecomp.lean` to `Walks/` in a later PR, perhaps with a rename as well. If it helps I can try to split this into 4 commits (or 4 separate PRs) doing the following in-order: - move `Walk.lean` to `Walks/Basic.lean` - split off a chunk to a new `Subwalks.lean` - split off a chunk to a new `Maps.lean` - split off a chunk to a new `Operations.lean` I'm planning to PR a few more definitions to `Basic` soon, namely `nextDart`/`prevDart`/`containingEdge`, so if you prefer we can split `getVert`/`snd`/`penultimate`/`firstDart`/`lastDart` now to a new `Navigation.lean`, or keep it in `Basic`. I think this split is pretty good, though it's worth noting 9 theorems are in `Operations` and not `Basic` because their proof relies on operations even though their statement doesn't: - `support_eq_concat` - `dart_snd_mem_support_of_mem_darts` - `fst_mem_support_of_mem_edges` - `snd_mem_support_of_mem_edges` - `edges_nodup_of_support_nodup` - `ext_support` - `support_injective` - `ext_getVert_le_length` - `ext_getVert` Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Splitting.20.60Walk.2Elean.60/ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 1593/1494 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean 8 1 ['github-actions'] nobody
1-26889
1 day ago
1-28228
1 day ago
1-28265
1 day
31572 tb65536
author:tb65536
feat(Algebra/Group/Subgroup/Basic): API lemma relating `inertia` and `subgroupOf` This PR adds an API lemma relating `inertia` and `subgroupOf`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory t-algebra
label:t-algebra$
5/0 Mathlib/Algebra/Group/Subgroup/Basic.lean 1 1 ['github-actions'] nobody
1-26855
1 day ago
1-26855
1 day ago
1-26830
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. Previously, `addRelatedDecl` would pass around both the type and the value of the original declaration. This was necessary, because the inferred type of the value might not be identical to the type it is given. Now this is not necessary anymore, because the type of the constant is exactly the type that it is given, so the type can always be obtained with `inferType`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-meta 19/21 Mathlib/Tactic/CategoryTheory/Elementwise.lean,Mathlib/Tactic/CategoryTheory/Reassoc.lean,Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Util/AddRelatedDecl.lean 4 13 ['JovanGerb', 'dwrensha', 'github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'plp127'] dwrensha
assignee:dwrensha
1-23351
1 day ago
1-64867
1 day ago
26-54166
26 days
13740 YaelDillies
author:YaelDillies
feat: more robust ae notation Make sure that, when `μ : FiniteMeasure Ω`, `f =ᵐ[μ] g` elaborates to `f =ᵐ[↑μ] g` instead of complaining about `OuterMeasureClass (FiniteMeasure Ω) (Set Ω) ℝ≥0∞` not existing. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/ae.20of.20a.20finite.20measure) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability t-meta 67/8 Mathlib/MeasureTheory/Integral/Bochner/L1.lean,Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/OuterMeasure/AE.lean,Mathlib/MeasureTheory/OuterMeasure/BorelCantelli.lean,Mathlib/Probability/Notation.lean 6 23 ['YaelDillies', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'urkud'] RemyDegenne
assignee:RemyDegenne
1-21703
1 day ago
8-55193
8 days ago
8-55148
8 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'] pechersky
assignee:pechersky
1-21700
1 day ago
18-20459
18 days ago
39-73891
39 days
30706 astrainfinita
author:astrainfinita
refactor(Analysis/NormedSpace/Exponential): remove the `𝕂` argument from `exp` This PR builds upon #8370 and avoids `Algebra ℚ` typeclass assumptions wherever possible. Many `[NormedAlgebra ℚ 𝔸]` can be generalized to `[NontriviallyNormedField 𝕂] [CharZero 𝕂] [ContinuousSMul ℚ 𝕂] [NormedAlgebra 𝕂 𝔸]`, which basically means allowing `ℚ` to use other equivalent norms, and may not be the case of concern. It might be possible to use some Prop-valued typeclasses to avoid the diamond problem potentially caused by `[NormedAlgebra ℚ 𝔸]`. This makes it unnecessary to manually obtain `[NormedAlgebra ℚ 𝔸]` when we have `[NormedAlgebra ℝ 𝔸]` or `[NormedAlgebra ℂ 𝔸]`. Co-authored-by: Eric Wieser --- - [ ] depends on: #28475 There are still some documentation comments that need to be updated. Zulip: [#mathlib4 > Real.exp @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Real.2Eexp/near/401602245) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 477/444 Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Mathlib/Analysis/CStarAlgebra/Exponential.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean,Mathlib/Analysis/Normed/Algebra/DualNumber.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/Analysis/Normed/Algebra/QuaternionExponential.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean,Mathlib/Analysis/Real/Hyperreal.lean,Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean,Mathlib/Analysis/SpecialFunctions/Exponential.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Analysis/SpecificLimits/RCLike.lean,Mathlib/Combinatorics/Derangements/Exponential.lean,Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean,Mathlib/Probability/Distributions/Gaussian/Basic.lean,Mathlib/Probability/Distributions/Gaussian/Fernique.lean,Mathlib/Probability/Distributions/Poisson.lean 22 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
1-21699
1 day ago
15-18263
15 days ago
0-996
16 minutes
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 20 ['YaelDillies', 'dagurtomas', 'github-actions', 'joelriou', 'kckennylau'] thorimur
assignee:thorimur
1-21699
1 day ago
7-80114
7 days ago
23-62835
23 days
30814 yuanyi-350
author:yuanyi-350
feat(LinearAlgebra/Dimension/RankDecomposition): Rank decomposition and bases adapted to a linear map For any matrix A (not necessarily square), there exists a rank normal form. That is, there exist invertible matrices P and Q such that $$ A = P \cdot \left( \begin{array}{cc} I_r & 0 \\ 0 & 0 \end{array} \right) Q $$ Abstractly speaking, any linear map can be decomposed as an invertible map composed with a projection map composed with an invertible map. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
97/0 Mathlib.lean,Mathlib/LinearAlgebra/Dimension/RankDecomposition.lean 2 20 ['PatrickMassot', 'github-actions', 'kckennylau', 'ocfnash', 'plp127', 'yuanyi-350'] dagurtomas
assignee:dagurtomas
1-21698
1 day ago
5-22486
5 days ago
6-16528
6 days
30851 FormulaRabbit81
author:FormulaRabbit81
feat(Topology): prove there exists an embedding of separable metric spaces in the hilbert cube --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [x] depends on: #30849 file-removed 140/42 Mathlib.lean,Mathlib/Topology/Compactness/HilbertCubeEmbedding.lean,Mathlib/Topology/MetricSpace/PiNat.lean 3 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] ADedecker
assignee:ADedecker
1-21697
1 day ago
9-28761
9 days ago
9-49515
9 days
30857 erdOne
author:erdOne
feat(RingTheory): miscellaneous lemmas about etale --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 64/11 Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/RingHom/Unramified.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Unramified/Basic.lean,Mathlib/RingTheory/Unramified/Field.lean,Mathlib/RingTheory/Unramified/LocalRing.lean,Mathlib/RingTheory/Unramified/Locus.lean 8 6 ['chrisflav', 'erdOne', 'github-actions'] mariainesdff
assignee:mariainesdff
1-21696
1 day ago
7-35494
7 days ago
10-68392
10 days
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/) t-ring-theory 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 6 ['erdOne', 'eric-wieser', 'github-actions', 'kckennylau'] chrisflav
assignee:chrisflav
1-21694
1 day ago
6-30640
6 days ago
17-35738
17 days
31264 plp127
author:plp127
feat(Filter): replace coframe instance with better defeqs Replace the `Filter.instCoframe` with explicitly given operations. Prove `Filter.mem_sdiff` and `Filter.hnot_def`. The definitions I chose here are somewhat arbitrary, but I think they're better than what we had before. I chose these specific definitions based on a conversation with AI, but I did not use AI to help me write this PR. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 34/22 Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/Order/Filter/Finite.lean,Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean 5 2 ['github-actions', 'plp127'] Vierkantor
assignee:Vierkantor
1-21693
1 day ago
9-56100
9 days ago
9-56086
9 days
31265 joelriou
author:joelriou
feat(AlgebraicTopology): Edge and CompStruct for simplicial sets The API for `2`-truncated simplicial sets #31254 is reproduced for simplicial sets. The definitions for simplicial sets are defeq to their `2`-truncated counterparts, but an effort is made to contain abuse of defeq... --- - [x] depends on: #31254 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology 187/1 Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStructTruncated.lean 3 2 ['github-actions', 'mathlib4-dependent-issues-bot'] robin-carlier
assignee:robin-carlier
1-21692
1 day ago
5-21084
5 days ago
5-21059
5 days
31293 erdOne
author:erdOne
feat(Algebra/InfiniteSum): `HasProdUniformly` and friends Also refactors `HasProdUniformlyOn` to take one set instead of a family of sets. See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/SummableUniformlyOn/with/553935898 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-topology RFC
label:t-algebra$
338/101 Mathlib/Analysis/NormedSpace/MultipliableUniformlyOn.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean,Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean 4 1 ['github-actions'] jcommelin
assignee:jcommelin
1-21691
1 day ago
8-49724
8 days ago
8-49713
8 days
31305 kim-em
author:kim-em
feat: grind golfing in Topology/Path This is not as exhaustive as I would have liked; there's plenty more cleanup to do here. But I need to pause on this for now and I think it's an improvement. 61/91 Mathlib/Algebra/Order/Interval/Set/Instances.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/Path.lean,Mathlib/Topology/UnitInterval.lean 5 3 ['github-actions', 'grunweg'] j-loreaux
assignee:j-loreaux
1-21689
1 day ago
8-33148
8 days ago
8-33122
8 days
31324 YaelDillies
author:YaelDillies
chore(Finsupp): move `mapRange.equiv` earlier Move `mapRange.equiv` to `Data.Finsupp.Defs` and `mapRange.addEquiv` to `Algebra.Group.Finsupp`. This lets us not import fields when defining `finsuppAntidiag`. As previously, I am basing myself off the idea that `Finsupp` will at some point in the future be generalised to other base points (rather than just `0` as it is now), and that therefore anything under `Data.Finsupp` should not be algebraic (apart from mentioning `0`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
103/151 Mathlib/Algebra/Group/Finsupp.lean,Mathlib/Algebra/Order/Antidiag/Finsupp.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/LinearAlgebra/FreeModule/Basic.lean,Mathlib/RingTheory/Polynomial/Opposites.lean 6 1 ['github-actions', 'wwylele'] ocfnash
assignee:ocfnash
1-21688
1 day ago
7-67866
7 days ago
7-67856
7 days
31337 chrisflav
author:chrisflav
feat(CategoryTheory): add predicate `IsRepresentedBy` We define the predicate `IsRepresentedBy`: A functor `F` is represented by `X` with universal element `x : F.obj X` if the natural transformation `yoneda.obj X ⟶ F` induced by `x` is an isomorphism. We also relate this to the other existing ways of expressing a functor is representable. This is part of a series towards expressing a certain morphism is an analytification morphism, which will be defined in terms of `IsRepresentedBy`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 236/0 Mathlib.lean,Mathlib/CategoryTheory/RepresentedBy.lean,Mathlib/CategoryTheory/Yoneda.lean 3 2 ['erdOne', 'github-actions'] robin-carlier
assignee:robin-carlier
1-21688
1 day ago
7-24206
7 days ago
7-24181
7 days
31342 kim-em
author:kim-em
feat: `extract_goal` preserves explicit foralls t-meta 36/5 Mathlib/Tactic/ExtractGoal.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/ExtractGoal.lean 3 1 ['github-actions'] robertylewis
assignee:robertylewis
1-21686
1 day ago
7-13006
7 days ago
7-13042
7 days
31360 erdOne
author:erdOne
feat(RingTheory): coeffs of a poly is integral if it divides an integral poly --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 62/0 Mathlib.lean,Mathlib/RingTheory/Polynomial/IsIntegral.lean 2 3 ['SnirBroshi', 'erdOne', 'github-actions'] chrisflav
assignee:chrisflav
1-21685
1 day ago
6-62659
6 days ago
6-62693
6 days
31374 euprunin
author:euprunin
chore: use `order` instead of `aesop` to make the intent clearer --- Separated from the non-`aesop` cases for benchmarking reasons. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 5/4 Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean 3 5 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] adamtopaz
assignee:adamtopaz
1-21684
1 day ago
5-80948
5 days ago
5-83787
5 days
31377 CoolRmal
author:CoolRmal
feat: a series of smooth functions that converges (locally) uniformly is smooth The main theorem proved in this lemma is that: if a sequence of functions `fₙ` is such that for each `0 ≤ k ≤ N`, the series of `k`-th iterated derivatives `∑ (iteratedDerivWithin k fₙ s) (z)` is summable (locally) uniformly on a set`s`, and each `fₙ` is in the class of `C^N`, then the series is also in `C^N`. This is an analogue of the existing theorem [contDiff_tsum](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/SmoothSeries.html#contDiff_tsum). My main motivation for this PR is the [#mathlib4 > Tychonov's Counterexample for the Heat Equation](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Tychonov's.20Counterexample.20for.20the.20Heat.20Equation/with/547367912). Several Remarks: 1. The proof of `SummableUniformlyOn.continuousOn_tsum` (and other similar theorems) actually does not require the assumption that the codomain is a `T2Space` (see #31313). 2. The author of the file [Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean](https://github.com/leanprover-community/mathlib4/compare/master...CoolRmal:mathlib4:contDiffwithinTsum?expand=1#diff-8b2f878190f47dd6544467469c58d2cdf59d6f79277b21814cdef554a27a4fd7) assumes that the set `s` is open and uses `derivWithin` in the statements. I follow the same convention right now, but I really think it is better to use `deriv` because we have [derivWithin_of_isOpen](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/Deriv/Basic.html#derivWithin_of_isOpen) and `derivWithin` makes things more complicated. 3. I also doubt that some of the theorems I proved still hold if `s` is only assumed to has the [UniqueDiffOn](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/TangentCone.html#UniqueDiffOn) property. If there is an easy way to generalize this theorem to sets that are not necessarily open, then the second comment can be ignored. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-topology 249/23 Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean,Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean 4 1 ['github-actions'] ocfnash
assignee:ocfnash
1-21683
1 day ago
5-75725
5 days ago
5-75764
5 days
31385 harahu
author:harahu
doc(MathlibTest): demote repeated H1 headers to H2 This PR demotes H1 headers beyond the first per file to H2. Having only a single H1 header per file is considered good practice when writing markdown. The mathlib documentation style guide does not explicitly state that a module docstring should only contain a single H1, but this seems to be taken for granted, since only the file header is requested to be an H1, while any other header mentioned is asked to be either H2 or H3. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 2/2 MathlibTest/norm_num.lean 1 1 ['github-actions'] dupuisf
assignee:dupuisf
1-21683
1 day ago
5-49162
5 days ago
5-49136
5 days
31421 joelriou
author:joelriou
feat(CategoryTheory): HasCardinalLT for MorphismProperty and ObjectProperty This PR introduces abbreviations to say that the type of objects or morphisms satisfying a certain property is of cardinality `<κ`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 123/0 Mathlib.lean,Mathlib/CategoryTheory/MorphismProperty/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/HasCardinalLT.lean,Mathlib/CategoryTheory/ObjectProperty/HasCardinalLT.lean 4 1 ['github-actions'] TwoFX
assignee:TwoFX
1-21679
1 day ago
4-71059
4 days ago
4-71035
4 days
31428 harahu
author:harahu
doc(AlgebraicTopology/SingularSet): fix typos This PR fixes some apparent typos in `SingularSet`. The typos were found and corrected with the help of Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology 7/7 Mathlib/AlgebraicTopology/SingularSet.lean 1 2 ['github-actions', 'harahu'] robin-carlier
assignee:robin-carlier
1-21678
1 day ago
4-66598
4 days ago
4-66991
4 days
31424 joelriou
author:joelriou
feat(CategoryTheory): description of the type WalkingMultispan Given `J : MultispanShape`, we introduce bijections `WalkingMultispan J ≃ J.L ⊕ J.R` and `Arrow (WalkingMultispan J) ≃ WalkingMultispan J ⊕ J.L ⊕ J.L`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 25/0 Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean 1 1 ['github-actions'] riccardobrasca
assignee:riccardobrasca
1-21678
1 day ago
4-70721
4 days ago
4-70696
4 days
31441 harahu
author:harahu
doc(Dynamics): polish docstrings This PR fixes a batch of typos in `Dynamics`. The typos were found and fixed with the help of Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-dynamics 11/12 Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/Dynamics/Ergodic/Action/OfMinimal.lean,Mathlib/Dynamics/Ergodic/Ergodic.lean 3 2 ['github-actions', 'harahu'] sgouezel
assignee:sgouezel
1-21677
1 day ago
4-47561
4 days ago
4-47598
4 days
31446 harahu
author:harahu
doc(MeasureTheory/Measure/Regular): polish docstrings The issues were found and fixed by Codex. The fixes are mainly just typo fixes, but there are three substantive changes that warrant careful review: - "compacts closed sets" -> "compact sets" in the definition of a regular measure. - The addition of "of finite measure" in the definition of a measure that is `InnerRegularCompactLTTop`. - Changes to the docstring of `_root_.IsOpen.measure_eq_iSup_isClosed` As far as I can tell, all of these changes are justified, but I am not an expert, so it would be helpful to have another critical pair of eyes look over them. The PR also drops backticks around σ in a number of places. This is because σ-compact, σ-finite and σ-algebra are all established mathematical terminology. Having backticks mid-word just makes it harder to search for these terms in the code base. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 28/27 Mathlib/MeasureTheory/Measure/Regular.lean 1 1 ['github-actions'] RemyDegenne
assignee:RemyDegenne
1-21676
1 day ago
4-33307
4 days ago
4-33345
4 days
31449 kim-em
author:kim-em
feat(SemilocallySimplyConnected): definition and alternative formulation 112/0 Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SemilocallySimplyConnected.lean,Mathlib/Topology/Path.lean 3 2 ['ADedecker', 'github-actions'] jcommelin
assignee:jcommelin
1-21675
1 day ago
4-28332
4 days ago
4-28306
4 days
31535 ADedecker
author:ADedecker
feat: small tweaks to `PointwiseConvergenceCLM` These are small suggestions I would have made about #11496: - add a `IsUniformEmbedding` variant of `isEmbedding_coeFn` - add a `ContinuousEvalConst` instance using [UniformConvergenceCLM.continuousEvalConst](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Module/StrongTopology.html#UniformConvergenceCLM.continuousEvalConst) - use said instance to golf continuity in `evalCLM` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-topology 16/11 Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean 1 3 ['github-actions', 'mcdoll'] nobody
1-20952
1 day ago
1-20952
1 day ago
1-76209
1 day
29562 ShreckYe
author:ShreckYe
feat(Analysis/SpecialFunctions/Trigonometric): tangent half-angle substitution t-analysis 58/0 Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean 2 9 ['ShreckYe', 'github-actions', 'j-loreaux', 'ocfnash'] ocfnash
assignee:ocfnash
1-18958
1 day ago
1-19034
1 day ago
59-3201
59 days
31575 kim-em
author:kim-em
chore: reverse the directions of Path.symm_cast and trans_cast It seems Mathlib doesn't mind currently which way these go, but pushing casts inwards is better for me. t-topology 11/0 Mathlib/Topology/Path.lean 1 1 ['github-actions'] nobody
1-18635
1 day ago
1-18635
1 day ago
1-18681
1 day
31114 mcdoll
author:mcdoll
feat(Analysis): use new notation for Fourier transform on Schwartz functions and simplify presentation Use the new notation for the Fourier transform and its inverse to clean up `FourierSchwartz`. - Use notation type class and `Prop`-type classes. - State all lemmas for the Fourier transform on `SchwartzMap` and not on the coercion to functions. - Add coercion lemmas. - Move `FourierTransformCLE` up in the file and use `FourierEquiv` from the abstract notation file. - Use the notation for the Fourier transform and the Schwartz functions in `PoissonSummation`. - Add my name to the authors list for this PR and the PR for Plancherel's theorem. - Some golfing --- - [x] depends on: #31115 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 96/60 Mathlib/Analysis/Distribution/FourierSchwartz.lean,Mathlib/Analysis/Fourier/PoissonSummation.lean 2 2 ['github-actions', 'mathlib4-dependent-issues-bot'] nobody
1-13635
1 day ago
1-14719
1 day ago
1-14694
1 day
31525 kim-em
author:kim-em
feat: convex combinations in `Set.Icc` This will hopefully become obsolete with a more general theory of convex spaces, but this would be helpful to go on for now. t-topology 120/0 Mathlib/Topology/UnitInterval.lean 1 1 ['github-actions'] nobody
1-11920
1 day ago
2-26634
2 days ago
2-26668
2 days
31577 mcdoll
author:mcdoll
feat(Analysis): the topology of pointwise convergence is locally convex Show that the pointwise convergence topology is locally convex both in the sense of `WithSeminorms` and `LocallyConvexSpace`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 109/0 Mathlib.lean,Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean,Mathlib/Data/Set/Finite/Lemmas.lean,Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean 5 1 ['github-actions'] nobody
1-4687
1 day ago
1-4687
1 day ago
1-4663
1 day
31557 kex-y
author:kex-y
feat: lemmas on the stopped process and stopped value --- From Brownian motion project [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 54/6 Mathlib/Probability/Process/Stopping.lean 1 13 ['EtienneC30', 'github-actions', 'kex-y'] nobody
0-84329
23 hours ago
0-84478
23 hours ago
1-7921
1 day
31408 peakpoint
author:peakpoint
feat(Analysis/Calculus/LHopital): L'Hopital's rule from within a convex set Extracted from #19796 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 185/20 Mathlib/Analysis/Calculus/LHopital.lean,Mathlib/Analysis/Convex/Topology.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Order/Interval/Set/Basic.lean 4 1 ['github-actions'] nobody
0-83036
23 hours ago
0-83038
23 hours ago
5-15407
5 days
31564 EtienneC30
author:EtienneC30
feat: injectivity of the map forgetting the continuity of bilinear maps --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 15/0 Mathlib/Topology/Algebra/Module/StrongTopology.lean 1 2 ['github-actions', 'themathqueen'] nobody
0-82390
22 hours ago
1-34556
1 day ago
1-34682
1 day
31566 EtienneC30
author:EtienneC30
feat: when a measure is equal to a `gaussianReal` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 10/0 Mathlib/Probability/Distributions/Gaussian/Basic.lean,Mathlib/Probability/Distributions/Gaussian/Real.lean 2 2 ['github-actions', 'themathqueen'] nobody
0-82304
22 hours ago
1-33977
1 day ago
1-34010
1 day
30129 vlad902
author:vlad902
feat(SimpleGraph): define and prove basic theory of vertex covers Define a predicate `IsVertexCover G C` to state that `C` is a vertex cover of `G`. Furthermore, `G.minVertexCover` is the cardinality of the minimum vertex cover of G. Then prove the basic theory of how these definitions relate to the empty and complete graphs and their relationship with graph homs/isos. --- - [x] depends on: #29833 - [x] depends on: #30136 - [x] depends on: #30137 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 199/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/VertexCover.lean 3 2 ['github-actions', 'mathlib4-dependent-issues-bot'] YaelDillies
assignee:YaelDillies
0-80553
22 hours ago
9-32296
9 days ago
9-33337
9 days
29997 xroblot
author:xroblot
feat(CyclotomicFields): general formula for the discriminant Add the general formula for the (absolute value of the) discriminant of a cyclotomic field: ```lean theorem natAbs_absdiscr (n : ℕ) [hn : NeZero n] [hK : IsCyclotomicExtension {n} ℚ K] : (discr K).natAbs = (n ^ n.totient / ∏ p ∈ n.primeFactors, p ^ (n.totient / (p - 1))) ``` --- - [x] depends on: #29665 - [x] depends on: #29943 large-import t-number-theory 88/2 Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-78882
21 hours ago
0-79039
21 hours ago
0-81038
22 hours
31581 kebekus
author:kebekus
feat: behavior of the counting function under addition Establish the behavior of the "Proximity Function" of Value Distribution theory with respect to addition. 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 136/10 Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean,Mathlib/Analysis/Meromorphic/Divisor.lean,Mathlib/Analysis/Meromorphic/Order.lean 3 1 ['github-actions'] nobody
0-76806
21 hours ago
0-77790
21 hours ago
0-77824
21 hours
31556 kebekus
author:kebekus
feat: behavior of the proximity function under addition Establish the behavior of the "Proximity Function" of Value Distribution theory with respect to addition. 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 68/0 Mathlib/Analysis/Complex/ValueDistribution/ProximityFunction.lean,Mathlib/MeasureTheory/Integral/CircleAverage.lean,Mathlib/MeasureTheory/Integral/CircleIntegral.lean 3 1 ['github-actions'] nobody
0-76629
21 hours ago
0-76629
21 hours ago
1-57269
1 day
31584 joelriou
author:joelriou
chore: move CategoryTheory.ComposableArrows It is moved to `CategoryTheory.ComposableArrows.Basic` in order to allow new features without making this long file even longer. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-category-theory 7/7 Mathlib.lean,Mathlib/Algebra/Homology/ExactSequence.lean,Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean,Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean,Mathlib/CategoryTheory/ComposableArrows/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean,Mathlib/CategoryTheory/Localization/CalculusOfFractions/ComposableArrows.lean,Mathlib/CategoryTheory/Triangulated/Functor.lean 8 1 ['github-actions'] nobody
0-75685
21 hours ago
0-76246
21 hours ago
0-76288
21 hours
31546 RemyDegenne
author:RemyDegenne
feat: MeasurableSet.iff Add two lemmas: `MeasurableSet.imp (hs : MeasurableSet {x | p x}) (ht : MeasurableSet {x | q x}) : MeasurableSet {x | p x → q x}` `MeasurableSet.iff (hs : MeasurableSet {x | p x}) (ht : MeasurableSet {x | q x}) : MeasurableSet {x | p x ↔ q x}` From the LeanBandits project. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-measure-probability 14/0 Mathlib/MeasureTheory/MeasurableSpace/Defs.lean 1 3 ['EtienneC30', 'github-actions'] nobody
0-72200
20 hours ago
0-72200
20 hours ago
1-66139
1 day
31583 kebekus
author:kebekus
feat: describe the logarithmic counting function in terms of circle averages Deliver on an open TODO and describe the logarithmic counting function in terms of circle averages. 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 material established here is a step towards Cartan's classic formula for the Nevanlinna characteristic. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-analysis 68/4 Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean,Mathlib/Topology/LocallyFinsupp.lean 2 2 ['github-actions', 'kebekus'] nobody
0-70267
19 hours ago
0-70267
19 hours ago
0-76797
21 hours
31574 kim-em
author:kim-em
feat: lemmas for paths-up-to-homotopy We introduce `Path.Homotopic.Quotient.mk` as the normal form (rather than `_root_.Quotient.mk`) for constructing a path-up-to-homotopy from a path. This enables us to work more easily in the quotient. We add simp lemmas corresponding to the basic homotopies relating `refl` / `symm` / `trans` / `cast`. t-algebraic-topology t-topology 199/30 Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean,Mathlib/Topology/Homotopy/Lifting.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/Homotopy/Product.lean 6 1 ['github-actions'] nobody
0-69437
19 hours ago
0-69437
19 hours ago
1-19388
1 day
31434 stepanholub
author:stepanholub
feat: simple divisibility lemma --- Add a simple lemma about divisibility. It can be seen as a description of the last step of the Euclidean algorithm (when only subtraction is used) t-data new-contributor 6/0 Mathlib/Data/Nat/GCD/Basic.lean 1 9 ['github-actions', 'grunweg', 'ocfnash', 'stepanholub', 'wwylele'] nobody
0-68510
19 hours ago
0-68511
19 hours ago
4-54490
4 days
31544 RemyDegenne
author:RemyDegenne
feat: add `MeasureTheory.Measure.integrable_comp_iff` Necessary and sufficient condition for `Integrable f (κ ∘ₘ μ)`, integrability with respect to the composition of a kernel and a measure. Special case of `ProbabilityTheory.integrable_comp_iff`, which is about composition of two kernels. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-measure-probability 8/0 Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean 1 2 ['EtienneC30', 'github-actions'] nobody
0-68424
19 hours ago
0-68424
18 hours ago
1-67821
1 day
31451 jsm28
author:jsm28
feat(Analysis/Convex/Combination): `centerMass_const`, `centerMass_congr` Add the lemma: ```lean lemma Finset.centerMass_const (hw : ∑ j ∈ t, w j ≠ 0) (c : E) : t.centerMass w (Function.const _ c) = c := by ``` along with various congruence lemmas that help with applying this in cases where the points are constant for the nonzero weights in `t`, but not necessarily everywhere. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry maintainer-merge t-analysis 28/0 Mathlib/Analysis/Convex/Combination.lean 1 4 ['Ruben-VandeVelde', 'github-actions', 'j-loreaux', 'jsm28'] nobody
0-67831
18 hours ago
0-67831
18 hours ago
3-83397
3 days
31493 jsm28
author:jsm28
feat(Geometry/Euclidean/Incenter): `incenter_mem_interior` Add a direct statement that the incenter of a simplex lies in its interior (along with factoring out a lemma `excenterWeights_empty_pos` that turns out to be useful several times in its proof). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-euclidean-geometry 21/2 Mathlib/Geometry/Euclidean/Incenter.lean 1 3 ['Ruben-VandeVelde', 'github-actions'] nobody
0-66742
18 hours ago
0-67589
18 hours ago
3-17595
3 days
31579 xroblot
author:xroblot
feat(Data/Nat/Digits): prove the bijection induced by `Nat.ofDigits` and use it to compute the sum of the sum of digits We prove that `Nat.ofDigits` induces a bijection between the set of list of natural integers of length `l` with coefficients `< b` and the set of natural integers `< b ^ l` and develop some API. As a application, we prove that ```lean theorem Nat.sum_digits_sum_eq {b : ℕ} (hb : 1 < b) (l : ℕ) : ∑ x ∈ Finset.range (b ^ l), (b.digits x).sum = l * b ^ (l - 1) * b.choose 2 ``` --- t-data 186/0 Mathlib/Data/Nat/Digits/Lemmas.lean 1 3 ['eric-wieser', 'github-actions', 'xroblot'] nobody
0-66676
18 hours ago
0-81376
22 hours ago
0-81410
22 hours
31062 zcyemi
author:zcyemi
feat(Geometry/Euclidean/Similarity): add triangle similarity --- Add theorems about similarity of triangles. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 284/0 Mathlib.lean,Mathlib/Geometry/Euclidean/Similarity.lean,Mathlib/Topology/MetricSpace/Similarity.lean 3 19 ['github-actions', 'jsm28', 'zcyemi'] nobody
0-66608
18 hours ago
1-54549
1 day ago
1-81399
1 day
31591 gasparattila
author:gasparattila
chore(Topology/Sets): use prefix naming for `toCompacts` in `simps` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 6/8 Mathlib/Topology/Sets/Compacts.lean 1 1 ['github-actions'] nobody
0-64637
17 hours ago
0-64640
17 hours ago
0-64680
17 hours
31592 gasparattila
author:gasparattila
chore(Tactic/Measurability): `fun_prop` lemmas for solving `MeasurableSet {x | ...}` goals Currently, lemmas of the form `MeasurableSet {x | ...}` cannot be used by `measurability`, because `simp` changes the goal to `Measurable fun x => ...`. This PR adds the necessary `fun_prop` lemmas so that they work with `measurability` (except for statements involving equality, which are done in #31512). This fixes #26620. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 13/7 Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,MathlibTest/measurability.lean 3 1 ['github-actions'] nobody
0-61408
17 hours ago
0-61408
17 hours ago
0-61445
17 hours
31593 Ruben-VandeVelde
author:Ruben-VandeVelde
feat: some lemmas about MonoidAlgebra --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
26/0 Mathlib/Algebra/MonoidAlgebra/Basic.lean 1 2 ['github-actions', 'themathqueen'] nobody
0-60772
16 hours ago
0-61279
17 hours ago
0-61333
17 hours
31518 YaelDillies
author:YaelDillies
chore(LinearAlgebra/Matrix): import less analysis Follow up to #31480. Also fix a few namespacing issues that arose. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-analysis 128/119 Mathlib.lean,Mathlib/Analysis/InnerProductSpace/GramMatrix.lean,Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/Matrix/Hermitian.lean,Mathlib/Analysis/Matrix/LDL.lean,Mathlib/Analysis/Matrix/PosDef.lean,Mathlib/Analysis/Matrix/Spectrum.lean,Mathlib/LinearAlgebra/Matrix/Hermitian.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean 9 19 ['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen'] nobody
0-58738
16 hours ago
1-76045
1 day ago
2-17743
2 days
31217 YaelDillies
author:YaelDillies
feat: turn a closed walk into a cycle From the ProofBench workshop Closes #23637, which does the same thing under a stronger hypothesis on the starting closed walk. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 50/18 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/Tactic/GCongr/CoreAttrs.lean 4 8 ['MrQubo', 'SnirBroshi', 'YaelDillies', 'github-actions'] nobody
0-58201
16 hours ago
10-69132
10 days ago
10-69309
10 days
31569 sgouezel
author:sgouezel
feat: drop a finiteness assumptions in covariance results --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 73/15 Mathlib/Probability/Moments/CovarianceBilin.lean,Mathlib/Probability/Moments/CovarianceBilinDual.lean 2 7 ['EtienneC30', 'github-actions', 'sgouezel'] nobody
0-57126
15 hours ago
1-32238
1 day ago
1-32276
1 day
31595 astrainfinita
author:astrainfinita
chore: redefine `Ideal.IsPrime` Redefine `Ideal.IsPrime` to make it correct for non-commutative cases --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
209/101 Mathlib/Algebra/Order/Ring/Ordering/Defs.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean,Mathlib/RingTheory/Ideal/IsPrimary.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Ideal/Oka.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Ideal/Prime.lean,Mathlib/RingTheory/Ideal/Prod.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/Localization/Ideal.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean,Mathlib/RingTheory/Valuation/Basic.lean 21 4 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] nobody
0-55400
15 hours ago
0-55400
15 hours ago
0-60092
16 hours
30071 Jlh18
author:Jlh18
feat: dualize Pseudofunctor.CoGrothendieck results to Pseudofunctor.Grothendieck Continuing from #29681, dualize all definitions and lemmas in the namespace `Pseudofunctor.CoGrothendieck` to results in the namespace `Pseudofunctor.Grothendieck`. - [x] depends on: #29681 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 118/10 Mathlib/CategoryTheory/Bicategory/Grothendieck.lean 1 16 ['Jlh18', 'callesonne', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] riccardobrasca
assignee:riccardobrasca
0-54191
15 hours ago
0-54191
15 hours ago
37-15865
37 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 144/53 Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean 1 4 ['dupuisf', 'github-actions', 'j-loreaux'] ADedecker and dupuisf
assignee:dupuisf assignee:ADedecker
0-46574
12 hours ago
29-34596
29 days ago
29-34582
29 days
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 128/0 .vscode/tasks.json,scripts/README.md,scripts/aristotle/README.md 3 17 ['eric-wieser', 'euprunin', 'github-actions', 'kim-em', 'vikram-shanker'] robertylewis
assignee:robertylewis
0-42653
11 hours ago
21-11050
21 days ago
21-11086
21 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/) t-topology 328/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 5 ['gasparattila', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
0-40887
11 hours ago
8-59702
8 days ago
16-37399
16 days
31433 sinhp
author:sinhp
feat (CategoryTheory): Computable cartesian monoidal structure on slices induced by chosen pullbacks We provide for a category `C` with chosen pullbacks, a cartesian monoidal structure on the slice categories `Over X` for all objects `X : C`. We also show that the functor `pullback f : Over X ⥤ Over Y` is naturally isomorphic to `toOver (Over.mk f): Over X ⥤ Over (Over.mk f)` post-composed with the iterated slice equivalence `Over (Over.mk f) ⥤ Over Y`. This latter theorem will be crucial in relating closed objects in the slices to exponentiable morphisms in the base in `LocallyCartesianClosed.Basic.lean` (Here `toOver` is defined to be the computable analogue of the functor `Over.star`.) ```mermaid graph TD A[ChosenPullbackAlong.lean] --> A'[Over.lean] A' --> B[Sections.lean] A' --> C[ExponentiableMorphism.lean] B --> D[Basic.lean] C --> D D --> E[Types.lean] E --> F[Presheaves.lean] D --> G[Beck-Chevalley.lean] %% Define highlight style classDef highlight fill:#ffe599,stroke:#d4a017,stroke-width:2px; %% Apply to one node class A' highlight; ``` --- - [ ] depends on: #31033 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 438/0 Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/Over.lean 3 9 ['github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sinhp'] nobody
0-39780
11 hours ago
0-39780
11 hours ago
0-67458
18 hours
27163 pechersky
author:pechersky
feat(Topology/ValuativeRel): of and to basis of compatible valuations --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [x] depends on: #30262 t-algebra t-topology t-number-theory
label:t-algebra$
227/62 Mathlib/NumberTheory/LocalField/Basic.lean,Mathlib/Order/Filter/Bases/Basic.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean 3 71 ['erdOne', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky', 'smmercuri'] alreadydone
assignee:alreadydone
0-39624
11 hours ago
2-36619
2 days ago
84-50396
84 days
31399 CoolRmal
author:CoolRmal
feat: Conditional expectation commutes with continuous linear functionals and affine functions. This lemma is needed in the proof of conditional Jensen's inequality: #27953 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 29/0 Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean 1 17 ['CoolRmal', 'EtienneC30', 'github-actions'] EtienneC30
assignee:EtienneC30
0-36122
10 hours ago
0-36365
10 hours ago
5-26900
5 days
31161 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(RingTheory/MvPolynomial/IrrQuadratic): irreducibility of sum X_i Y_i For $n\geq 2$, the polynomial $$\sum_{i=1}^n X_i Y_i$$ is irreducible. This was used in the initial proof that the transvections have determinant 1. Now, a more general result is proved there and this PR is no more needed. I believe that it remains of independent interest (irreducibility of quadrics in algebraic geometry) but the maintainers might want that the general one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 230/0 Mathlib.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/RingTheory/MvPolynomial/IrrQuadratic.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean 4 7 ['AntoineChambert-Loir', 'github-actions', 'joelriou'] joelriou
assignee:joelriou
0-33662
9 hours ago
0-61996
17 hours ago
11-49082
11 days
31605 euprunin
author:euprunin
chore(Combinatorics/SimpleGraph): golf `circulantGraph_eq_symm` using `grind` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 3/5 Mathlib/Combinatorics/SimpleGraph/Circulant.lean 1 1 ['github-actions'] nobody
0-33135
9 hours ago
0-33852
9 hours ago
0-33896
9 hours
31534 euprunin
author:euprunin
chore(Probability/ProbabilityMassFunction): golf entire `support_bindOnSupport` using `ext; simp` ---
Show trace profiling of support_bindOnSupport: 85 ms before, 219 ms after ### Trace profiling of `support_bindOnSupport` before PR 31534 ```diff diff --git a/Mathlib/Probability/ProbabilityMassFunction/Monad.lean b/Mathlib/Probability/ProbabilityMassFunction/Monad.lean index 876540f3fb..120616c4bd 100644 --- a/Mathlib/Probability/ProbabilityMassFunction/Monad.lean +++ b/Mathlib/Probability/ProbabilityMassFunction/Monad.lean @@ -198,6 +198,7 @@ variable {p : PMF α} (f : ∀ a ∈ p.support, PMF β) theorem bindOnSupport_apply (b : β) : p.bindOnSupport f b = ∑' a, p a * if h : p a = 0 then 0 else f a h b := rfl +set_option trace.profiler true in @[simp] theorem support_bindOnSupport : (p.bindOnSupport f).support = ⋃ (a : α) (h : a ∈ p.support), (f a h).support := by ``` ``` ℹ [1634/1634] Built Mathlib.Probability.ProbabilityMassFunction.Monad (1.7s) info: Mathlib/Probability/ProbabilityMassFunction/Monad.lean:202:0: [Elab.async] [0.086185] elaborating proof of PMF.support_bindOnSupport [Elab.definition.value] [0.085203] PMF.support_bindOnSupport [Elab.step] [0.084834] refine Set.ext fun b => ?_ simp only [ENNReal.tsum_eq_zero, not_or, mem_support_iff, bindOnSupport_apply, Ne, not_forall, mul_eq_zero, Set.mem_iUnion] exact ⟨fun hb => let ⟨a, ⟨ha, ha'⟩⟩ := hb ⟨a, ha, by simpa [ha] using ha'⟩, fun hb => let ⟨a, ha, ha'⟩ := hb ⟨a, ⟨ha, by simpa [(mem_support_iff _ a).1 ha] using ha'⟩⟩⟩ [Elab.step] [0.084829] refine Set.ext fun b => ?_ simp only [ENNReal.tsum_eq_zero, not_or, mem_support_iff, bindOnSupport_apply, Ne, not_forall, mul_eq_zero, Set.mem_iUnion] exact ⟨fun hb => let ⟨a, ⟨ha, ha'⟩⟩ := hb ⟨a, ha, by simpa [ha] using ha'⟩, fun hb => let ⟨a, ha, ha'⟩ := hb ⟨a, ⟨ha, by simpa [(mem_support_iff _ a).1 ha] using ha'⟩⟩⟩ [Elab.step] [0.018183] simp only [ENNReal.tsum_eq_zero, not_or, mem_support_iff, bindOnSupport_apply, Ne, not_forall, mul_eq_zero, Set.mem_iUnion] [Elab.step] [0.066410] exact ⟨fun hb => let ⟨a, ⟨ha, ha'⟩⟩ := hb ⟨a, ha, by simpa [ha] using ha'⟩, fun hb => let ⟨a, ha, ha'⟩ := hb ⟨a, ⟨ha, by simpa [(mem_support_iff _ a).1 ha] using ha'⟩⟩⟩ [Elab.step] [0.015660] expected type: (∃ x, ¬p x = 0 ∧ ¬(if h : p x = 0 then 0 else (f x h) b) = 0) ↔ ∃ i, ∃ (h : ¬p i = 0), ¬(f i ⋯) b = 0, term ⟨fun hb => let ⟨a, ⟨ha, ha'⟩⟩ := hb ⟨a, ha, by simpa [ha] using ha'⟩, fun hb => let ⟨a, ha, ha'⟩ := hb ⟨a, ⟨ha, by simpa [(mem_support_iff _ a).1 ha] using ha'⟩⟩⟩ [Elab.step] [0.015638] expected type: (∃ x, ¬p x = 0 ∧ ¬(if h : p x = 0 then 0 else (f x h) b) = 0) ↔ ∃ i, ∃ (h : ¬p i = 0), ¬(f i ⋯) b = 0, term Iff.intro✝ (fun hb => let ⟨a, ⟨ha, ha'⟩⟩ := hb ⟨a, ha, by simpa [ha] using ha'⟩) fun hb => let ⟨a, ha, ha'⟩ := hb ⟨a, ⟨ha, by simpa [(mem_support_iff _ a).1 ha] using ha'⟩⟩ [Elab.step] [0.026635] simpa [ha] using ha' [Elab.step] [0.026629] simpa [ha] using ha' [Elab.step] [0.026622] simpa [ha] using ha' [Elab.step] [0.023173] simpa [(mem_support_iff _ a).1 ha] using ha' [Elab.step] [0.023168] simpa [(mem_support_iff _ a).1 ha] using ha' [Elab.step] [0.023160] simpa [(mem_support_iff _ a).1 ha] using ha' Build completed successfully (1634 jobs). ``` ### Trace profiling of `support_bindOnSupport` after PR 31534 ```diff diff --git a/Mathlib/Probability/ProbabilityMassFunction/Monad.lean b/Mathlib/Probability/ProbabilityMassFunction/Monad.lean index 876540f3fb..1e5f9ddbe1 100644 --- a/Mathlib/Probability/ProbabilityMassFunction/Monad.lean +++ b/Mathlib/Probability/ProbabilityMassFunction/Monad.lean @@ -198,19 +198,12 @@ variable {p : PMF α} (f : ∀ a ∈ p.support, PMF β) theorem bindOnSupport_apply (b : β) : p.bindOnSupport f b = ∑' a, p a * if h : p a = 0 then 0 else f a h b := rfl +set_option trace.profiler true in @[simp] theorem support_bindOnSupport : (p.bindOnSupport f).support = ⋃ (a : α) (h : a ∈ p.support), (f a h).support := by - refine Set.ext fun b => ?_ - simp only [ENNReal.tsum_eq_zero, not_or, mem_support_iff, bindOnSupport_apply, Ne, not_forall, - mul_eq_zero, Set.mem_iUnion] - exact - ⟨fun hb => - let ⟨a, ⟨ha, ha'⟩⟩ := hb - ⟨a, ha, by simpa [ha] using ha'⟩, - fun hb => - let ⟨a, ha, ha'⟩ := hb - ⟨a, ⟨ha, by simpa [(mem_support_iff _ a).1 ha] using ha'⟩⟩⟩ + ext + simp theorem mem_support_bindOnSupport_iff (b : β) : b ∈ (p.bindOnSupport f).support ↔ ∃ (a : α) (h : a ∈ p.support), b ∈ (f a h).support := by ``` ``` ℹ [1634/1634] Built Mathlib.Probability.ProbabilityMassFunction.Monad (1.6s) info: Mathlib/Probability/ProbabilityMassFunction/Monad.lean:202:0: [Elab.async] [0.219192] elaborating proof of PMF.support_bindOnSupport [Elab.definition.value] [0.218516] PMF.support_bindOnSupport [Elab.step] [0.217487] ext simp [Elab.step] [0.217480] ext simp [Elab.step] [0.217277] simp [Meta.Tactic.simp.discharge] [0.024024] tsum_empty discharge ❌️ IsEmpty α [Meta.synthInstance] [0.023614] ❌️ Nonempty α Build completed successfully (1634 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-measure-probability 2/10 Mathlib/Probability/ProbabilityMassFunction/Monad.lean 1 1 ['github-actions'] nobody
0-33111
9 hours ago
1-77247
1 day ago
1-77286
1 day
31598 euprunin
author:euprunin
chore(Data/List): golf `ofFn_eq_pmap` using `ext; grind` ---
Show trace profiling of ofFn_eq_pmap: 24 ms before, 74 ms after ### Trace profiling of `ofFn_eq_pmap` before PR 31598 ```diff diff --git a/Mathlib/Data/List/FinRange.lean b/Mathlib/Data/List/FinRange.lean index 85f6e14dba..6e76b6640f 100644 --- a/Mathlib/Data/List/FinRange.lean +++ b/Mathlib/Data/List/FinRange.lean @@ -76,6 +76,7 @@ theorem map_coe_finRange (n : ℕ) : ((finRange n) : List (Fin n)).map (Fin.val) theorem finRange_succ_eq_map (n : ℕ) : finRange n.succ = 0 :: (finRange n).map Fin.succ := finRange_succ +set_option trace.profiler true in theorem ofFn_eq_pmap {n} {f : Fin n → α} : ofFn f = pmap (fun i hi => f ⟨i, hi⟩) (range n) fun _ => mem_range.1 := by rw [pmap_eq_map_attach] ``` ``` ℹ [529/529] Built Mathlib.Data.List.FinRange (1.0s) info: Mathlib/Data/List/FinRange.lean:80:0: [Elab.async] [0.024331] elaborating proof of List.ofFn_eq_pmap [Elab.definition.value] [0.023824] List.ofFn_eq_pmap [Elab.step] [0.023649] rw [pmap_eq_map_attach] exact ext_getElem (by simp) fun i hi1 hi2 => by simp [List.getElem_ofFn hi1] [Elab.step] [0.023643] rw [pmap_eq_map_attach] exact ext_getElem (by simp) fun i hi1 hi2 => by simp [List.getElem_ofFn hi1] [Elab.step] [0.022707] exact ext_getElem (by simp) fun i hi1 hi2 => by simp [List.getElem_ofFn hi1] [Elab.step] [0.012198] simp [List.getElem_ofFn hi1] [Elab.step] [0.012193] simp [List.getElem_ofFn hi1] [Elab.step] [0.012186] simp [List.getElem_ofFn hi1] Build completed successfully (529 jobs). ``` ### Trace profiling of `ofFn_eq_pmap` after PR 31598 ```diff diff --git a/Mathlib/Data/List/FinRange.lean b/Mathlib/Data/List/FinRange.lean index 85f6e14dba..5ef8e4c1d0 100644 --- a/Mathlib/Data/List/FinRange.lean +++ b/Mathlib/Data/List/FinRange.lean @@ -76,10 +76,11 @@ theorem map_coe_finRange (n : ℕ) : ((finRange n) : List (Fin n)).map (Fin.val) theorem finRange_succ_eq_map (n : ℕ) : finRange n.succ = 0 :: (finRange n).map Fin.succ := finRange_succ +set_option trace.profiler true in theorem ofFn_eq_pmap {n} {f : Fin n → α} : ofFn f = pmap (fun i hi => f ⟨i, hi⟩) (range n) fun _ => mem_range.1 := by - rw [pmap_eq_map_attach] - exact ext_getElem (by simp) fun i hi1 hi2 => by simp [List.getElem_ofFn hi1] + ext + grind theorem ofFn_id (n) : ofFn id = finRange n := rfl ``` ``` ℹ [529/529] Built Mathlib.Data.List.FinRange (1.0s) info: Mathlib/Data/List/FinRange.lean:80:0: [Elab.async] [0.074365] elaborating proof of List.ofFn_eq_pmap [Elab.definition.value] [0.074039] List.ofFn_eq_pmap [Elab.step] [0.073924] ext grind [Elab.step] [0.073917] ext grind [Elab.step] [0.073402] grind Build completed successfully (529 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-data 2/2 Mathlib/Data/List/FinRange.lean 1 1 ['github-actions'] nobody
0-32930
9 hours ago
0-46905
13 hours ago
0-46952
13 hours
31597 grunweg
author:grunweg
chore(AtLocation): allow throwing a warning when no progress is being made A future PR will use this to make `by_contra!` and friends warn if the `push_neg` step makes no progress. Co-authored by: Jovan Gerbscheid --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 46/28 Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Field.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/ReduceModChar.lean,Mathlib/Tactic/Ring/RingNF.lean,Mathlib/Util/AtLocation.lean,MathlibTest/FieldSimp.lean,MathlibTest/abel.lean 10 1 ['JovanGerb', 'github-actions'] nobody
0-32928
9 hours ago
0-32928
9 hours ago
0-32908
9 hours
31599 euprunin
author:euprunin
chore(Data/List): golf `insertIdx_pmap` using `ext; grind` ---
Show trace profiling of insertIdx_pmap: 51 ms before, 285 ms after ### Trace profiling of `insertIdx_pmap` before PR 31599 ```diff diff --git a/Mathlib/Data/List/InsertIdx.lean b/Mathlib/Data/List/InsertIdx.lean index b90a16262e..43de114107 100644 --- a/Mathlib/Data/List/InsertIdx.lean +++ b/Mathlib/Data/List/InsertIdx.lean @@ -63,6 +63,7 @@ theorem insertIdx_subset_cons (n : ℕ) (a : α) (l : List α) : l.insertIdx n a intro b hb simpa using eq_or_mem_of_mem_insertIdx hb +set_option trace.profiler true in theorem insertIdx_pmap {p : α → Prop} (f : ∀ a, p a → β) {l : List α} {a : α} {n : ℕ} (hl : ∀ x ∈ l, p x) (ha : p a) : (l.pmap f hl).insertIdx n (f a ha) = (l.insertIdx n a).pmap f ``` ``` ℹ [452/452] Built Mathlib.Data.List.InsertIdx (997ms) info: Mathlib/Data/List/InsertIdx.lean:67:0: [Elab.async] [0.051760] elaborating proof of List.insertIdx_pmap [Elab.definition.value] [0.050893] List.insertIdx_pmap [Elab.step] [0.050251] induction n generalizing l with | zero => cases l <;> simp | succ n ihn => cases l <;> simp_all [Elab.step] [0.050245] induction n generalizing l with | zero => cases l <;> simp | succ n ihn => cases l <;> simp_all [Elab.step] [0.050239] induction n generalizing l with | zero => cases l <;> simp | succ n ihn => cases l <;> simp_all [Elab.step] [0.046111] cases l <;> simp_all [Elab.step] [0.046075] cases l <;> simp_all [Elab.step] [0.046069] (cases l) <;> simp_all [Elab.step] [0.046061] focus cases l with_annotate_state"<;>" skip all_goals simp_all [Elab.step] [0.046055] cases l with_annotate_state"<;>" skip all_goals simp_all [Elab.step] [0.046051] cases l with_annotate_state"<;>" skip all_goals simp_all [Elab.step] [0.045526] all_goals simp_all [Elab.step] [0.024558] simp_all [Elab.step] [0.024554] simp_all [Elab.step] [0.024544] simp_all [Meta.Tactic.simp.discharge] [0.017061] IsEmpty.forall_iff discharge ❌️ IsEmpty (∀ (x : α), x ∈ l → p x) [Elab.step] [0.020878] simp_all [Elab.step] [0.020871] simp_all [Elab.step] [0.020864] simp_all [Meta.Tactic.simp.discharge] [0.012786] IsEmpty.forall_iff discharge ❌️ IsEmpty (∀ (x : α), x ∈ l → p x) Build completed successfully (452 jobs). ``` ### Trace profiling of `insertIdx_pmap` after PR 31599 ```diff diff --git a/Mathlib/Data/List/InsertIdx.lean b/Mathlib/Data/List/InsertIdx.lean index b90a16262e..77ecfea7cb 100644 --- a/Mathlib/Data/List/InsertIdx.lean +++ b/Mathlib/Data/List/InsertIdx.lean @@ -63,13 +63,13 @@ theorem insertIdx_subset_cons (n : ℕ) (a : α) (l : List α) : l.insertIdx n a intro b hb simpa using eq_or_mem_of_mem_insertIdx hb +set_option trace.profiler true in theorem insertIdx_pmap {p : α → Prop} (f : ∀ a, p a → β) {l : List α} {a : α} {n : ℕ} (hl : ∀ x ∈ l, p x) (ha : p a) : (l.pmap f hl).insertIdx n (f a ha) = (l.insertIdx n a).pmap f (fun _ h ↦ (eq_or_mem_of_mem_insertIdx h).elim (fun heq ↦ heq ▸ ha) (hl _)) := by - induction n generalizing l with - | zero => cases l <;> simp - | succ n ihn => cases l <;> simp_all + ext + grind theorem map_insertIdx (f : α → β) (l : List α) (n : ℕ) (a : α) : (l.insertIdx n a).map f = (l.map f).insertIdx n (f a) := by ``` ``` ℹ [452/452] Built Mathlib.Data.List.InsertIdx (1.2s) info: Mathlib/Data/List/InsertIdx.lean:67:0: [Elab.async] [0.286042] elaborating proof of List.insertIdx_pmap [Elab.definition.value] [0.284883] List.insertIdx_pmap [Elab.step] [0.284702] ext grind [Elab.step] [0.284696] ext grind [Elab.step] [0.284160] grind info: Mathlib/Data/List/InsertIdx.lean:72:2: [Elab.async] [0.012667] Lean.addDecl [Kernel] [0.012657] ✅️ typechecking declarations [List.insertIdx_pmap._proof_1_47] Build completed successfully (452 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-data 2/3 Mathlib/Data/List/InsertIdx.lean 1 1 ['github-actions'] nobody
0-32890
9 hours ago
0-46692
12 hours ago
0-46734
12 hours
31602 euprunin
author:euprunin
chore(Data/Set): golf `image_sUnion` using `grind` ---
Show trace profiling of image_sUnion: 11 ms before, 32 ms after ### Trace profiling of `image_sUnion` before PR 31602 ```diff diff --git a/Mathlib/Data/Set/Lattice/Image.lean b/Mathlib/Data/Set/Lattice/Image.lean index 5f342155da..e416a9f7d3 100644 --- a/Mathlib/Data/Set/Lattice/Image.lean +++ b/Mathlib/Data/Set/Lattice/Image.lean @@ -391,6 +391,7 @@ theorem preimage_iUnion {f : α → β} {s : ι → Set β} : (f ⁻¹' ⋃ i, s theorem preimage_iUnion₂ {f : α → β} {s : ∀ i, κ i → Set β} : (f ⁻¹' ⋃ (i) (j), s i j) = ⋃ (i) (j), f ⁻¹' s i j := by simp_rw [preimage_iUnion] +set_option trace.profiler true in theorem image_sUnion {f : α → β} {s : Set (Set α)} : (f '' ⋃₀ s) = ⋃₀ (image f '' s) := by ext b simp only [mem_image, mem_sUnion, exists_prop, sUnion_image, mem_iUnion] ``` ``` ℹ [414/414] Built Mathlib.Data.Set.Lattice.Image (1.9s) info: Mathlib/Data/Set/Lattice/Image.lean:395:0: [Elab.async] [0.011457] elaborating proof of Set.image_sUnion [Elab.definition.value] [0.010753] Set.image_sUnion [Elab.step] [0.010230] ext b simp only [mem_image, mem_sUnion, exists_prop, sUnion_image, mem_iUnion] constructor · rintro ⟨a, ⟨t, ht₁, ht₂⟩, rfl⟩ exact ⟨t, ht₁, a, ht₂, rfl⟩ · rintro ⟨t, ht₁, a, ht₂, rfl⟩ exact ⟨a, ⟨t, ht₁, ht₂⟩, rfl⟩ [Elab.step] [0.010223] ext b simp only [mem_image, mem_sUnion, exists_prop, sUnion_image, mem_iUnion] constructor · rintro ⟨a, ⟨t, ht₁, ht₂⟩, rfl⟩ exact ⟨t, ht₁, a, ht₂, rfl⟩ · rintro ⟨t, ht₁, a, ht₂, rfl⟩ exact ⟨a, ⟨t, ht₁, ht₂⟩, rfl⟩ Build completed successfully (414 jobs). ``` ### Trace profiling of `image_sUnion` after PR 31602 ```diff diff --git a/Mathlib/Data/Set/Lattice/Image.lean b/Mathlib/Data/Set/Lattice/Image.lean index 5f342155da..010feb9b00 100644 --- a/Mathlib/Data/Set/Lattice/Image.lean +++ b/Mathlib/Data/Set/Lattice/Image.lean @@ -391,14 +391,11 @@ theorem preimage_iUnion {f : α → β} {s : ι → Set β} : (f ⁻¹' ⋃ i, s theorem preimage_iUnion₂ {f : α → β} {s : ∀ i, κ i → Set β} : (f ⁻¹' ⋃ (i) (j), s i j) = ⋃ (i) (j), f ⁻¹' s i j := by simp_rw [preimage_iUnion] +set_option trace.profiler true in theorem image_sUnion {f : α → β} {s : Set (Set α)} : (f '' ⋃₀ s) = ⋃₀ (image f '' s) := by - ext b - simp only [mem_image, mem_sUnion, exists_prop, sUnion_image, mem_iUnion] - constructor - · rintro ⟨a, ⟨t, ht₁, ht₂⟩, rfl⟩ - exact ⟨t, ht₁, a, ht₂, rfl⟩ - · rintro ⟨t, ht₁, a, ht₂, rfl⟩ - exact ⟨a, ⟨t, ht₁, ht₂⟩, rfl⟩ + ext + simp only [Set.mem_iUnion, Set.sUnion_image] + grind @[simp] theorem preimage_sUnion {f : α → β} {s : Set (Set β)} : f ⁻¹' ⋃₀ s = ⋃ t ∈ s, f ⁻¹' t := by ``` ``` ℹ [414/414] Built Mathlib.Data.Set.Lattice.Image (1.9s) info: Mathlib/Data/Set/Lattice/Image.lean:395:0: [Elab.async] [0.031914] elaborating proof of Set.image_sUnion [Elab.definition.value] [0.031515] Set.image_sUnion [Elab.step] [0.031392] ext simp only [Set.mem_iUnion, Set.sUnion_image] grind [Elab.step] [0.031386] ext simp only [Set.mem_iUnion, Set.sUnion_image] grind [Elab.step] [0.026423] grind Build completed successfully (414 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-data 3/7 Mathlib/Data/Set/Lattice/Image.lean 1 1 ['github-actions'] nobody
0-32849
9 hours ago
0-40492
11 hours ago
0-40530
11 hours
31563 EtienneC30
author:EtienneC30
feat: small lemma about InnerProductSpace.toDual Prove `toDual 𝕜 E x = toDualMap 𝕜 E x`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 7/0 Mathlib/Analysis/InnerProductSpace/Dual.lean 1 7 ['EtienneC30', 'github-actions', 'themathqueen'] nobody
0-31192
8 hours ago
1-34921
1 day ago
1-34966
1 day
31603 alreadydone
author:alreadydone
chore(Algebra): make `RatFunc` an abbrev --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra RFC
label:t-algebra$
81/431 Mathlib/FieldTheory/Laurent.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/FieldTheory/RatFunc/Defs.lean 4 4 ['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] nobody
0-30448
8 hours ago
0-30448
8 hours ago
0-32909
9 hours
31510 JovanGerb
author:JovanGerb
feat(contrapose): cancel negations, and support `↔` This PR introduces two features for `contrapose`: - `contrapose` applied to a goal `p ↔ q` creates the goal `¬p ↔ ¬q`. - Instead of creating double negations, contrapose will try to cancel out double negations that it creates. This will allow for replacing some occurrences of `contrapose!` with `contrapose` (TODO: write a linter for this?). It also allows avoiding classical logic in some cases. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/RFC.3A.20contrapose.20for.20.60a.20.E2.86.94.20b.60/with/554945103) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge t-meta 172/18 Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean,Mathlib/RingTheory/Localization/Integral.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/Tactic/Contrapose.lean,MathlibTest/Contrapose.lean 6 21 ['JovanGerb', 'github-actions', 'grunweg', 'leanprover-bot'] nobody
0-29087
8 hours ago
1-65246
1 day ago
1-78029
1 day
31609 JovanGerb
author:JovanGerb
fix(rw??): `whnf` on equality hypotheses This PR adds some missing `whnf` in the `rw??` implementation. This only affects the behaviour of rewriting with local variables. I discovered that sometimes the type can be an uninstantiated metavariable that needs to first instantiated, for example by using `whnf`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 6/6 Mathlib/Tactic/Widget/LibraryRewrite.lean 1 1 ['github-actions'] nobody
0-28529
7 hours ago
0-28534
7 hours ago
0-28569
7 hours
31247 rudynicolop
author:rudynicolop
feat(Computability/DFA): add DFA complement, union, and intersection Add theorems for DFA complement, union, and intersection closure, and prove that regular languages are closed under complement, union, and intersection. Note there's a [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/with/553522644) regarding PRs for regular languages (also tracked in #24205). Admittedly, this is yet another PR, and this may prove obsolete if other PRs are merged first. In particular, this PR competes with #20238 and #15651. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor 124/5 Mathlib/Computability/DFA.lean,Mathlib/Computability/Language.lean 2 34 ['ctchou', 'github-actions', 'rudynicolop', 'staroperator'] nobody
0-26231
7 hours ago
9-80181
9 days ago
9-80215
9 days
31523 kim-em
author:kim-em
chore: fix version comparison in lake update hook 5/2 lakefile.lean 1 3 ['eric-wieser', 'github-actions', 'kim-em'] nobody
0-24823
6 hours ago
0-24876
6 hours ago
1-81203
1 day
31611 thorimur
author:thorimur
feat(Meta): `withPlural` wrapper for more readable messages in source This small PR introduces a thin wrapper `withPlural` for Lean's textual datatypes so that we can write ``` "foo".withPlural "foos" count ``` instead of ``` if count = 1 then "foo" else "foos" ``` The dot notation here is chosen so that the singular version of the word appears at the start of the syntax, as opposed to buried in an `if/then`. This makes dynamically pluralizing a word in `MessageData` (which is a relatively common occurrence) a bit easier to read in source, especially when multiple pluralizations are needed close to one another. --- Am I handling the copyright header correctly? My reasoning is that the file was devoid of content, and so this is ultimately a new file. But I'm not sure this is technically what should happen here. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 34/5 Mathlib/Lean/Message.lean 1 1 ['github-actions'] nobody
0-23583
6 hours ago
0-23773
6 hours ago
0-23812
6 hours
31244 kim-em
author:kim-em
chore: use generic `map_X` lemmas where possible While thinking about grind annotations for homomorphisms, it occurs to me that automation is more likely when we use the generic, rather than namespaced, lemmas where possible. This is some cleanup in that direction. 817/861 Archive/Examples/Eisenstein.lean,Archive/Wiedijk100Theorems/Partition.lean,Counterexamples/CliffordAlgebraNotInjective.lean,Counterexamples/DirectSumIsInternal.lean,Counterexamples/Phillips.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/Grp/Images.lean,Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/Images.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/Algebra/CharP/Pi.lean,Mathlib/Algebra/CharP/Subring.lean,Mathlib/Algebra/Colimit/Module.lean,Mathlib/Algebra/Colimit/Ring.lean,Mathlib/Algebra/CubicDiscriminant.lean,Mathlib/Algebra/DirectSum/Algebra.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/Exact.lean,Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/ForwardDiff.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/Algebra/Group/Submonoid/Pointwise.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/GroupWithZero/Subgroup.lean,Mathlib/Algebra/GroupWithZero/Submonoid/Pointwise.lean,Mathlib/Algebra/Homology/ComplexShapeSigns.lean,Mathlib/Algebra/Homology/Homotopy.lean,Mathlib/Algebra/Lie/BaseChange.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/Character.lean,Mathlib/Algebra/Lie/DirectSum.lean,Mathlib/Algebra/Lie/Free.lean,Mathlib/Algebra/Lie/TensorProduct.lean,Mathlib/Algebra/Lie/TraceForm.lean,Mathlib/Algebra/Lie/Weights/Basic.lean,Mathlib/Algebra/Lie/Weights/Cartan.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Algebra/Module/Injective.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Module/LinearMap/End.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/Algebra/Module/LocalizedModule/Exact.lean,Mathlib/Algebra/Module/Submodule/Bilinear.lean,Mathlib/Algebra/Module/Submodule/Ker.lean,Mathlib/Algebra/Module/Submodule/LinearMap.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/Algebra/MvPolynomial/CommRing.lean,Mathlib/Algebra/MvPolynomial/Derivation.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/MvPolynomial/Funext.lean,Mathlib/Algebra/MvPolynomial/Monad.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Coeff.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean,Mathlib/Algebra/Polynomial/DenomsClearable.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Eval/Coeff.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Lifts.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Quandle.lean,Mathlib/Algebra/Ring/Action/Basic.lean,Mathlib/Algebra/Ring/Action/End.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/Algebra/Star/TensorProduct.lean,Mathlib/Algebra/TrivSqZeroExt.lean,Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Complex/Harmonic/Analytic.lean,Mathlib/Analysis/Complex/Isometry.lean,Mathlib/Analysis/Complex/Norm.lean,Mathlib/Analysis/Complex/Polynomial/Basic.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean 336 19 ['github-actions', 'j-loreaux', 'kim-em', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] tb65536
assignee:tb65536
0-23379
6 hours ago
0-23407
6 hours ago
8-32997
8 days
31612 JovanGerb
author:JovanGerb
chore(Tactic/Translate): rename the `ToAdditive` folder Rename the folder `ToAdditive` to `Translate`. And rename the file `Frontend` to `Core` (since that now mostly contains the backend code for the translation attributes). Instead of `Translate`, we could also call it e.g. `Translation`, `TranslateAttr` or `TranslationAttr`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-meta 15/18 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ToAdditive.lean,Mathlib/Tactic/ToDual.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/GuessName.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Tactic/Translate/ToDual.lean,scripts/noshake.json 9 1 ['github-actions'] nobody
0-21965
6 hours ago
0-21965
6 hours ago
0-22008
6 hours
27508 chrisflav
author:chrisflav
feat(RingTheory): height under ring homomorphism We show that if `P` lies over `p`, the height of `P` is bounded by the height of `p` plus the height of the image of `P` in `S ⧸ p S`. In a follow-up PR, we show that equality holds if `S` satisfies going-down as an `R`-algebra. Co-authored by: Sihan Su Co-authored by: Yi Song --- - [x] depends on: #28520 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 101/1 Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Basic.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean 4 17 ['YaelDillies', 'chrisflav', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] mariainesdff
assignee:mariainesdff
0-21707
6 hours ago
3-64600
3 days ago
10-8167
10 days
27821 BGuillemet
author:BGuillemet
feat(CategoryTheory/Sites/Sheaf): functorial version of Sheaf.homEquiv Add two functorial versions of Sheaf.homEquiv, one using `yoneda` and the other using `coyoneda`. --- - [ ] depends on: #27819 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-category-theory 23/1 Mathlib/CategoryTheory/Sites/Sheaf.lean 1 4 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] adamtopaz
assignee:adamtopaz
0-21706
6 hours ago
4-47653
4 days ago
4-52107
4 days
29565 joelriou
author:joelriou
feat(CategoryTheory): dense functors A functor `F : C ⥤ D` is dense if `𝟭 D` is a pointwise left Kan extension of `F` along itself, i.e. any `Y : D` is the colimit of all `F.obj X` for all morphisms `F.obj X ⟶ Y` (which is the condition `F.DenseAt Y`). When `F` is full, we show that this is equivalent to saying that the restricted Yoneda functor `D ⥤ Cᵒᵖ ⥤ Type _` is fully faithful. We also show that the range of a dense functor is a strong generator. --- - [x] depends on: #30269 - [x] depends on: #29556 - [x] depends on: #29519 - [x] depends on: #29518 - [x] depends on: #29543 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 126/0 Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Dense.lean 2 6 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] jcommelin
assignee:jcommelin
0-21705
6 hours ago
5-34580
5 days ago
5-34553
5 days
31149 riccardobrasca
author:riccardobrasca
feat: power series over a noetherian ring is noetherian We add that the power series ring over a noetherian ring is noetherian. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory maintainer-merge 287/3 Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/RingTheory/PowerSeries/Ideal.lean,Mathlib/RingTheory/PowerSeries/Trunc.lean,docs/references.bib 5 40 ['copilot-pull-request-reviewer', 'erdOne', 'github-actions', 'riccardobrasca', 'yapudpill'] erdOne
assignee:erdOne
0-21703
6 hours ago
4-31644
4 days ago
10-81556
10 days
31198 YaelDillies
author:YaelDillies
feat(Algebra): characterise when a quotient is nontrivial From BrauerGroup and ClassFieldTheory --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CFT large-import t-algebra
label:t-algebra$
167/133 Mathlib/Algebra/Lie/Engel.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/Hom.lean,Mathlib/GroupTheory/CosetCover.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/Quotient/Basic.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/ClassGroup.lean,Mathlib/RingTheory/Congruence/Basic.lean,Mathlib/RingTheory/Congruence/Defs.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/RingTheory/Jacobson/Ring.lean,Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean,Mathlib/RingTheory/KrullDimension/Regular.lean,Mathlib/RingTheory/LocalRing/Quotient.lean,Mathlib/RingTheory/NoetherNormalization.lean,Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/RingTheory/Support.lean,Mathlib/RingTheory/TensorProduct/Finite.lean,Mathlib/RingTheory/Unramified/LocalRing.lean 32 2 ['github-actions', 'mathlib4-merge-conflict-bot'] kim-em
assignee:kim-em
0-21703
6 hours ago
3-43996
3 days ago
11-38018
11 days
31235 CoolRmal
author:CoolRmal
feat (Topology): IsCompletelyPseudoMetrizable Introduce the notion of IsCompletelyPseudoMetrizable. The main motivation is to prove the first Baire theorem for a completely pseudometrizable space. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/First.20Baire.20theorem --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 146/30 Mathlib/Topology/Baire/CompleteMetrizable.lean,Mathlib/Topology/MetricSpace/Isometry.lean,Mathlib/Topology/Metrizable/CompletelyMetrizable.lean 3 16 ['CoolRmal', 'EtienneC30', 'github-actions'] j-loreaux
assignee:j-loreaux
0-21702
6 hours ago
5-18889
5 days ago
10-955
10 days
31237 euprunin
author:euprunin
chore(Logic/Equiv): golf entire `Perm.subtypeCongr.symm` using `rfl` ---
Show trace profiling of Perm.subtypeCongr.symm: 15 ms before, <10 ms after 🎉 ### Trace profiling of `Perm.subtypeCongr.symm` before PR 31237 ```diff diff --git a/Mathlib/Logic/Equiv/Basic.lean b/Mathlib/Logic/Equiv/Basic.lean index 0c39837098..557e0228df 100644 --- a/Mathlib/Logic/Equiv/Basic.lean +++ b/Mathlib/Logic/Equiv/Basic.lean @@ -83,6 +83,7 @@ theorem Perm.subtypeCongr.refl : ext x by_cases h : p x <;> simp [h] +set_option trace.profiler true in @[simp] theorem Perm.subtypeCongr.symm : (ep.subtypeCongr en).symm = Perm.subtypeCongr ep.symm en.symm := by ext x ``` ``` ℹ [310/310] Built Mathlib.Logic.Equiv.Basic (1.5s) info: Mathlib/Logic/Equiv/Basic.lean:87:0: [Elab.async] [0.015219] elaborating proof of Equiv.Perm.subtypeCongr.symm [Elab.definition.value] [0.014659] Equiv.Perm.subtypeCongr.symm [Elab.step] [0.014391] ext x by_cases h : p x · have : p (ep.symm ⟨x, h⟩) := Subtype.property _ simp [h, symm_apply_eq, this] · have : ¬p (en.symm ⟨x, h⟩) := Subtype.property (en.symm _) simp [h, symm_apply_eq, this] [Elab.step] [0.014380] ext x by_cases h : p x · have : p (ep.symm ⟨x, h⟩) := Subtype.property _ simp [h, symm_apply_eq, this] · have : ¬p (en.symm ⟨x, h⟩) := Subtype.property (en.symm _) simp [h, symm_apply_eq, this] Build completed successfully (310 jobs). ``` ### Trace profiling of `Perm.subtypeCongr.symm` after PR 31237 ```diff diff --git a/Mathlib/Logic/Equiv/Basic.lean b/Mathlib/Logic/Equiv/Basic.lean index 0c39837098..f3cfa176a3 100644 --- a/Mathlib/Logic/Equiv/Basic.lean +++ b/Mathlib/Logic/Equiv/Basic.lean @@ -83,14 +83,10 @@ theorem Perm.subtypeCongr.refl : ext x by_cases h : p x <;> simp [h] +set_option trace.profiler true in @[simp] -theorem Perm.subtypeCongr.symm : (ep.subtypeCongr en).symm = Perm.subtypeCongr ep.symm en.symm := by - ext x - by_cases h : p x - · have : p (ep.symm ⟨x, h⟩) := Subtype.property _ - simp [h, symm_apply_eq, this] - · have : ¬p (en.symm ⟨x, h⟩) := Subtype.property (en.symm _) - simp [h, symm_apply_eq, this] +theorem Perm.subtypeCongr.symm : (ep.subtypeCongr en).symm = Perm.subtypeCongr ep.symm en.symm := + rfl @[simp] theorem Perm.subtypeCongr.trans : ``` ``` ℹ [310/310] Built Mathlib.Logic.Equiv.Basic (1.5s) info: Mathlib/Logic/Equiv/Basic.lean:87:0: [Elab.async] [0.010065] elaborating proof of Equiv.Perm.subtypeCongr.symm Build completed successfully (310 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-logic 2/7 Mathlib/Logic/Equiv/Basic.lean 1 1 ['github-actions'] fpvandoorn
assignee:fpvandoorn
0-21701
6 hours ago
10-30910
10 days ago
10-30944
10 days
31286 bryangingechen
author:bryangingechen
ci: make new contributor labeling work for users with a private profile The search API we switched to in #30859 returns an error when we try to filter for users with a private profile ([example log](https://github.com/leanprover-community/mathlib4/actions/runs/19093647472/job/54548944242?pr=31272)). We switch to searching for closed issues in the repo, which was working before. We then filter these for closed PRs whose titles start with `[Merged by bors] -`. We also include a slight optimization so that we don't have to page through all of a user's closed issues but stop when we find enough that count as merged PRs (>5 at the moment). written with help from Claude --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CI 41/16 .github/workflows/label_new_contributor.yml 1 8 ['Ruben-VandeVelde', 'bryangingechen', 'github-actions'] robertylewis
assignee:robertylewis
0-21700
6 hours ago
8-58591
8 days ago
8-58627
8 days
31363 euprunin
author:euprunin
chore(LinearAlgebra/AffineSpace): golf entire `attach_affineCombination_of_injective` using `simp` ---
Show trace profiling of attach_affineCombination_of_injective: 39 ms before, 83 ms after ### Trace profiling of `attach_affineCombination_of_injective` before PR 31363 ```diff diff --git a/Mathlib/LinearAlgebra/AffineSpace/Combination.lean b/Mathlib/LinearAlgebra/AffineSpace/Combination.lean index dbcbffbf97..80a6e546e8 100644 --- a/Mathlib/LinearAlgebra/AffineSpace/Combination.lean +++ b/Mathlib/LinearAlgebra/AffineSpace/Combination.lean @@ -399,6 +399,7 @@ theorem affineCombination_vsub (w₁ w₂ : ι → k) (p : ι → P) : s.affineCombination k p w₁ -ᵥ s.affineCombination k p w₂ = s.weightedVSub p (w₁ - w₂) := by rw [← AffineMap.linearMap_vsub, affineCombination_linear, vsub_eq_sub] +set_option trace.profiler true in theorem attach_affineCombination_of_injective [DecidableEq P] (s : Finset P) (w : P → k) (f : s → P) (hf : Function.Injective f) : s.attach.affineCombination k f (w ∘ f) = (image f univ).affineCombination k id w := by ``` ``` ℹ [1120/1120] Built Mathlib.LinearAlgebra.AffineSpace.Combination (2.4s) info: Mathlib/LinearAlgebra/AffineSpace/Combination.lean:403:0: [Elab.command] [0.011952] theorem attach_affineCombination_of_injective [DecidableEq P] (s : Finset P) (w : P → k) (f : s → P) (hf : Function.Injective f) : s.attach.affineCombination k f (w ∘ f) = (image f univ).affineCombination k id w := by simp only [affineCombination, weightedVSubOfPoint_apply, id, vadd_right_cancel_iff, Function.comp_apply, AffineMap.coe_mk] let g₁ : s → V := fun i => w (f i) • (f i -ᵥ Classical.choice S.nonempty) let g₂ : P → V := fun i => w i • (i -ᵥ Classical.choice S.nonempty) change univ.sum g₁ = (image f univ).sum g₂ have hgf : g₁ = g₂ ∘ f := by ext simp [g₁, g₂] rw [hgf, sum_image] · simp only [g₂, Function.comp_apply] · exact fun _ _ _ _ hxy => hf hxy info: Mathlib/LinearAlgebra/AffineSpace/Combination.lean:403:0: [Elab.async] [0.041027] elaborating proof of Finset.attach_affineCombination_of_injective [Elab.definition.value] [0.039381] Finset.attach_affineCombination_of_injective [Elab.step] [0.038759] simp only [affineCombination, weightedVSubOfPoint_apply, id, vadd_right_cancel_iff, Function.comp_apply, AffineMap.coe_mk] let g₁ : s → V := fun i => w (f i) • (f i -ᵥ Classical.choice S.nonempty) let g₂ : P → V := fun i => w i • (i -ᵥ Classical.choice S.nonempty) change univ.sum g₁ = (image f univ).sum g₂ have hgf : g₁ = g₂ ∘ f := by ext simp [g₁, g₂] rw [hgf, sum_image] · simp only [g₂, Function.comp_apply] · exact fun _ _ _ _ hxy => hf hxy [Elab.step] [0.038753] simp only [affineCombination, weightedVSubOfPoint_apply, id, vadd_right_cancel_iff, Function.comp_apply, AffineMap.coe_mk] let g₁ : s → V := fun i => w (f i) • (f i -ᵥ Classical.choice S.nonempty) let g₂ : P → V := fun i => w i • (i -ᵥ Classical.choice S.nonempty) change univ.sum g₁ = (image f univ).sum g₂ have hgf : g₁ = g₂ ∘ f := by ext simp [g₁, g₂] rw [hgf, sum_image] · simp only [g₂, Function.comp_apply] · exact fun _ _ _ _ hxy => hf hxy [Elab.step] [0.014701] simp only [affineCombination, weightedVSubOfPoint_apply, id, vadd_right_cancel_iff, Function.comp_apply, AffineMap.coe_mk] Build completed successfully (1120 jobs). ``` ### Trace profiling of `attach_affineCombination_of_injective` after PR 31363 ```diff diff --git a/Mathlib/LinearAlgebra/AffineSpace/Combination.lean b/Mathlib/LinearAlgebra/AffineSpace/Combination.lean index dbcbffbf97..f7919e28b5 100644 --- a/Mathlib/LinearAlgebra/AffineSpace/Combination.lean +++ b/Mathlib/LinearAlgebra/AffineSpace/Combination.lean @@ -399,20 +399,11 @@ theorem affineCombination_vsub (w₁ w₂ : ι → k) (p : ι → P) : s.affineCombination k p w₁ -ᵥ s.affineCombination k p w₂ = s.weightedVSub p (w₁ - w₂) := by rw [← AffineMap.linearMap_vsub, affineCombination_linear, vsub_eq_sub] +set_option trace.profiler true in theorem attach_affineCombination_of_injective [DecidableEq P] (s : Finset P) (w : P → k) (f : s → P) (hf : Function.Injective f) : s.attach.affineCombination k f (w ∘ f) = (image f univ).affineCombination k id w := by - simp only [affineCombination, weightedVSubOfPoint_apply, id, vadd_right_cancel_iff, - Function.comp_apply, AffineMap.coe_mk] - let g₁ : s → V := fun i => w (f i) • (f i -ᵥ Classical.choice S.nonempty) - let g₂ : P → V := fun i => w i • (i -ᵥ Classical.choice S.nonempty) - change univ.sum g₁ = (image f univ).sum g₂ - have hgf : g₁ = g₂ ∘ f := by - ext - simp [g₁, g₂] - rw [hgf, sum_image] - · simp only [g₂,Function.comp_apply] - · exact fun _ _ _ _ hxy => hf hxy + simp [affineCombination, hf] theorem attach_affineCombination_coe (s : Finset P) (w : P → k) : s.attach.affineCombination k ((↑) : s → P) (w ∘ (↑)) = s.affineCombination k id w := by ``` ``` ℹ [1120/1120] Built Mathlib.LinearAlgebra.AffineSpace.Combination (2.4s) info: Mathlib/LinearAlgebra/AffineSpace/Combination.lean:403:0: [Elab.command] [0.012162] theorem attach_affineCombination_of_injective [DecidableEq P] (s : Finset P) (w : P → k) (f : s → P) (hf : Function.Injective f) : s.attach.affineCombination k f (w ∘ f) = (image f univ).affineCombination k id w := by simp [affineCombination, hf] info: Mathlib/LinearAlgebra/AffineSpace/Combination.lean:403:0: [Elab.async] [0.084734] elaborating proof of Finset.attach_affineCombination_of_injective [Elab.definition.value] [0.083451] Finset.attach_affineCombination_of_injective [Elab.step] [0.082443] simp [affineCombination, hf] [Elab.step] [0.082438] simp [affineCombination, hf] [Elab.step] [0.082430] simp [affineCombination, hf] [Meta.Tactic.simp.discharge] [0.030281] univ_eq_empty discharge ❌️ IsEmpty ↥s [Meta.synthInstance] [0.028689] ❌️ Nonempty ↥s Build completed successfully (1120 jobs). ```
--- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-algebra
label:t-algebra$
1/11 Mathlib/LinearAlgebra/AffineSpace/Combination.lean 1 4 ['euprunin', 'github-actions', 'grunweg'] nobody
0-21699
6 hours ago
6-35166
6 days ago
6-51525
6 days
31438 b-mehta
author:b-mehta
chore(Order/UnorderedInterval): add basic uIoo lemmas Add a couple of lemmas about uIoo that are already present for uIcc. We also rename `uIoo_subset_uIcc` to `uIoo_subset_uIcc_self` for parity with the ordered version. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 18/1 Mathlib/Order/Interval/Set/UnorderedInterval.lean 1 1 ['github-actions'] bryangingechen
assignee:bryangingechen
0-21697
6 hours ago
4-51186
4 days ago
4-51220
4 days
31453 kim-em
author:kim-em
feat: locally contractible spaces t-topology 196/0 Mathlib.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,Mathlib/Topology/Homotopy/LocallyContractible.lean,docs/references.bib 4 1 ['github-actions'] nobody
0-21696
6 hours ago
4-19606
4 days ago
4-21563
4 days
31465 bryangingechen
author:bryangingechen
ci: Notify Zulip on update dependencies workflow failure This adds a little bit more monitoring; would have caught the failures fixed by #31457 a little earlier. CI 13/0 .github/workflows/update_dependencies.yml 1 1 ['github-actions'] robertylewis
assignee:robertylewis
0-21695
6 hours ago
3-66347
3 days ago
3-66380
3 days
31458 bwangpj
author:bwangpj
feat: Subgroup.mem_sup for arbitrary groups when one of the subgroups is normal We prove Subgroup.mem_sup for arbitrary (not necessarily commutative) groups when one of the subgroups is normal. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
18/0 Mathlib/Algebra/Group/Subgroup/Lattice.lean 1 1 ['github-actions'] ocfnash
assignee:ocfnash
0-21695
6 hours ago
4-301
4 days ago
4-337
4 days
31470 ADedecker
author:ADedecker
feat: define test functions in the sense of distribution theory This code comes from #30278 from @luigi-massacci, who is the main author of this file. I am just opening another PR in order to parallelize the review work, since this doesn't depend on anything. --- I did change one thing from Luigi's code: we want to define `𝓓(Ω, F)` with `Ω : Opens E`, not just `𝓓(E, F)`. This makes the notation slightly more cumbersome when `Ω = E`, but I think we just have to either live with it or find a purely notational trick. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 160/0 Mathlib.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean 3 2 ['ADedecker', 'github-actions'] grunweg
assignee:grunweg
0-21694
6 hours ago
3-53835
3 days ago
3-53815
3 days
31471 Scarlett-le
author:Scarlett-le
feat(LinearAlgebra/AffineSpace): add commutativity lemmas for line parallelism Adds three lemmas showing that parallelism between lines defined by point pairs is invariant under reversing the order of points. new-contributor t-algebra
label:t-algebra$
12/0 Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean 1 1 ['github-actions'] ocfnash
assignee:ocfnash
0-21693
6 hours ago
3-52608
3 days ago
3-52642
3 days
31475 YaelDillies
author:YaelDillies
feat: a pullback of schemes is canonically over the second component From Toric --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 161/2 Mathlib/AlgebraicGeometry/Pullbacks.lean 1 1 ['github-actions'] dagurtomas
assignee:dagurtomas
0-21692
6 hours ago
3-51018
3 days ago
3-51056
3 days
31490 themathqueen
author:themathqueen
chore(Algebra): move `QuadraticAlgebra` to `QuadraticAlgebra/Defs` Since we already have a `QuadraticAlgebra` folder, this should go in there. It looks strange on the documentation otherwise. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-algebra
label:t-algebra$
2/2 Mathlib.lean,Mathlib/Algebra/QuadraticAlgebra/Basic.lean,Mathlib/Algebra/QuadraticAlgebra/Defs.lean 3 1 ['github-actions'] eric-wieser
assignee:eric-wieser
0-21691
6 hours ago
3-28687
3 days ago
3-28731
3 days
31384 harahu
author:harahu
doc(Archive): ensure only a single H1 header per file This PR ensures we only have a single H1 header per lean file in the Archive subdirectory. We do this for the following reasons: - Having more than one H1 header per file is likely to hamper both assistive technologies and SEO, since it introduces ambiguity about what the title of the resulting webpage actually is. - The [documentation style guide](https://leanprover-community.github.io/contribute/doc.html) asks for the title of the file to be H1, any other header in the file-level docstring to be H2, and sectioning headers to be H3. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) IMO maintainer-merge 16/16 Archive/Imo/Imo1975Q1.lean,Archive/Imo/Imo1985Q2.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1997Q3.lean,Archive/Imo/Imo2001Q3.lean,Archive/Imo/Imo2001Q4.lean,Archive/Imo/Imo2001Q5.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2013Q1.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2015Q6.lean,Archive/Imo/Imo2021Q1.lean 16 3 ['github-actions', 'jsm28'] jsm28
assignee:jsm28
0-21434
5 hours ago
0-21434
5 hours ago
5-49999
5 days
26770 Jun2M
author:Jun2M
feat(Combinatorics/Graph) : subgraph relations on `Graph` This PR creates a new file `Combinatorics/Graph/Subgraph.lean`. In it, the PR introduces a partial order on graphs by subgraph relation, defines relations `IsInducedSubgraph`, `IsSpanningSubgraph` and `IsClosedSubgraph`. 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 363/1 Mathlib.lean,Mathlib/Combinatorics/Graph/Basic.lean,Mathlib/Combinatorics/Graph/Subgraph.lean 3 1 ['github-actions'] awainverse
assignee:awainverse
0-13912
3 hours ago
132-33179
4 months ago
132-33210
132 days
31159 gasparattila
author:gasparattila
feat(Topology/Sets): add `Compacts.toCloseds` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 15/0 Mathlib/Topology/Sets/Compacts.lean 1 5 ['gasparattila', 'github-actions', 'mathlib4-merge-conflict-bot', 'urkud'] urkud
assignee:urkud
0-9214
2 hours ago
0-63704
17 hours ago
11-53958
11 days
29283 Jlh18
author:Jlh18
feat(CategoryTheory): define forgetful-core adjunction between Cat and Grpd * Define `CategoryTheory.Core.functor`: the functor `Cat ⥤ Grpd` that on objects takes the core of a category * Define `CategoryTheory.Core.adjunction`: the adjunction with the forgetful functor `Grpd.forgetToCat` on the left, and the core functor `Core.functor` on the right. * Hence provide an instance that `Grpd.forgetToCat` is coreflective. - [ ] depends on: #29284 [Extra lemmas in CategoryTheory.Core] --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-category-theory 159/4 Mathlib.lean,Mathlib/CategoryTheory/Category/Grpd.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Core.lean 4 11 ['Jlh18', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-6878
1 hour ago
0-6878
1 hour ago
8-4516
8 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
98-21700
3 months ago
105-57749
3 months ago
132-45580
132 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
86-21715
2 months ago
97-40184
3 months ago
97-40217
97 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
86-21712
2 months ago
95-53042
3 months ago
95-53078
95 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
69-74165
2 months ago
69-74165
2 months ago
75-60343
75 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
50-51362
1 month ago
81-41599
2 months ago
81-41628
81 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
42-75618
1 month ago
80-8061
2 months ago
86-63924
86 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
38-21713
1 month ago
45-82201
1 month ago
45-83775
45 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
36-84710
1 month ago
69-80785
2 months ago
69-80811
69 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
35-21711
1 month ago
57-70711
1 month ago
57-70752
57 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
34-21721
1 month ago
50-51644
1 month ago
50-51679
50 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
24-21700
24 days ago
50-43156
1 month ago
68-39349
68 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
24-17641
24 days ago
36-39066
1 month ago
36-39095
36 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
21-64439
21 days ago
24-50688
24 days ago
145-33260
145 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
21-58469
21 days ago
21-58478
21 days ago
21-58517
21 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
21-21717
21 days ago
57-68920
1 month ago
66-56405
66 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
17-10624
17 days ago
17-13895
17 days ago
44-82270
44 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 109/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean 2 2 ['IvanRenison', 'github-actions'] awainverse
assignee:awainverse
13-21691
13 days ago
31-15705
1 month ago
31-15739
31 days
31178 morrison-daniel
author:morrison-daniel
feat(LinearAlgebra/Multilinear): basis for multilinear maps Adds a basis for MulilinearMap given bases for the domain and codomain. This PR builds upon work started in #25141 toward #11155. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import new-contributor t-algebra
label:t-algebra$
567/10 Mathlib.lean,Mathlib/LinearAlgebra/DFinsupp/PiTensorProduct.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/DirectSum/PiTensorProduct.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basis.lean,Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean,Mathlib/LinearAlgebra/Multilinear/DirectSum.lean,Mathlib/LinearAlgebra/Multilinear/Finsupp.lean,Mathlib/LinearAlgebra/Multilinear/Pi.lean 10 n/a ['github-actions'] nobody
11-31557
11 days ago
unknown
unknown
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 350/1 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/RingTheory/PowerSeries/Schroder.lean 3 1 ['github-actions'] dwrensha
assignee:dwrensha
10-68346
10 days ago
19-69972
19 days ago
19-69958
19 days
31107 rudynicolop
author:rudynicolop
feat(Data/Multiset): add Multiset filter and bind lemmas Add basic lemmas equating `Multiset` `filter`, `filterMap`, `join`, and `bind` operations. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 67/2 Mathlib/Data/Multiset/Bind.lean,Mathlib/Data/Multiset/Filter.lean 2 7 ['Ruben-VandeVelde', 'github-actions', 'rudynicolop'] nobody
10-20409
10 days ago
14-31106
14 days ago
14-31142
14 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 154/2 Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/List/TakeDrop.lean 2 7 ['BoltonBailey', 'github-actions', 'rudynicolop'] nobody
10-19897
10 days ago
35-28278
1 month ago
35-28312
35 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 33/4 Mathlib/RingTheory/RootsOfUnity/Complex.lean 1 7 ['Ruben-VandeVelde', 'SnirBroshi', 'chrisflav', 'github-actions', 'kckennylau'] chrisflav
assignee:chrisflav
9-38897
9 days ago
9-38910
9 days ago
55-44770
55 days
31243 FlAmmmmING
author:FlAmmmmING
feat(Mathlib/Combinatorics/SimpleGraph/Planar.lean): Define the planar graph in mathlib --- [![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/SimpleGraph/Planar.lean 2 5 ['SnirBroshi', 'github-actions'] nobody
9-37486
9 days ago
10-12675
10 days ago
10-12710
10 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'] b-mehta
assignee:b-mehta
9-21694
9 days ago
27-48962
27 days ago
27-49004
27 days
31011 YuvalFilmus
author:YuvalFilmus
feat: properties of Chebyshev polynomials over the reals Added several properties of the Chebyshev polynomials: - Degrees of T_n, U_n - Leading coefficients of T_n, U_n - Evaluations ofT_n, U_n at the endpoints ±1 - T_n is bounded on [-1, 1], and vice versa - Zeroes of T_n and U_n, and extrema of T_n - Normalized T_n minimizes the maximum absolute value over [-1, 1] for monic polynomials --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 989/5 Mathlib.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Analysis/SpecialFunctions/Arsinh.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/RingTheory/Polynomial/Chebyshev.lean,Mathlib/RingTheory/Polynomial/ChebyshevReal/Basic.lean,Mathlib/RingTheory/Polynomial/ChebyshevReal/Monic.lean 7 22 ['Ruben-VandeVelde', 'YuvalFilmus', 'github-actions', 'plp127'] Vierkantor
assignee:Vierkantor
9-21677
9 days ago
16-55372
16 days ago
16-55399
16 days
26039 tsuki8
author:tsuki8
feat(RingTheory/MvPolynomial/{MonomialOrder,Ideal}): leadingTerm define the leadingTerm and prove some lemmas related to the def `leadingTerm`: the leading term of `f` for the monomial ordering `m` some basic lemmas about leadingTerm including: 1. `leadingTerm_eq_zero_iff` 2. `leadingTerm_image_sdiff_singleton_zero` 3. `leadingTerm_image_insert_zero` 4. `leadingTerm_zero` 5. `leadingTerm_degree_eq` 6. `leadingTerm_degree_eq'` some lemmas about the degree of `f - m.leadingTerm f`: 1. `degree_sub_leadingTerm` 2. `degree_sub_leadingTerm_lt_degree` 3. `degree_sub_leadingTerm_lt_iff` also some lemmas about leading terms and ideals: 1. `span_leadingTerm_sdiff_singleton_zero` 2. `span_leadingTerm_insert_zero` 3. `span_leadingTerm_eq_span_monomial` 4. `span_leadingTerm_eq_span_monomial'` Co-authored-by: Junyu Guo @Hagb --- - [x] depends on: #24361 - [x] depends on: #26148 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import new-contributor 142/1 Mathlib/RingTheory/MvPolynomial/Ideal.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean 2 38 ['Hagb', 'chrisflav', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] chrisflav
assignee:chrisflav
9-14658
9 days ago
9-14658
9 days ago
26-64663
26 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 5 ['SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] nobody
8-37887
8 days ago
8-37906
8 days ago
40-27052
40 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 108/6 Mathlib/Computability/NFA.lean 1 23 ['eric-wieser', 'github-actions', 'rudynicolop'] nobody
8-24379
8 days ago
16-23892
16 days ago
16-23939
16 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'] awainverse
assignee:awainverse
7-59797
7 days ago
34-40497
1 month ago
34-42722
34 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 11 ['Ruben-VandeVelde', 'github-actions', 'josephmckinsey', 'mathlib4-merge-conflict-bot'] joneugster
assignee:joneugster
7-53349
7 days ago
7-53371
7 days ago
33-46635
33 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'] awainverse
assignee:awainverse
7-21703
7 days ago
17-84204
17 days ago
17-84242
17 days
31092 FlAmmmmING
author:FlAmmmmING
feat(Algebra/Group/ForwardDiff.lean): Add theorem `sum_shift_eq_fwdDiff_iter`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
19/0 Mathlib/Algebra/Group/ForwardDiff.lean 1 9 ['FlAmmmmING', 'Ruben-VandeVelde', 'github-actions'] dagurtomas
assignee:dagurtomas
7-21697
7 days ago
14-58930
14 days ago
14-58972
14 days
31113 515801431
author:515801431
feat(Mathlib/Combinatorics/Enumerative/Polya.lean): Add additional theorem in `Polya.lean` -- depend on #30525 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-combinatorics 298/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean 2 1 ['github-actions'] b-mehta
assignee:b-mehta
6-21702
6 days ago
14-1541
14 days ago
14-1590
14 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 20 ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot'] YaelDillies
assignee:YaelDillies
4-81236
4 days ago
4-81260
4 days ago
38-61174
38 days
26710 metakunt
author:metakunt
feat (Data/Nat/Digits/Lemmas): Add digits_getD Adds digits_getD, an explicit computation of the i-th digits of n in base b representation. t-data new-contributor 15/0 Mathlib/Data/Nat/Digits/Lemmas.lean 1 19 ['github-actions', 'metakunt', 'pechersky', 'plp127'] nobody
4-64461
4 days ago
6-2161
6 days ago
62-82654
62 days
31467 maix00
author:maix00
feat(Combinatorics/SimpleGraph): add simp lemma `getVert_map` for `Walk.map` feat(Combinatorics/SimpleGraph) add simp lemma `getVert_map` to `Walk.map`; set longFile simple fact but can only be proved by reverting the start point of the walk due to the inductive definition --- - in concept similar to `List.getElem_map` - deserve a simp lemma (useful when pushing walks between Subgraphs) lemma getVert_map (i : ℕ) : (p.map f).getVert i = f (p.getVert i) := by revert u; induction i with | zero => simp | succ => intro _ p; cases p <;> simp [*] can not just use simp to prove this fact new-contributor t-combinatorics 6/0 Mathlib/Combinatorics/SimpleGraph/Walk.lean 1 1 ['github-actions'] nobody
3-64187
3 days ago
3-64199
3 days ago
3-64236
3 days
31362 BeibeiX0
author:BeibeiX0
feat(partitions): generalized pentagonal numbers. feat(partitions): generalized pentagonal numbers and error term eₙ Introduce infrastructure around Euler’s pentagonal number theorem: * Define parity counters for strict partitions: - `p_even_distinct n` - `p_odd_distinct n` - `strict_partitions_parity_diff n := (p_even_distinct n : ℤ) - (p_odd_distinct n : ℤ)` * Generalized pentagonal numbers: - `generalizedPentagonalZ : ℤ → ℤ` with basic API (`gpn_nonneg`, `gpn_coe`) - `generalizedPentagonalNum : ℤ → ℕ` - parity lemma `even_neg_j_add_three_j_sq` and `even_neg_j_add_three_j_sq'` - search window equivalence `exists_j_iff_exists_j_in_range` - `Decidable (∃ j : ℤ, n = generalizedPentagonalZ j)` via a bounded range * Euler error term: - `error_term_e n : ℤ` (≔ `(-1)^{|j|}` if `n = generalizedPentagonalZ j` for some `j`, and `0` otherwise) * Finite product cut-off of the generating function: - `E n : PowerSeries ℤ := ∏_{k=1}^{n+1} (1 - X^k)` - lemma `coeff_E_eq_coeff_cutoff` Implementation notes: * Keep the integer-valued version `generalizedPentagonalZ` for arithmetic lemmas and signs; obtain the natural-number version via `Int.toNat`. * The bounded search lemma gives a small window `j ∈ [-(n+1), n+1]` for decidability. Motivation: * This is groundwork for proofs of Euler’s pentagonal number theorem and parity identities relating strict partitions to the error term. References: * https://en.wikipedia.org/wiki/Pentagonal_number_theorem new-contributor t-combinatorics 256/0 Mathlib.lean,Mathlib/Combinatorics/Enumerative/PentagonalNumbers.lean 2 5 ['BeibeiX0', 'github-actions', 'wwylele'] nobody
3-31514
3 days ago
6-56669
6 days ago
6-56703
6 days
31503 Scarlett-le
author:Scarlett-le
feat(Geometry/Euclidean/PerpBisector): add distance inequalities for Sbtw with perpendicularity This PR adds two theorems about distance relationships when points satisfy strict betweenness (`Sbtw`) and perpendicularity conditions: ### New theorems - `dist_lt_of_sbtw_of_inner_eq_zero`: If `b` is strictly between `a` and `c`, and `p - a` is perpendicular to `b - a`, then `dist p b < dist p c`. - `dist_lt_of_sbtw_of_mem_perpBisector`: If `p` lies on the perpendicular bisector of `ab` and `b` is strictly between `a` and `c`, then `dist p b < dist p c`. new-contributor t-euclidean-geometry 47/0 Mathlib/Geometry/Euclidean/PerpBisector.lean 1 1 ['github-actions'] nobody
2-65489
2 days ago
2-76680
2 days ago
2-76719
2 days
31496 Scarlett-le
author:Scarlett-le
feat(Geometry/Euclidean/Sphere/Power): power equals squared tangent length and characterization of tangency Adds two lemmas in `Geometry.Euclidean.Sphere.Power`: * `power_eq_dist_sq_of_IsTangentAt` — the power of a point equals the square of its tangent length. * `IsTangentAt_of_dist_sq_eq_power` — characterization of tangency via the power of a point. large-import new-contributor t-euclidean-geometry 18/0 Mathlib/Geometry/Euclidean/Sphere/Power.lean 1 2 ['github-actions', 'jsm28'] nobody
2-65463
2 days ago
3-11877
3 days ago
3-11919
3 days
31464 Ljon4ik4
author:Ljon4ik4
improved R-linearity to A-linearity in the PushForward of Derivations Let $A$ be an $R$-algebra for a commutative ring $R$ and $f:M\to N$ an $A$-module homomorphism. Given a derivation $D\in Der_R(A,M)$, we have a derivation $f \circ D$ of $Der_R(A,N)$. The induced map $Der_R(A,M)\to Der_R(A,N)$ is $A$-linear but was only reported to be $R$-linear in the previous implementation. All changes are in the PushForward section of the RingTheory/Derivation/Basic.lean file. The statements of definitions * `_root_.LinearMap.compDer` * `llcomp` * `_root_.LinearEquiv.compDer` are changed from $R$-linear to $A$-linear. For the stronger linearity the proof of `map_smul'` in `_root_.LinearMap.compDer` had to be changed. The rest remains as is. Edit: Some files explicitly used the weaker version, these have now been changed, by applying `.restrictScalars (R:=...)`, whereever the weaker linearity version of `compDer` was needed. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 9/8 Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean,Mathlib/Geometry/Manifold/DerivationBundle.lean,Mathlib/RingTheory/Derivation/Basic.lean,Mathlib/RingTheory/Kaehler/Basic.lean 4 13 ['Ljon4ik4', 'erdOne', 'github-actions', 'kckennylau'] nobody
2-49211
2 days ago
2-50196
2 days ago
3-66340
3 days
31147 daefigueroa
author:daefigueroa
feat(Dynamics): point transitive monoid actions and transitive points We define point transitivity for a monoid action on a topological space and define the set of transitive points. We add some basic lemmas and implications between topological transitivity and point transitivity. --- - [x] depends on: #28001 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-dynamics 114/6 Mathlib/Dynamics/Transitive.lean 1 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] sgouezel
assignee:sgouezel
2-21695
2 days ago
9-58100
9 days ago
9-62283
9 days
31526 Aaron1011
author:Aaron1011
feat: Add multiplicative version of structure theorem for finitely generated abelian groups This is similar to the multiplicative version of the structure theorem for *finite* abelian groups (using a pi type instead of a direct sum) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory new-contributor 18/0 Mathlib/GroupTheory/FiniteAbelian/Basic.lean 1 1 ['github-actions'] nobody
2-20729
2 days ago
2-20731
2 days ago
2-20770
2 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'] pechersky
assignee:pechersky
1-21700
1 day ago
18-20459
18 days ago
39-73891
39 days
31377 CoolRmal
author:CoolRmal
feat: a series of smooth functions that converges (locally) uniformly is smooth The main theorem proved in this lemma is that: if a sequence of functions `fₙ` is such that for each `0 ≤ k ≤ N`, the series of `k`-th iterated derivatives `∑ (iteratedDerivWithin k fₙ s) (z)` is summable (locally) uniformly on a set`s`, and each `fₙ` is in the class of `C^N`, then the series is also in `C^N`. This is an analogue of the existing theorem [contDiff_tsum](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/SmoothSeries.html#contDiff_tsum). My main motivation for this PR is the [#mathlib4 > Tychonov's Counterexample for the Heat Equation](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Tychonov's.20Counterexample.20for.20the.20Heat.20Equation/with/547367912). Several Remarks: 1. The proof of `SummableUniformlyOn.continuousOn_tsum` (and other similar theorems) actually does not require the assumption that the codomain is a `T2Space` (see #31313). 2. The author of the file [Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean](https://github.com/leanprover-community/mathlib4/compare/master...CoolRmal:mathlib4:contDiffwithinTsum?expand=1#diff-8b2f878190f47dd6544467469c58d2cdf59d6f79277b21814cdef554a27a4fd7) assumes that the set `s` is open and uses `derivWithin` in the statements. I follow the same convention right now, but I really think it is better to use `deriv` because we have [derivWithin_of_isOpen](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/Deriv/Basic.html#derivWithin_of_isOpen) and `derivWithin` makes things more complicated. 3. I also doubt that some of the theorems I proved still hold if `s` is only assumed to has the [UniqueDiffOn](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/TangentCone.html#UniqueDiffOn) property. If there is an easy way to generalize this theorem to sets that are not necessarily open, then the second comment can be ignored. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-topology 249/23 Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean,Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean 4 1 ['github-actions'] ocfnash
assignee:ocfnash
1-21683
1 day ago
5-75725
5 days ago
5-75764
5 days
31408 peakpoint
author:peakpoint
feat(Analysis/Calculus/LHopital): L'Hopital's rule from within a convex set Extracted from #19796 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis 185/20 Mathlib/Analysis/Calculus/LHopital.lean,Mathlib/Analysis/Convex/Topology.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Order/Interval/Set/Basic.lean 4 1 ['github-actions'] nobody
0-83036
23 hours ago
0-83038
23 hours ago
5-15407
5 days
31434 stepanholub
author:stepanholub
feat: simple divisibility lemma --- Add a simple lemma about divisibility. It can be seen as a description of the last step of the Euclidean algorithm (when only subtraction is used) t-data new-contributor 6/0 Mathlib/Data/Nat/GCD/Basic.lean 1 9 ['github-actions', 'grunweg', 'ocfnash', 'stepanholub', 'wwylele'] nobody
0-68510
19 hours ago
0-68511
19 hours ago
4-54490
4 days
31399 CoolRmal
author:CoolRmal
feat: Conditional expectation commutes with continuous linear functionals and affine functions. This lemma is needed in the proof of conditional Jensen's inequality: #27953 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-measure-probability 29/0 Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean 1 17 ['CoolRmal', 'EtienneC30', 'github-actions'] EtienneC30
assignee:EtienneC30
0-36122
10 hours ago
0-36365
10 hours ago
5-26900
5 days
31247 rudynicolop
author:rudynicolop
feat(Computability/DFA): add DFA complement, union, and intersection Add theorems for DFA complement, union, and intersection closure, and prove that regular languages are closed under complement, union, and intersection. Note there's a [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/with/553522644) regarding PRs for regular languages (also tracked in #24205). Admittedly, this is yet another PR, and this may prove obsolete if other PRs are merged first. In particular, this PR competes with #20238 and #15651. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor 124/5 Mathlib/Computability/DFA.lean,Mathlib/Computability/Language.lean 2 34 ['ctchou', 'github-actions', 'rudynicolop', 'staroperator'] nobody
0-26231
7 hours ago
9-80181
9 days ago
9-80215
9 days
27821 BGuillemet
author:BGuillemet
feat(CategoryTheory/Sites/Sheaf): functorial version of Sheaf.homEquiv Add two functorial versions of Sheaf.homEquiv, one using `yoneda` and the other using `coyoneda`. --- - [ ] depends on: #27819 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-category-theory 23/1 Mathlib/CategoryTheory/Sites/Sheaf.lean 1 4 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] adamtopaz
assignee:adamtopaz
0-21706
6 hours ago
4-47653
4 days ago
4-52107
4 days
31471 Scarlett-le
author:Scarlett-le
feat(LinearAlgebra/AffineSpace): add commutativity lemmas for line parallelism Adds three lemmas showing that parallelism between lines defined by point pairs is invariant under reversing the order of points. new-contributor t-algebra
label:t-algebra$
12/0 Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean 1 1 ['github-actions'] ocfnash
assignee:ocfnash
0-21693
6 hours ago
3-52608
3 days ago
3-52642
3 days
29283 Jlh18
author:Jlh18
feat(CategoryTheory): define forgetful-core adjunction between Cat and Grpd * Define `CategoryTheory.Core.functor`: the functor `Cat ⥤ Grpd` that on objects takes the core of a category * Define `CategoryTheory.Core.adjunction`: the adjunction with the forgetful functor `Grpd.forgetToCat` on the left, and the core functor `Core.functor` on the right. * Hence provide an instance that `Grpd.forgetToCat` is coreflective. - [ ] depends on: #29284 [Extra lemmas in CategoryTheory.Core] --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-category-theory 159/4 Mathlib.lean,Mathlib/CategoryTheory/Category/Grpd.lean,Mathlib/CategoryTheory/Core.lean,Mathlib/CategoryTheory/Groupoid/Grpd/Core.lean 4 11 ['Jlh18', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] nobody
0-6878
1 hour ago
0-6878
1 hour ago
8-4516
8 days

PRs on the review queue labelled 'easy'

There are currently no PRs on the review queue which are labelled 'easy'. Congratulations!

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
36-21704
1 month ago
43-80992
1 month ago
43-80967
43 days